From f7e6b3a5b811fd809532887e2d5dc1a18153b50a Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Wed, 26 Oct 2022 03:55:40 +0000 Subject: [PATCH] CodeGen from PR 21281 in Azure/azure-rest-api-specs Merge 3878867e59048daef034a9267147a25c519a08f1 into 5533d83330cbf290c6d24a2faa3e82710cb67fc5 --- swaggerci/app/.gitattributes | 1 + swaggerci/app/.gitignore | 5 + swaggerci/app/Az.ContainerAppsApi.csproj | 44 + .../app/Az.ContainerAppsApi.format.ps1xml | 5899 ++++++ swaggerci/app/Az.ContainerAppsApi.nuspec | 32 + swaggerci/app/Az.ContainerAppsApi.psd1 | 24 + swaggerci/app/Az.ContainerAppsApi.psm1 | 107 + swaggerci/app/MSSharedLibKey.snk | Bin 0 -> 160 bytes swaggerci/app/README.md | 27 + swaggerci/app/build-module.ps1 | 153 + swaggerci/app/check-dependencies.ps1 | 57 + swaggerci/app/create-model-cmdlets.ps1 | 163 + .../custom/Az.ContainerAppsApi.custom.psm1 | 17 + swaggerci/app/custom/README.md | 41 + swaggerci/app/docs/Az.ContainerAppsApi.md | 208 + ...ontainerAppsApiAvailableWorkloadProfile.md | 156 + .../Get-AzContainerAppsApiBillingMeter.md | 156 + .../docs/Get-AzContainerAppsApiCertificate.md | 193 + ...-AzContainerAppsApiConnectedEnvironment.md | 184 + ...ConnectedEnvironmentDaprComponentSecret.md | 171 + ...AppsApiConnectedEnvironmentsCertificate.md | 194 + ...psApiConnectedEnvironmentsDaprComponent.md | 194 + ...inerAppsApiConnectedEnvironmentsStorage.md | 194 + .../Get-AzContainerAppsApiContainerApp.md | 199 + ...zContainerAppsApiContainerAppAuthConfig.md | 124 + ...AzContainerAppsApiContainerAppAuthToken.md | 219 + ...psApiContainerAppCustomHostNameAnalysis.md | 171 + ...erAppsApiContainerAppDiagnosticDetector.md | 193 + ...erAppsApiContainerAppDiagnosticRevision.md | 208 + ...tainerAppsApiContainerAppDiagnosticRoot.md | 187 + ...-AzContainerAppsApiContainerAppRevision.md | 208 + ...ainerAppsApiContainerAppRevisionReplica.md | 209 + ...et-AzContainerAppsApiContainerAppSecret.md | 155 + ...ntainerAppsApiContainerAppSourceControl.md | 124 + ...ContainerAppsApiContainerAppsAuthConfig.md | 187 + ...tainerAppsApiContainerAppsSourceControl.md | 187 + .../Get-AzContainerAppsApiDaprComponent.md | 193 + ...t-AzContainerAppsApiDaprComponentSecret.md | 171 + ...et-AzContainerAppsApiManagedCertificate.md | 193 + ...et-AzContainerAppsApiManagedEnvironment.md | 184 + ...ainerAppsApiManagedEnvironmentAuthToken.md | 203 + ...ApiManagedEnvironmentDiagnosticDetector.md | 195 + ...AppsApiManagedEnvironmentDiagnosticRoot.md | 172 + ...iManagedEnvironmentWorkloadProfileState.md | 124 + ...tainerAppsApiManagedEnvironmentsStorage.md | 193 + ...-AzContainerAppsApiContainerAppRevision.md | 234 + ...erAppsApiDeactivateContainerAppRevision.md | 234 + .../docs/New-AzContainerAppsApiCertificate.md | 231 + ...-AzContainerAppsApiConnectedEnvironment.md | 324 + ...rAppsApiConnectedEnvironmentCertificate.md | 232 + ...ppsApiConnectedEnvironmentDaprComponent.md | 309 + ...ainerAppsApiConnectedEnvironmentStorage.md | 232 + .../New-AzContainerAppsApiContainerApp.md | 866 + ...zContainerAppsApiContainerAppAuthConfig.md | 499 + ...ntainerAppsApiContainerAppSourceControl.md | 432 + .../New-AzContainerAppsApiDaprComponent.md | 309 + ...ew-AzContainerAppsApiManagedCertificate.md | 278 + ...ew-AzContainerAppsApiManagedEnvironment.md | 530 + ...ntainerAppsApiManagedEnvironmentStorage.md | 232 + swaggerci/app/docs/README.md | 11 + .../Remove-AzContainerAppsApiCertificate.md | 233 + ...-AzContainerAppsApiConnectedEnvironment.md | 249 + ...AppsApiConnectedEnvironmentsCertificate.md | 234 + ...psApiConnectedEnvironmentsDaprComponent.md | 234 + ...inerAppsApiConnectedEnvironmentsStorage.md | 234 + .../Remove-AzContainerAppsApiContainerApp.md | 248 + ...ContainerAppsApiContainerAppsAuthConfig.md | 234 + ...tainerAppsApiContainerAppsSourceControl.md | 264 + .../Remove-AzContainerAppsApiDaprComponent.md | 234 + ...ve-AzContainerAppsApiManagedCertificate.md | 234 + ...ve-AzContainerAppsApiManagedEnvironment.md | 249 + ...tainerAppsApiManagedEnvironmentsStorage.md | 234 + ...-AzContainerAppsApiContainerAppRevision.md | 234 + ...ApiConnectedEnvironmentNameAvailability.md | 270 + ...ntainerAppsApiNamespaceNameAvailability.md | 270 + .../Update-AzContainerAppsApiCertificate.md | 236 + ...AppsApiConnectedEnvironmentsCertificate.md | 236 + .../Update-AzContainerAppsApiContainerApp.md | 922 + ...te-AzContainerAppsApiManagedCertificate.md | 236 + ...te-AzContainerAppsApiManagedEnvironment.md | 583 + ...ontainerAppsApiAvailableWorkloadProfile.md | 22 + .../Get-AzContainerAppsApiBillingMeter.md | 22 + .../Get-AzContainerAppsApiCertificate.md | 22 + ...-AzContainerAppsApiConnectedEnvironment.md | 22 + ...ConnectedEnvironmentDaprComponentSecret.md | 22 + ...AppsApiConnectedEnvironmentsCertificate.md | 22 + ...psApiConnectedEnvironmentsDaprComponent.md | 22 + ...inerAppsApiConnectedEnvironmentsStorage.md | 22 + .../Get-AzContainerAppsApiContainerApp.md | 22 + ...zContainerAppsApiContainerAppAuthConfig.md | 22 + ...AzContainerAppsApiContainerAppAuthToken.md | 22 + ...psApiContainerAppCustomHostNameAnalysis.md | 22 + ...erAppsApiContainerAppDiagnosticDetector.md | 22 + ...erAppsApiContainerAppDiagnosticRevision.md | 22 + ...tainerAppsApiContainerAppDiagnosticRoot.md | 22 + ...-AzContainerAppsApiContainerAppRevision.md | 22 + ...ainerAppsApiContainerAppRevisionReplica.md | 22 + ...et-AzContainerAppsApiContainerAppSecret.md | 22 + ...ntainerAppsApiContainerAppSourceControl.md | 22 + ...ContainerAppsApiContainerAppsAuthConfig.md | 22 + ...tainerAppsApiContainerAppsSourceControl.md | 22 + .../Get-AzContainerAppsApiDaprComponent.md | 22 + ...t-AzContainerAppsApiDaprComponentSecret.md | 22 + ...et-AzContainerAppsApiManagedCertificate.md | 22 + ...et-AzContainerAppsApiManagedEnvironment.md | 22 + ...ainerAppsApiManagedEnvironmentAuthToken.md | 22 + ...ApiManagedEnvironmentDiagnosticDetector.md | 22 + ...AppsApiManagedEnvironmentDiagnosticRoot.md | 22 + ...iManagedEnvironmentWorkloadProfileState.md | 22 + ...tainerAppsApiManagedEnvironmentsStorage.md | 22 + ...-AzContainerAppsApiContainerAppRevision.md | 22 + ...erAppsApiDeactivateContainerAppRevision.md | 22 + .../New-AzContainerAppsApiCertificate.md | 22 + ...-AzContainerAppsApiConnectedEnvironment.md | 22 + ...rAppsApiConnectedEnvironmentCertificate.md | 22 + ...ppsApiConnectedEnvironmentDaprComponent.md | 22 + ...ainerAppsApiConnectedEnvironmentStorage.md | 22 + .../New-AzContainerAppsApiContainerApp.md | 22 + ...zContainerAppsApiContainerAppAuthConfig.md | 22 + ...ntainerAppsApiContainerAppSourceControl.md | 22 + .../New-AzContainerAppsApiDaprComponent.md | 22 + ...ew-AzContainerAppsApiManagedCertificate.md | 22 + ...ew-AzContainerAppsApiManagedEnvironment.md | 22 + ...ntainerAppsApiManagedEnvironmentStorage.md | 22 + .../Remove-AzContainerAppsApiCertificate.md | 22 + ...-AzContainerAppsApiConnectedEnvironment.md | 22 + ...AppsApiConnectedEnvironmentsCertificate.md | 22 + ...psApiConnectedEnvironmentsDaprComponent.md | 22 + ...inerAppsApiConnectedEnvironmentsStorage.md | 22 + .../Remove-AzContainerAppsApiContainerApp.md | 22 + ...ContainerAppsApiContainerAppsAuthConfig.md | 22 + ...tainerAppsApiContainerAppsSourceControl.md | 22 + .../Remove-AzContainerAppsApiDaprComponent.md | 22 + ...ve-AzContainerAppsApiManagedCertificate.md | 22 + ...ve-AzContainerAppsApiManagedEnvironment.md | 22 + ...tainerAppsApiManagedEnvironmentsStorage.md | 22 + ...-AzContainerAppsApiContainerAppRevision.md | 22 + ...ApiConnectedEnvironmentNameAvailability.md | 22 + ...ntainerAppsApiNamespaceNameAvailability.md | 22 + .../Update-AzContainerAppsApiCertificate.md | 22 + ...AppsApiConnectedEnvironmentsCertificate.md | 22 + .../Update-AzContainerAppsApiContainerApp.md | 22 + ...te-AzContainerAppsApiManagedCertificate.md | 22 + ...te-AzContainerAppsApiManagedEnvironment.md | 22 + swaggerci/app/export-surface.ps1 | 33 + ...ntainerAppsApiAvailableWorkloadProfile.ps1 | 196 + .../Get-AzContainerAppsApiBillingMeter.ps1 | 196 + .../Get-AzContainerAppsApiCertificate.ps1 | 214 + ...AzContainerAppsApiConnectedEnvironment.ps1 | 209 + ...onnectedEnvironmentDaprComponentSecret.ps1 | 177 + ...ppsApiConnectedEnvironmentsCertificate.ps1 | 213 + ...sApiConnectedEnvironmentsDaprComponent.ps1 | 213 + ...nerAppsApiConnectedEnvironmentsStorage.ps1 | 213 + .../Get-AzContainerAppsApiContainerApp.ps1 | 216 + ...ContainerAppsApiContainerAppAuthConfig.ps1 | 171 + ...zContainerAppsApiContainerAppAuthToken.ps1 | 209 + ...sApiContainerAppCustomHostNameAnalysis.ps1 | 177 + ...rAppsApiContainerAppDiagnosticDetector.ps1 | 213 + ...rAppsApiContainerAppDiagnosticRevision.ps1 | 219 + ...ainerAppsApiContainerAppDiagnosticRoot.ps1 | 209 + ...AzContainerAppsApiContainerAppRevision.ps1 | 219 + ...inerAppsApiContainerAppRevisionReplica.ps1 | 220 + ...t-AzContainerAppsApiContainerAppSecret.ps1 | 171 + ...tainerAppsApiContainerAppSourceControl.ps1 | 171 + ...ontainerAppsApiContainerAppsAuthConfig.ps1 | 209 + ...ainerAppsApiContainerAppsSourceControl.ps1 | 209 + .../Get-AzContainerAppsApiDaprComponent.ps1 | 213 + ...-AzContainerAppsApiDaprComponentSecret.ps1 | 177 + ...t-AzContainerAppsApiManagedCertificate.ps1 | 214 + ...t-AzContainerAppsApiManagedEnvironment.ps1 | 208 + ...inerAppsApiManagedEnvironmentAuthToken.ps1 | 203 + ...piManagedEnvironmentDiagnosticDetector.ps1 | 215 + ...ppsApiManagedEnvironmentDiagnosticRoot.ps1 | 203 + ...ManagedEnvironmentWorkloadProfileState.ps1 | 171 + ...ainerAppsApiManagedEnvironmentsStorage.ps1 | 213 + ...AzContainerAppsApiContainerAppRevision.ps1 | 215 + ...rAppsApiDeactivateContainerAppRevision.ps1 | 215 + .../New-AzContainerAppsApiCertificate.ps1 | 203 + ...AzContainerAppsApiConnectedEnvironment.ps1 | 240 + ...AppsApiConnectedEnvironmentCertificate.ps1 | 202 + ...psApiConnectedEnvironmentDaprComponent.ps1 | 243 + ...inerAppsApiConnectedEnvironmentStorage.ps1 | 202 + .../New-AzContainerAppsApiContainerApp.ps1 | 543 + ...ContainerAppsApiContainerAppAuthConfig.ps1 | 339 + ...tainerAppsApiContainerAppSourceControl.ps1 | 279 + .../New-AzContainerAppsApiDaprComponent.ps1 | 243 + ...w-AzContainerAppsApiManagedCertificate.ps1 | 222 + ...w-AzContainerAppsApiManagedEnvironment.ps1 | 331 + ...tainerAppsApiManagedEnvironmentStorage.ps1 | 202 + .../app/exports/ProxyCmdletDefinitions.ps1 | 14188 ++++++++++++++ swaggerci/app/exports/README.md | 20 + .../Remove-AzContainerAppsApiCertificate.ps1 | 216 + ...AzContainerAppsApiConnectedEnvironment.ps1 | 222 + ...ppsApiConnectedEnvironmentsCertificate.ps1 | 215 + ...sApiConnectedEnvironmentsDaprComponent.ps1 | 215 + ...nerAppsApiConnectedEnvironmentsStorage.ps1 | 215 + .../Remove-AzContainerAppsApiContainerApp.ps1 | 222 + ...ontainerAppsApiContainerAppsAuthConfig.ps1 | 215 + ...ainerAppsApiContainerAppsSourceControl.ps1 | 227 + ...Remove-AzContainerAppsApiDaprComponent.ps1 | 215 + ...e-AzContainerAppsApiManagedCertificate.ps1 | 216 + ...e-AzContainerAppsApiManagedEnvironment.ps1 | 221 + ...ainerAppsApiManagedEnvironmentsStorage.ps1 | 215 + ...AzContainerAppsApiContainerAppRevision.ps1 | 215 + ...piConnectedEnvironmentNameAvailability.ps1 | 237 + ...tainerAppsApiNamespaceNameAvailability.ps1 | 237 + .../Update-AzContainerAppsApiCertificate.ps1 | 219 + ...ppsApiConnectedEnvironmentsCertificate.ps1 | 218 + .../Update-AzContainerAppsApiContainerApp.ps1 | 571 + ...e-AzContainerAppsApiManagedCertificate.ps1 | 219 + ...e-AzContainerAppsApiManagedEnvironment.ps1 | 359 + swaggerci/app/generate-help.ps1 | 66 + swaggerci/app/generated/Module.cs | 181 + .../generated/api/ContainerAppsApiClient.cs | 16057 ++++++++++++++++ .../generated/api/Models/Any.PowerShell.cs | 136 + .../generated/api/Models/Any.TypeConverter.cs | 146 + swaggerci/app/generated/api/Models/Any.cs | 34 + .../app/generated/api/Models/Any.json.cs | 104 + .../AllowedAudiencesValidation.PowerShell.cs | 146 + ...llowedAudiencesValidation.TypeConverter.cs | 147 + .../AllowedAudiencesValidation.cs | 57 + .../AllowedAudiencesValidation.json.cs | 116 + .../AllowedPrincipals.PowerShell.cs | 154 + .../AllowedPrincipals.TypeConverter.cs | 147 + .../Api20221101Preview/AllowedPrincipals.cs | 68 + .../AllowedPrincipals.json.cs | 126 + .../AppLogsConfiguration.PowerShell.cs | 170 + .../AppLogsConfiguration.TypeConverter.cs | 147 + .../AppLogsConfiguration.cs | 91 + .../AppLogsConfiguration.json.cs | 110 + .../AppRegistration.PowerShell.cs | 156 + .../AppRegistration.TypeConverter.cs | 147 + .../Api20221101Preview/AppRegistration.cs | 70 + .../AppRegistration.json.cs | 112 + .../Api20221101Preview/Apple.PowerShell.cs | 184 + .../Api20221101Preview/Apple.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Apple.cs | 123 + .../Models/Api20221101Preview/Apple.json.cs | 112 + .../AppleRegistration.PowerShell.cs | 154 + .../AppleRegistration.TypeConverter.cs | 147 + .../Api20221101Preview/AppleRegistration.cs | 68 + .../AppleRegistration.json.cs | 110 + .../AuthConfig.PowerShell.cs | 442 + .../AuthConfig.TypeConverter.cs | 146 + .../Models/Api20221101Preview/AuthConfig.cs | 511 + .../Api20221101Preview/AuthConfig.json.cs | 112 + .../AuthConfigCollection.PowerShell.cs | 154 + .../AuthConfigCollection.TypeConverter.cs | 147 + .../AuthConfigCollection.cs | 71 + .../AuthConfigCollection.json.cs | 121 + .../AuthConfigProperties.PowerShell.cs | 354 + .../AuthConfigProperties.TypeConverter.cs | 147 + .../AuthConfigProperties.cs | 460 + .../AuthConfigProperties.json.cs | 116 + .../AuthPlatform.PowerShell.cs | 156 + .../AuthPlatform.TypeConverter.cs | 147 + .../Models/Api20221101Preview/AuthPlatform.cs | 86 + .../Api20221101Preview/AuthPlatform.json.cs | 112 + .../AvailableOperations.PowerShell.cs | 154 + .../AvailableOperations.TypeConverter.cs | 147 + .../Api20221101Preview/AvailableOperations.cs | 78 + .../AvailableOperations.json.cs | 118 + .../AvailableWorkloadProfile.PowerShell.cs | 274 + .../AvailableWorkloadProfile.TypeConverter.cs | 147 + .../AvailableWorkloadProfile.cs | 210 + .../AvailableWorkloadProfile.json.cs | 112 + ...bleWorkloadProfileProperties.PowerShell.cs | 180 + ...WorkloadProfileProperties.TypeConverter.cs | 149 + .../AvailableWorkloadProfileProperties.cs | 119 + ...AvailableWorkloadProfileProperties.json.cs | 117 + ...leWorkloadProfilesCollection.PowerShell.cs | 156 + ...orkloadProfilesCollection.TypeConverter.cs | 149 + .../AvailableWorkloadProfilesCollection.cs | 71 + ...vailableWorkloadProfilesCollection.json.cs | 122 + .../AzureActiveDirectory.PowerShell.cs | 314 + .../AzureActiveDirectory.TypeConverter.cs | 147 + .../AzureActiveDirectory.cs | 443 + .../AzureActiveDirectory.json.cs | 116 + .../AzureActiveDirectoryLogin.PowerShell.cs | 154 + ...AzureActiveDirectoryLogin.TypeConverter.cs | 147 + .../AzureActiveDirectoryLogin.cs | 84 + .../AzureActiveDirectoryLogin.json.cs | 118 + ...eActiveDirectoryRegistration.PowerShell.cs | 186 + ...tiveDirectoryRegistration.TypeConverter.cs | 148 + .../AzureActiveDirectoryRegistration.cs | 219 + .../AzureActiveDirectoryRegistration.json.cs | 118 + ...ureActiveDirectoryValidation.PowerShell.cs | 210 + ...ActiveDirectoryValidation.TypeConverter.cs | 148 + .../AzureActiveDirectoryValidation.cs | 160 + .../AzureActiveDirectoryValidation.json.cs | 120 + .../AzureCredentials.PowerShell.cs | 170 + .../AzureCredentials.TypeConverter.cs | 147 + .../Api20221101Preview/AzureCredentials.cs | 102 + .../AzureCredentials.json.cs | 114 + .../AzureFileProperties.PowerShell.cs | 170 + .../AzureFileProperties.TypeConverter.cs | 147 + .../Api20221101Preview/AzureFileProperties.cs | 102 + .../AzureFileProperties.json.cs | 114 + .../AzureStaticWebApps.PowerShell.cs | 162 + .../AzureStaticWebApps.TypeConverter.cs | 147 + .../Api20221101Preview/AzureStaticWebApps.cs | 86 + .../AzureStaticWebApps.json.cs | 110 + ...ureStaticWebAppsRegistration.PowerShell.cs | 148 + ...StaticWebAppsRegistration.TypeConverter.cs | 148 + .../AzureStaticWebAppsRegistration.cs | 53 + .../AzureStaticWebAppsRegistration.json.cs | 110 + .../BaseContainer.PowerShell.cs | 218 + .../BaseContainer.TypeConverter.cs | 147 + .../Api20221101Preview/BaseContainer.cs | 193 + .../Api20221101Preview/BaseContainer.json.cs | 152 + .../BillingMeter.PowerShell.cs | 258 + .../BillingMeter.TypeConverter.cs | 147 + .../Models/Api20221101Preview/BillingMeter.cs | 182 + .../Api20221101Preview/BillingMeter.json.cs | 112 + .../BillingMeterCollection.PowerShell.cs | 146 + .../BillingMeterCollection.TypeConverter.cs | 147 + .../BillingMeterCollection.cs | 51 + .../BillingMeterCollection.json.cs | 116 + .../BillingMeterProperties.PowerShell.cs | 162 + .../BillingMeterProperties.TypeConverter.cs | 147 + .../BillingMeterProperties.cs | 85 + .../BillingMeterProperties.json.cs | 112 + .../Certificate.PowerShell.cs | 332 + .../Certificate.TypeConverter.cs | 147 + .../Models/Api20221101Preview/Certificate.cs | 314 + .../Api20221101Preview/Certificate.json.cs | 112 + .../CertificateCollection.PowerShell.cs | 154 + .../CertificateCollection.TypeConverter.cs | 147 + .../CertificateCollection.cs | 71 + .../CertificateCollection.json.cs | 121 + .../CertificatePatch.PowerShell.cs | 146 + .../CertificatePatch.TypeConverter.cs | 147 + .../Api20221101Preview/CertificatePatch.cs | 51 + .../CertificatePatch.json.cs | 108 + .../CertificatePatchTags.PowerShell.cs | 142 + .../CertificatePatchTags.TypeConverter.cs | 147 + .../CertificatePatchTags.cs | 35 + .../CertificatePatchTags.dictionary.cs | 75 + .../CertificatePatchTags.json.cs | 109 + .../CertificateProperties.PowerShell.cs | 226 + .../CertificateProperties.TypeConverter.cs | 147 + .../CertificateProperties.cs | 248 + .../CertificateProperties.json.cs | 163 + .../ClientRegistration.PowerShell.cs | 156 + .../ClientRegistration.TypeConverter.cs | 147 + .../Api20221101Preview/ClientRegistration.cs | 70 + .../ClientRegistration.json.cs | 112 + .../Configuration.PowerShell.cs | 324 + .../Configuration.TypeConverter.cs | 147 + .../Api20221101Preview/Configuration.cs | 424 + .../Api20221101Preview/Configuration.json.cs | 136 + .../ConnectedEnvironment.PowerShell.cs | 372 + .../ConnectedEnvironment.TypeConverter.cs | 147 + .../ConnectedEnvironment.cs | 373 + .../ConnectedEnvironment.json.cs | 114 + ...nnectedEnvironmentCollection.PowerShell.cs | 154 + ...ctedEnvironmentCollection.TypeConverter.cs | 148 + .../ConnectedEnvironmentCollection.cs | 71 + .../ConnectedEnvironmentCollection.json.cs | 121 + ...nnectedEnvironmentProperties.PowerShell.cs | 242 + ...ctedEnvironmentProperties.TypeConverter.cs | 148 + .../ConnectedEnvironmentProperties.cs | 256 + .../ConnectedEnvironmentProperties.json.cs | 127 + .../ConnectedEnvironmentStorage.PowerShell.cs | 266 + ...nnectedEnvironmentStorage.TypeConverter.cs | 147 + .../ConnectedEnvironmentStorage.cs | 184 + .../ConnectedEnvironmentStorage.json.cs | 110 + ...EnvironmentStorageProperties.PowerShell.cs | 181 + ...ironmentStorageProperties.TypeConverter.cs | 150 + .../ConnectedEnvironmentStorageProperties.cs | 102 + ...nectedEnvironmentStorageProperties.json.cs | 109 + ...nvironmentStoragesCollection.PowerShell.cs | 149 + ...ronmentStoragesCollection.TypeConverter.cs | 151 + .../ConnectedEnvironmentStoragesCollection.cs | 51 + ...ectedEnvironmentStoragesCollection.json.cs | 117 + .../Container.PowerShell.cs | 224 + .../Container.TypeConverter.cs | 146 + .../Models/Api20221101Preview/Container.cs | 113 + .../Api20221101Preview/Container.json.cs | 118 + .../ContainerApp.PowerShell.cs | 642 + .../ContainerApp.TypeConverter.cs | 147 + .../Models/Api20221101Preview/ContainerApp.cs | 900 + .../Api20221101Preview/ContainerApp.json.cs | 114 + .../ContainerAppAuthToken.PowerShell.cs | 258 + .../ContainerAppAuthToken.TypeConverter.cs | 147 + .../ContainerAppAuthToken.cs | 165 + .../ContainerAppAuthToken.json.cs | 110 + ...tainerAppAuthTokenProperties.PowerShell.cs | 154 + ...nerAppAuthTokenProperties.TypeConverter.cs | 148 + .../ContainerAppAuthTokenProperties.cs | 74 + .../ContainerAppAuthTokenProperties.json.cs | 116 + .../ContainerAppCollection.PowerShell.cs | 154 + .../ContainerAppCollection.TypeConverter.cs | 147 + .../ContainerAppCollection.cs | 71 + .../ContainerAppCollection.json.cs | 121 + .../ContainerAppProbe.PowerShell.cs | 270 + .../ContainerAppProbe.TypeConverter.cs | 147 + .../Api20221101Preview/ContainerAppProbe.cs | 365 + .../ContainerAppProbe.json.cs | 127 + .../ContainerAppProbeHttpGet.PowerShell.cs | 178 + .../ContainerAppProbeHttpGet.TypeConverter.cs | 147 + .../ContainerAppProbeHttpGet.cs | 131 + .../ContainerAppProbeHttpGet.json.cs | 124 + ...pProbeHttpGetHttpHeadersItem.PowerShell.cs | 157 + ...obeHttpGetHttpHeadersItem.TypeConverter.cs | 151 + ...ContainerAppProbeHttpGetHttpHeadersItem.cs | 68 + ...inerAppProbeHttpGetHttpHeadersItem.json.cs | 112 + .../ContainerAppProbeTcpSocket.PowerShell.cs | 156 + ...ontainerAppProbeTcpSocket.TypeConverter.cs | 147 + .../ContainerAppProbeTcpSocket.cs | 76 + .../ContainerAppProbeTcpSocket.json.cs | 112 + .../ContainerAppProperties.PowerShell.cs | 474 + .../ContainerAppProperties.TypeConverter.cs | 147 + .../ContainerAppProperties.cs | 694 + .../ContainerAppProperties.json.cs | 154 + .../ContainerAppSecret.PowerShell.cs | 154 + .../ContainerAppSecret.TypeConverter.cs | 147 + .../Api20221101Preview/ContainerAppSecret.cs | 74 + .../ContainerAppSecret.json.cs | 116 + .../ContainerResources.PowerShell.cs | 162 + .../ContainerResources.TypeConverter.cs | 147 + .../Api20221101Preview/ContainerResources.cs | 88 + .../ContainerResources.json.cs | 115 + .../CookieExpiration.PowerShell.cs | 154 + .../CookieExpiration.TypeConverter.cs | 147 + .../Api20221101Preview/CookieExpiration.cs | 68 + .../CookieExpiration.json.cs | 110 + .../CustomDomain.PowerShell.cs | 162 + .../CustomDomain.TypeConverter.cs | 147 + .../Models/Api20221101Preview/CustomDomain.cs | 91 + .../Api20221101Preview/CustomDomain.json.cs | 112 + .../CustomDomainConfiguration.PowerShell.cs | 194 + ...CustomDomainConfiguration.TypeConverter.cs | 147 + .../CustomDomainConfiguration.cs | 165 + .../CustomDomainConfiguration.json.cs | 132 + ...CustomHostnameAnalysisResult.PowerShell.cs | 266 + ...tomHostnameAnalysisResult.TypeConverter.cs | 147 + .../CustomHostnameAnalysisResult.cs | 340 + .../CustomHostnameAnalysisResult.json.cs | 191 + ...omainVerificationFailureInfo.PowerShell.cs | 173 + ...inVerificationFailureInfo.TypeConverter.cs | 153 + ...sultCustomDomainVerificationFailureInfo.cs | 113 + ...ustomDomainVerificationFailureInfo.json.cs | 134 + ...cationFailureInfoDetailsItem.PowerShell.cs | 165 + ...ionFailureInfoDetailsItem.TypeConverter.cs | 153 + ...omainVerificationFailureInfoDetailsItem.cs | 96 + ...VerificationFailureInfoDetailsItem.json.cs | 124 + .../CustomOpenIdConnectProvider.PowerShell.cs | 258 + ...stomOpenIdConnectProvider.TypeConverter.cs | 147 + .../CustomOpenIdConnectProvider.cs | 247 + .../CustomOpenIdConnectProvider.json.cs | 112 + .../CustomScaleRule.PowerShell.cs | 162 + .../CustomScaleRule.TypeConverter.cs | 147 + .../Api20221101Preview/CustomScaleRule.cs | 95 + .../CustomScaleRule.json.cs | 120 + .../CustomScaleRuleMetadata.PowerShell.cs | 142 + .../CustomScaleRuleMetadata.TypeConverter.cs | 147 + .../CustomScaleRuleMetadata.cs | 35 + .../CustomScaleRuleMetadata.dictionary.cs | 75 + .../CustomScaleRuleMetadata.json.cs | 109 + .../Api20221101Preview/Dapr.PowerShell.cs | 200 + .../Api20221101Preview/Dapr.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Dapr.cs | 197 + .../Models/Api20221101Preview/Dapr.json.cs | 122 + .../DaprComponent.PowerShell.cs | 290 + .../DaprComponent.TypeConverter.cs | 147 + .../Api20221101Preview/DaprComponent.cs | 235 + .../Api20221101Preview/DaprComponent.json.cs | 110 + .../DaprComponentProperties.PowerShell.cs | 202 + .../DaprComponentProperties.TypeConverter.cs | 147 + .../DaprComponentProperties.cs | 170 + .../DaprComponentProperties.json.cs | 146 + .../DaprComponentsCollection.PowerShell.cs | 154 + .../DaprComponentsCollection.TypeConverter.cs | 147 + .../DaprComponentsCollection.cs | 71 + .../DaprComponentsCollection.json.cs | 121 + .../DaprMetadata.PowerShell.cs | 162 + .../DaprMetadata.TypeConverter.cs | 147 + .../Models/Api20221101Preview/DaprMetadata.cs | 91 + .../Api20221101Preview/DaprMetadata.json.cs | 112 + .../DaprSecret.PowerShell.cs | 152 + .../DaprSecret.TypeConverter.cs | 146 + .../Models/Api20221101Preview/DaprSecret.cs | 74 + .../Api20221101Preview/DaprSecret.json.cs | 116 + .../DaprSecretsCollection.PowerShell.cs | 146 + .../DaprSecretsCollection.TypeConverter.cs | 147 + .../DaprSecretsCollection.cs | 51 + .../DaprSecretsCollection.json.cs | 116 + .../DefaultAuthorizationPolicy.PowerShell.cs | 172 + ...efaultAuthorizationPolicy.TypeConverter.cs | 147 + .../DefaultAuthorizationPolicy.cs | 93 + .../DefaultAuthorizationPolicy.json.cs | 120 + .../DefaultErrorResponse.PowerShell.cs | 186 + .../DefaultErrorResponse.TypeConverter.cs | 147 + .../DefaultErrorResponse.cs | 128 + .../DefaultErrorResponse.json.cs | 111 + .../DefaultErrorResponseError.PowerShell.cs | 178 + ...DefaultErrorResponseError.TypeConverter.cs | 147 + .../DefaultErrorResponseError.cs | 131 + .../DefaultErrorResponseError.json.cs | 136 + ...rrorResponseErrorDetailsItem.PowerShell.cs | 164 + ...rResponseErrorDetailsItem.TypeConverter.cs | 150 + .../DefaultErrorResponseErrorDetailsItem.cs | 94 + ...faultErrorResponseErrorDetailsItem.json.cs | 122 + ...agnosticDataProviderMetadata.PowerShell.cs | 154 + ...osticDataProviderMetadata.TypeConverter.cs | 148 + .../DiagnosticDataProviderMetadata.cs | 68 + .../DiagnosticDataProviderMetadata.json.cs | 118 + ...viderMetadataPropertyBagItem.PowerShell.cs | 157 + ...erMetadataPropertyBagItem.TypeConverter.cs | 151 + ...sticDataProviderMetadataPropertyBagItem.cs | 70 + ...ataProviderMetadataPropertyBagItem.json.cs | 113 + ...osticDataTableResponseColumn.PowerShell.cs | 164 + ...icDataTableResponseColumn.TypeConverter.cs | 148 + .../DiagnosticDataTableResponseColumn.cs | 85 + .../DiagnosticDataTableResponseColumn.json.cs | 112 + ...osticDataTableResponseObject.PowerShell.cs | 164 + ...icDataTableResponseObject.TypeConverter.cs | 148 + .../DiagnosticDataTableResponseObject.cs | 85 + .../DiagnosticDataTableResponseObject.json.cs | 128 + .../DiagnosticRendering.PowerShell.cs | 170 + .../DiagnosticRendering.TypeConverter.cs | 147 + .../Api20221101Preview/DiagnosticRendering.cs | 102 + .../DiagnosticRendering.json.cs | 114 + .../DiagnosticSupportTopic.PowerShell.cs | 154 + .../DiagnosticSupportTopic.TypeConverter.cs | 147 + .../DiagnosticSupportTopic.cs | 74 + .../DiagnosticSupportTopic.json.cs | 116 + .../Diagnostics.PowerShell.cs | 362 + .../Diagnostics.TypeConverter.cs | 147 + .../Models/Api20221101Preview/Diagnostics.cs | 355 + .../Api20221101Preview/Diagnostics.json.cs | 110 + .../DiagnosticsCollection.PowerShell.cs | 154 + .../DiagnosticsCollection.TypeConverter.cs | 147 + .../DiagnosticsCollection.cs | 71 + .../DiagnosticsCollection.json.cs | 121 + .../DiagnosticsDataApiResponse.PowerShell.cs | 210 + ...iagnosticsDataApiResponse.TypeConverter.cs | 147 + .../DiagnosticsDataApiResponse.cs | 156 + .../DiagnosticsDataApiResponse.json.cs | 110 + .../DiagnosticsDefinition.PowerShell.cs | 210 + .../DiagnosticsDefinition.TypeConverter.cs | 147 + .../DiagnosticsDefinition.cs | 208 + .../DiagnosticsDefinition.json.cs | 161 + .../DiagnosticsProperties.PowerShell.cs | 274 + .../DiagnosticsProperties.TypeConverter.cs | 147 + .../DiagnosticsProperties.cs | 290 + .../DiagnosticsProperties.json.cs | 122 + .../DiagnosticsStatus.PowerShell.cs | 154 + .../DiagnosticsStatus.TypeConverter.cs | 147 + .../Api20221101Preview/DiagnosticsStatus.cs | 68 + .../DiagnosticsStatus.json.cs | 110 + .../EnvironmentAuthToken.PowerShell.cs | 258 + .../EnvironmentAuthToken.TypeConverter.cs | 147 + .../EnvironmentAuthToken.cs | 165 + .../EnvironmentAuthToken.json.cs | 110 + ...vironmentAuthTokenProperties.PowerShell.cs | 154 + ...onmentAuthTokenProperties.TypeConverter.cs | 148 + .../EnvironmentAuthTokenProperties.cs | 74 + .../EnvironmentAuthTokenProperties.json.cs | 116 + .../EnvironmentSkuProperties.PowerShell.cs | 146 + .../EnvironmentSkuProperties.TypeConverter.cs | 147 + .../EnvironmentSkuProperties.cs | 51 + .../EnvironmentSkuProperties.json.cs | 108 + .../EnvironmentVar.PowerShell.cs | 162 + .../EnvironmentVar.TypeConverter.cs | 147 + .../Api20221101Preview/EnvironmentVar.cs | 91 + .../Api20221101Preview/EnvironmentVar.json.cs | 112 + .../ExtendedLocation.PowerShell.cs | 154 + .../ExtendedLocation.TypeConverter.cs | 147 + .../Api20221101Preview/ExtendedLocation.cs | 68 + .../ExtendedLocation.json.cs | 110 + .../Api20221101Preview/Facebook.PowerShell.cs | 192 + .../Facebook.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Facebook.cs | 140 + .../Api20221101Preview/Facebook.json.cs | 114 + .../ForwardProxy.PowerShell.cs | 162 + .../ForwardProxy.TypeConverter.cs | 147 + .../Models/Api20221101Preview/ForwardProxy.cs | 85 + .../Api20221101Preview/ForwardProxy.json.cs | 112 + .../Api20221101Preview/GitHub.PowerShell.cs | 184 + .../GitHub.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/GitHub.cs | 123 + .../Models/Api20221101Preview/GitHub.json.cs | 112 + .../GithubActionConfiguration.PowerShell.cs | 260 + ...GithubActionConfiguration.TypeConverter.cs | 147 + .../GithubActionConfiguration.cs | 260 + .../GithubActionConfiguration.json.cs | 124 + .../GlobalValidation.PowerShell.cs | 164 + .../GlobalValidation.TypeConverter.cs | 147 + .../Api20221101Preview/GlobalValidation.cs | 107 + .../GlobalValidation.json.cs | 122 + .../Api20221101Preview/Google.PowerShell.cs | 200 + .../Google.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Google.cs | 155 + .../Models/Api20221101Preview/Google.json.cs | 114 + .../HttpScaleRule.PowerShell.cs | 154 + .../HttpScaleRule.TypeConverter.cs | 147 + .../Api20221101Preview/HttpScaleRule.cs | 68 + .../Api20221101Preview/HttpScaleRule.json.cs | 118 + .../HttpScaleRuleMetadata.PowerShell.cs | 142 + .../HttpScaleRuleMetadata.TypeConverter.cs | 147 + .../HttpScaleRuleMetadata.cs | 35 + .../HttpScaleRuleMetadata.dictionary.cs | 75 + .../HttpScaleRuleMetadata.json.cs | 109 + .../HttpSettings.PowerShell.cs | 198 + .../HttpSettings.TypeConverter.cs | 147 + .../Models/Api20221101Preview/HttpSettings.cs | 145 + .../Api20221101Preview/HttpSettings.json.cs | 115 + .../HttpSettingsRoutes.PowerShell.cs | 146 + .../HttpSettingsRoutes.TypeConverter.cs | 147 + .../Api20221101Preview/HttpSettingsRoutes.cs | 51 + .../HttpSettingsRoutes.json.cs | 108 + .../IPSecurityRestrictionRule.PowerShell.cs | 170 + ...IPSecurityRestrictionRule.TypeConverter.cs | 147 + .../IPSecurityRestrictionRule.cs | 114 + .../IPSecurityRestrictionRule.json.cs | 114 + .../IdentityProviders.PowerShell.cs | 652 + .../IdentityProviders.TypeConverter.cs | 147 + .../Api20221101Preview/IdentityProviders.cs | 975 + .../IdentityProviders.json.cs | 124 + ...CustomOpenIdConnectProviders.PowerShell.cs | 149 + ...tomOpenIdConnectProviders.TypeConverter.cs | 151 + ...tyProvidersCustomOpenIdConnectProviders.cs | 42 + ...CustomOpenIdConnectProviders.dictionary.cs | 75 + ...vidersCustomOpenIdConnectProviders.json.cs | 115 + .../Api20221101Preview/Ingress.PowerShell.cs | 208 + .../Ingress.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Ingress.cs | 199 + .../Models/Api20221101Preview/Ingress.json.cs | 151 + .../InitContainer.PowerShell.cs | 218 + .../InitContainer.TypeConverter.cs | 147 + .../Api20221101Preview/InitContainer.cs | 96 + .../Api20221101Preview/InitContainer.json.cs | 108 + .../JwtClaimChecks.PowerShell.cs | 156 + .../JwtClaimChecks.TypeConverter.cs | 147 + .../Api20221101Preview/JwtClaimChecks.cs | 70 + .../Api20221101Preview/JwtClaimChecks.json.cs | 128 + .../LogAnalyticsConfiguration.PowerShell.cs | 154 + ...LogAnalyticsConfiguration.TypeConverter.cs | 147 + .../LogAnalyticsConfiguration.cs | 68 + .../LogAnalyticsConfiguration.json.cs | 110 + .../Api20221101Preview/Login.PowerShell.cs | 218 + .../Api20221101Preview/Login.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Login.cs | 205 + .../Models/Api20221101Preview/Login.json.cs | 126 + .../LoginRoutes.PowerShell.cs | 146 + .../LoginRoutes.TypeConverter.cs | 147 + .../Models/Api20221101Preview/LoginRoutes.cs | 51 + .../Api20221101Preview/LoginRoutes.json.cs | 108 + .../LoginScopes.PowerShell.cs | 148 + .../LoginScopes.TypeConverter.cs | 147 + .../Models/Api20221101Preview/LoginScopes.cs | 53 + .../Api20221101Preview/LoginScopes.json.cs | 118 + .../ManagedCertificate.PowerShell.cs | 284 + .../ManagedCertificate.TypeConverter.cs | 147 + .../Api20221101Preview/ManagedCertificate.cs | 218 + .../ManagedCertificate.json.cs | 112 + ...ManagedCertificateCollection.PowerShell.cs | 154 + ...agedCertificateCollection.TypeConverter.cs | 147 + .../ManagedCertificateCollection.cs | 71 + .../ManagedCertificateCollection.json.cs | 121 + .../ManagedCertificatePatch.PowerShell.cs | 146 + .../ManagedCertificatePatch.TypeConverter.cs | 147 + .../ManagedCertificatePatch.cs | 51 + .../ManagedCertificatePatch.json.cs | 108 + .../ManagedCertificatePatchTags.PowerShell.cs | 142 + ...nagedCertificatePatchTags.TypeConverter.cs | 147 + .../ManagedCertificatePatchTags.cs | 35 + .../ManagedCertificatePatchTags.dictionary.cs | 75 + .../ManagedCertificatePatchTags.json.cs | 109 + ...ManagedCertificateProperties.PowerShell.cs | 178 + ...agedCertificateProperties.TypeConverter.cs | 147 + .../ManagedCertificateProperties.cs | 134 + .../ManagedCertificateProperties.json.cs | 125 + .../ManagedEnvironment.PowerShell.cs | 514 + .../ManagedEnvironment.TypeConverter.cs | 147 + .../Api20221101Preview/ManagedEnvironment.cs | 651 + .../ManagedEnvironment.json.cs | 112 + ...dEnvironmentOutboundSettings.PowerShell.cs | 156 + ...vironmentOutboundSettings.TypeConverter.cs | 149 + .../ManagedEnvironmentOutboundSettings.cs | 68 + ...ManagedEnvironmentOutboundSettings.json.cs | 111 + ...ManagedEnvironmentProperties.PowerShell.cs | 394 + ...agedEnvironmentProperties.TypeConverter.cs | 147 + .../ManagedEnvironmentProperties.cs | 580 + .../ManagedEnvironmentProperties.json.cs | 153 + .../ManagedEnvironmentStorage.PowerShell.cs | 266 + ...ManagedEnvironmentStorage.TypeConverter.cs | 147 + .../ManagedEnvironmentStorage.cs | 184 + .../ManagedEnvironmentStorage.json.cs | 110 + ...EnvironmentStorageProperties.PowerShell.cs | 180 + ...ironmentStorageProperties.TypeConverter.cs | 149 + .../ManagedEnvironmentStorageProperties.cs | 102 + ...anagedEnvironmentStorageProperties.json.cs | 109 + ...nvironmentStoragesCollection.PowerShell.cs | 148 + ...ronmentStoragesCollection.TypeConverter.cs | 150 + .../ManagedEnvironmentStoragesCollection.cs | 51 + ...nagedEnvironmentStoragesCollection.json.cs | 117 + ...anagedEnvironmentsCollection.PowerShell.cs | 154 + ...gedEnvironmentsCollection.TypeConverter.cs | 147 + .../ManagedEnvironmentsCollection.cs | 71 + .../ManagedEnvironmentsCollection.json.cs | 121 + .../Api20221101Preview/Nonce.PowerShell.cs | 152 + .../Api20221101Preview/Nonce.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Nonce.cs | 74 + .../Models/Api20221101Preview/Nonce.json.cs | 110 + ...penIdConnectClientCredential.PowerShell.cs | 154 + ...IdConnectClientCredential.TypeConverter.cs | 147 + .../OpenIdConnectClientCredential.cs | 74 + .../OpenIdConnectClientCredential.json.cs | 110 + .../OpenIdConnectConfig.PowerShell.cs | 180 + .../OpenIdConnectConfig.TypeConverter.cs | 147 + .../Api20221101Preview/OpenIdConnectConfig.cs | 121 + .../OpenIdConnectConfig.json.cs | 118 + .../OpenIdConnectLogin.PowerShell.cs | 156 + .../OpenIdConnectLogin.TypeConverter.cs | 147 + .../Api20221101Preview/OpenIdConnectLogin.cs | 70 + .../OpenIdConnectLogin.json.cs | 120 + .../OpenIdConnectRegistration.PowerShell.cs | 220 + ...OpenIdConnectRegistration.TypeConverter.cs | 147 + .../OpenIdConnectRegistration.cs | 185 + .../OpenIdConnectRegistration.json.cs | 114 + .../OperationDetail.PowerShell.cs | 202 + .../OperationDetail.TypeConverter.cs | 147 + .../Api20221101Preview/OperationDetail.cs | 153 + .../OperationDetail.json.cs | 114 + .../OperationDisplay.PowerShell.cs | 170 + .../OperationDisplay.TypeConverter.cs | 147 + .../Api20221101Preview/OperationDisplay.cs | 102 + .../OperationDisplay.json.cs | 114 + .../QueueScaleRule.PowerShell.cs | 162 + .../QueueScaleRule.TypeConverter.cs | 147 + .../Api20221101Preview/QueueScaleRule.cs | 85 + .../Api20221101Preview/QueueScaleRule.json.cs | 120 + .../RegistryCredentials.PowerShell.cs | 170 + .../RegistryCredentials.TypeConverter.cs | 147 + .../Api20221101Preview/RegistryCredentials.cs | 111 + .../RegistryCredentials.json.cs | 114 + .../RegistryInfo.PowerShell.cs | 162 + .../RegistryInfo.TypeConverter.cs | 147 + .../Models/Api20221101Preview/RegistryInfo.cs | 85 + .../Api20221101Preview/RegistryInfo.json.cs | 112 + .../Api20221101Preview/Replica.PowerShell.cs | 240 + .../Replica.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Replica.cs | 154 + .../Models/Api20221101Preview/Replica.json.cs | 110 + .../ReplicaCollection.PowerShell.cs | 146 + .../ReplicaCollection.TypeConverter.cs | 147 + .../Api20221101Preview/ReplicaCollection.cs | 51 + .../ReplicaCollection.json.cs | 116 + .../ReplicaContainer.PowerShell.cs | 194 + .../ReplicaContainer.TypeConverter.cs | 147 + .../Api20221101Preview/ReplicaContainer.cs | 159 + .../ReplicaContainer.json.cs | 126 + .../ReplicaProperties.PowerShell.cs | 154 + .../ReplicaProperties.TypeConverter.cs | 147 + .../Api20221101Preview/ReplicaProperties.cs | 71 + .../ReplicaProperties.json.cs | 121 + .../Api20221101Preview/Revision.PowerShell.cs | 368 + .../Revision.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Revision.cs | 404 + .../Api20221101Preview/Revision.json.cs | 110 + .../RevisionCollection.PowerShell.cs | 154 + .../RevisionCollection.TypeConverter.cs | 147 + .../Api20221101Preview/RevisionCollection.cs | 71 + .../RevisionCollection.json.cs | 121 + .../RevisionProperties.PowerShell.cs | 282 + .../RevisionProperties.TypeConverter.cs | 147 + .../Api20221101Preview/RevisionProperties.cs | 353 + .../RevisionProperties.json.cs | 156 + .../Api20221101Preview/Scale.PowerShell.cs | 160 + .../Api20221101Preview/Scale.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Scale.cs | 85 + .../Models/Api20221101Preview/Scale.json.cs | 120 + .../ScaleRule.PowerShell.cs | 256 + .../ScaleRule.TypeConverter.cs | 146 + .../Models/Api20221101Preview/ScaleRule.cs | 249 + .../Api20221101Preview/ScaleRule.json.cs | 116 + .../ScaleRuleAuth.PowerShell.cs | 154 + .../ScaleRuleAuth.TypeConverter.cs | 147 + .../Api20221101Preview/ScaleRuleAuth.cs | 68 + .../Api20221101Preview/ScaleRuleAuth.json.cs | 110 + .../Api20221101Preview/Secret.PowerShell.cs | 152 + .../Secret.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Secret.cs | 68 + .../Models/Api20221101Preview/Secret.json.cs | 110 + .../SecretsCollection.PowerShell.cs | 146 + .../SecretsCollection.TypeConverter.cs | 147 + .../Api20221101Preview/SecretsCollection.cs | 51 + .../SecretsCollection.json.cs | 116 + .../SourceControl.PowerShell.cs | 378 + .../SourceControl.TypeConverter.cs | 147 + .../Api20221101Preview/SourceControl.cs | 369 + .../Api20221101Preview/SourceControl.json.cs | 110 + .../SourceControlCollection.PowerShell.cs | 154 + .../SourceControlCollection.TypeConverter.cs | 147 + .../SourceControlCollection.cs | 71 + .../SourceControlCollection.json.cs | 121 + .../SourceControlProperties.PowerShell.cs | 290 + .../SourceControlProperties.TypeConverter.cs | 147 + .../SourceControlProperties.cs | 300 + .../SourceControlProperties.json.cs | 117 + .../TcpScaleRule.PowerShell.cs | 154 + .../TcpScaleRule.TypeConverter.cs | 147 + .../Models/Api20221101Preview/TcpScaleRule.cs | 68 + .../Api20221101Preview/TcpScaleRule.json.cs | 118 + .../TcpScaleRuleMetadata.PowerShell.cs | 142 + .../TcpScaleRuleMetadata.TypeConverter.cs | 147 + .../TcpScaleRuleMetadata.cs | 35 + .../TcpScaleRuleMetadata.dictionary.cs | 75 + .../TcpScaleRuleMetadata.json.cs | 109 + .../Api20221101Preview/Template.PowerShell.cs | 206 + .../Template.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Template.cs | 164 + .../Api20221101Preview/Template.json.cs | 144 + .../TrafficWeight.PowerShell.cs | 170 + .../TrafficWeight.TypeConverter.cs | 147 + .../Api20221101Preview/TrafficWeight.cs | 102 + .../Api20221101Preview/TrafficWeight.json.cs | 114 + .../Api20221101Preview/Twitter.PowerShell.cs | 168 + .../Twitter.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Twitter.cs | 121 + .../Models/Api20221101Preview/Twitter.json.cs | 110 + .../TwitterRegistration.PowerShell.cs | 154 + .../TwitterRegistration.TypeConverter.cs | 147 + .../Api20221101Preview/TwitterRegistration.cs | 92 + .../TwitterRegistration.json.cs | 110 + .../VnetConfiguration.PowerShell.cs | 210 + .../VnetConfiguration.TypeConverter.cs | 147 + .../Api20221101Preview/VnetConfiguration.cs | 224 + .../VnetConfiguration.json.cs | 120 + .../Api20221101Preview/Volume.PowerShell.cs | 160 + .../Volume.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Volume.cs | 85 + .../Models/Api20221101Preview/Volume.json.cs | 112 + .../VolumeMount.PowerShell.cs | 154 + .../VolumeMount.TypeConverter.cs | 147 + .../Models/Api20221101Preview/VolumeMount.cs | 74 + .../Api20221101Preview/VolumeMount.json.cs | 110 + .../WorkloadProfile.PowerShell.cs | 162 + .../WorkloadProfile.TypeConverter.cs | 147 + .../Api20221101Preview/WorkloadProfile.cs | 85 + .../WorkloadProfile.json.cs | 112 + .../WorkloadProfileStates.PowerShell.cs | 252 + .../WorkloadProfileStates.TypeConverter.cs | 147 + .../WorkloadProfileStates.cs | 167 + .../WorkloadProfileStates.json.cs | 112 + ...kloadProfileStatesCollection.PowerShell.cs | 154 + ...adProfileStatesCollection.TypeConverter.cs | 148 + .../WorkloadProfileStatesCollection.cs | 71 + .../WorkloadProfileStatesCollection.json.cs | 121 + ...kloadProfileStatesProperties.PowerShell.cs | 162 + ...adProfileStatesProperties.TypeConverter.cs | 148 + .../WorkloadProfileStatesProperties.cs | 85 + .../WorkloadProfileStatesProperties.json.cs | 112 + ...CheckNameAvailabilityRequest.PowerShell.cs | 154 + ...ckNameAvailabilityRequest.TypeConverter.cs | 147 + .../Api30/CheckNameAvailabilityRequest.cs | 68 + .../CheckNameAvailabilityRequest.json.cs | 110 + ...heckNameAvailabilityResponse.PowerShell.cs | 162 + ...kNameAvailabilityResponse.TypeConverter.cs | 147 + .../Api30/CheckNameAvailabilityResponse.cs | 85 + .../CheckNameAvailabilityResponse.json.cs | 112 + .../Api30/ErrorAdditionalInfo.PowerShell.cs | 152 + .../ErrorAdditionalInfo.TypeConverter.cs | 147 + .../api/Models/Api30/ErrorAdditionalInfo.cs | 74 + .../Models/Api30/ErrorAdditionalInfo.json.cs | 116 + .../Models/Api30/ErrorDetail.PowerShell.cs | 176 + .../Models/Api30/ErrorDetail.TypeConverter.cs | 147 + .../generated/api/Models/Api30/ErrorDetail.cs | 134 + .../api/Models/Api30/ErrorDetail.json.cs | 147 + .../Models/Api30/ErrorResponse.PowerShell.cs | 188 + .../Api30/ErrorResponse.TypeConverter.cs | 147 + .../api/Models/Api30/ErrorResponse.cs | 136 + .../api/Models/Api30/ErrorResponse.json.cs | 111 + .../ManagedServiceIdentity.PowerShell.cs | 168 + .../ManagedServiceIdentity.TypeConverter.cs | 147 + .../Models/Api30/ManagedServiceIdentity.cs | 138 + .../Api30/ManagedServiceIdentity.json.cs | 120 + .../Models/Api30/ProxyResource.PowerShell.cs | 218 + .../Api30/ProxyResource.TypeConverter.cs | 147 + .../api/Models/Api30/ProxyResource.cs | 113 + .../api/Models/Api30/ProxyResource.json.cs | 110 + .../api/Models/Api30/Resource.PowerShell.cs | 218 + .../Models/Api30/Resource.TypeConverter.cs | 146 + .../generated/api/Models/Api30/Resource.cs | 208 + .../api/Models/Api30/Resource.json.cs | 128 + .../api/Models/Api30/SystemData.PowerShell.cs | 184 + .../Models/Api30/SystemData.TypeConverter.cs | 146 + .../generated/api/Models/Api30/SystemData.cs | 136 + .../api/Models/Api30/SystemData.json.cs | 118 + .../Api30/TrackedResource.PowerShell.cs | 234 + .../Api30/TrackedResource.TypeConverter.cs | 147 + .../api/Models/Api30/TrackedResource.cs | 147 + .../api/Models/Api30/TrackedResource.json.cs | 114 + .../Api30/TrackedResourceTags.PowerShell.cs | 140 + .../TrackedResourceTags.TypeConverter.cs | 147 + .../api/Models/Api30/TrackedResourceTags.cs | 35 + .../Api30/TrackedResourceTags.dictionary.cs | 75 + .../Models/Api30/TrackedResourceTags.json.cs | 109 + .../UserAssignedIdentities.PowerShell.cs | 146 + .../UserAssignedIdentities.TypeConverter.cs | 147 + .../Models/Api30/UserAssignedIdentities.cs | 43 + .../UserAssignedIdentities.dictionary.cs | 75 + .../Api30/UserAssignedIdentities.json.cs | 113 + .../Api30/UserAssignedIdentity.PowerShell.cs | 152 + .../UserAssignedIdentity.TypeConverter.cs | 147 + .../api/Models/Api30/UserAssignedIdentity.cs | 74 + .../Models/Api30/UserAssignedIdentity.json.cs | 116 + .../ContainerAppsApiIdentity.PowerShell.cs | 262 + .../ContainerAppsApiIdentity.TypeConverter.cs | 157 + .../api/Models/ContainerAppsApiIdentity.cs | 303 + .../Models/ContainerAppsApiIdentity.json.cs | 137 + .../api/Support/AccessMode.Completer.cs | 39 + .../api/Support/AccessMode.TypeConverter.cs | 59 + .../app/generated/api/Support/AccessMode.cs | 98 + .../generated/api/Support/Action.Completer.cs | 41 + .../api/Support/Action.TypeConverter.cs | 61 + swaggerci/app/generated/api/Support/Action.cs | 100 + .../Support/ActiveRevisionsMode.Completer.cs | 43 + .../ActiveRevisionsMode.TypeConverter.cs | 63 + .../api/Support/ActiveRevisionsMode.cs | 102 + .../api/Support/AppProtocol.Completer.cs | 41 + .../api/Support/AppProtocol.TypeConverter.cs | 61 + .../app/generated/api/Support/AppProtocol.cs | 100 + .../api/Support/Applicability.Completer.cs | 39 + .../Support/Applicability.TypeConverter.cs | 59 + .../generated/api/Support/Applicability.cs | 98 + .../api/Support/BindingType.Completer.cs | 39 + .../api/Support/BindingType.TypeConverter.cs | 59 + .../app/generated/api/Support/BindingType.cs | 98 + .../api/Support/Category.Completer.cs | 43 + .../api/Support/Category.TypeConverter.cs | 59 + .../app/generated/api/Support/Category.cs | 100 + .../CertificateProvisioningState.Completer.cs | 51 + ...tificateProvisioningState.TypeConverter.cs | 59 + .../Support/CertificateProvisioningState.cs | 108 + .../CheckNameAvailabilityReason.Completer.cs | 39 + ...eckNameAvailabilityReason.TypeConverter.cs | 59 + .../Support/CheckNameAvailabilityReason.cs | 102 + .../ClientCredentialMethod.Completer.cs | 35 + .../ClientCredentialMethod.TypeConverter.cs | 59 + .../api/Support/ClientCredentialMethod.cs | 96 + ...dEnvironmentProvisioningState.Completer.cs | 63 + ...ironmentProvisioningState.TypeConverter.cs | 59 + .../ConnectedEnvironmentProvisioningState.cs | 116 + ...ContainerAppProvisioningState.Completer.cs | 51 + ...ainerAppProvisioningState.TypeConverter.cs | 59 + .../Support/ContainerAppProvisioningState.cs | 110 + .../CookieExpirationConvention.Completer.cs | 39 + ...ookieExpirationConvention.TypeConverter.cs | 59 + .../api/Support/CookieExpirationConvention.cs | 100 + .../api/Support/CreatedByType.Completer.cs | 47 + .../Support/CreatedByType.TypeConverter.cs | 59 + .../generated/api/Support/CreatedByType.cs | 102 + .../DnsVerificationTestResult.Completer.cs | 43 + ...DnsVerificationTestResult.TypeConverter.cs | 59 + .../api/Support/DnsVerificationTestResult.cs | 100 + .../EnvironmentProvisioningState.Completer.cs | 71 + ...ironmentProvisioningState.TypeConverter.cs | 59 + .../Support/EnvironmentProvisioningState.cs | 118 + .../ExtendedLocationTypes.Completer.cs | 35 + .../ExtendedLocationTypes.TypeConverter.cs | 59 + .../api/Support/ExtendedLocationTypes.cs | 96 + .../ForwardProxyConvention.Completer.cs | 43 + .../ForwardProxyConvention.TypeConverter.cs | 59 + .../api/Support/ForwardProxyConvention.cs | 100 + .../IngressTransportMethod.Completer.cs | 47 + .../IngressTransportMethod.TypeConverter.cs | 59 + .../api/Support/IngressTransportMethod.cs | 102 + .../api/Support/LogLevel.Completer.cs | 49 + .../api/Support/LogLevel.TypeConverter.cs | 61 + .../app/generated/api/Support/LogLevel.cs | 104 + ...ficateDomainControlValidation.Completer.cs | 43 + ...teDomainControlValidation.TypeConverter.cs | 59 + ...nagedCertificateDomainControlValidation.cs | 110 + ...anagedEnvironmentOutBoundType.Completer.cs | 39 + ...edEnvironmentOutBoundType.TypeConverter.cs | 59 + .../Support/ManagedEnvironmentOutBoundType.cs | 104 + .../ManagedServiceIdentityType.Completer.cs | 49 + ...anagedServiceIdentityType.TypeConverter.cs | 61 + .../api/Support/ManagedServiceIdentityType.cs | 106 + .../Support/RevisionHealthState.Completer.cs | 43 + .../RevisionHealthState.TypeConverter.cs | 59 + .../api/Support/RevisionHealthState.cs | 100 + .../RevisionProvisioningState.Completer.cs | 51 + ...RevisionProvisioningState.TypeConverter.cs | 59 + .../api/Support/RevisionProvisioningState.cs | 104 + .../generated/api/Support/Scheme.Completer.cs | 39 + .../api/Support/Scheme.TypeConverter.cs | 59 + swaggerci/app/generated/api/Support/Scheme.cs | 98 + .../api/Support/SkuName.Completer.cs | 39 + .../api/Support/SkuName.TypeConverter.cs | 59 + .../app/generated/api/Support/SkuName.cs | 100 + .../SourceControlOperationState.Completer.cs | 47 + ...urceControlOperationState.TypeConverter.cs | 59 + .../Support/SourceControlOperationState.cs | 106 + .../api/Support/StorageType.Completer.cs | 39 + .../api/Support/StorageType.TypeConverter.cs | 59 + .../app/generated/api/Support/StorageType.cs | 98 + .../generated/api/Support/Type.Completer.cs | 43 + .../api/Support/Type.TypeConverter.cs | 59 + swaggerci/app/generated/api/Support/Type.cs | 100 + ...UnauthenticatedClientActionV2.Completer.cs | 47 + ...thenticatedClientActionV2.TypeConverter.cs | 59 + .../Support/UnauthenticatedClientActionV2.cs | 108 + ...inerAppsApiAvailableWorkloadProfile_Get.cs | 411 + ...AvailableWorkloadProfile_GetViaIdentity.cs | 400 + .../GetAzContainerAppsApiBillingMeter_Get.cs | 390 + ...ainerAppsApiBillingMeter_GetViaIdentity.cs | 379 + .../GetAzContainerAppsApiCertificate_Get.cs | 418 + ...tainerAppsApiCertificate_GetViaIdentity.cs | 386 + .../GetAzContainerAppsApiCertificate_List.cs | 425 + ...ctedEnvironmentDaprComponentSecret_List.cs | 422 + ...ontainerAppsApiConnectedEnvironment_Get.cs | 404 + ...sApiConnectedEnvironment_GetViaIdentity.cs | 382 + ...ntainerAppsApiConnectedEnvironment_List.cs | 397 + ...tainerAppsApiConnectedEnvironment_List1.cs | 411 + ...ApiConnectedEnvironmentsCertificate_Get.cs | 417 + ...dEnvironmentsCertificate_GetViaIdentity.cs | 387 + ...piConnectedEnvironmentsCertificate_List.cs | 425 + ...iConnectedEnvironmentsDaprComponent_Get.cs | 417 + ...nvironmentsDaprComponent_GetViaIdentity.cs | 387 + ...ConnectedEnvironmentsDaprComponent_List.cs | 425 + ...AppsApiConnectedEnvironmentsStorage_Get.cs | 417 + ...ectedEnvironmentsStorage_GetViaIdentity.cs | 387 + ...ppsApiConnectedEnvironmentsStorage_List.cs | 404 + ...ainerAppsApiContainerAppAuthConfig_List.cs | 425 + ...ntainerAppsApiContainerAppAuthToken_Get.cs | 447 + ...ApiContainerAppAuthToken_GetViaIdentity.cs | 426 + ...ContainerAppCustomHostNameAnalysis_List.cs | 420 + ...psApiContainerAppDiagnosticDetector_Get.cs | 417 + ...nerAppDiagnosticDetector_GetViaIdentity.cs | 387 + ...sApiContainerAppDiagnosticDetector_List.cs | 425 + ...psApiContainerAppDiagnosticRevision_Get.cs | 417 + ...nerAppDiagnosticRevision_GetViaIdentity.cs | 387 + ...sApiContainerAppDiagnosticRevision_List.cs | 439 + ...erAppsApiContainerAppDiagnosticRoot_Get.cs | 444 + ...ntainerAppDiagnosticRoot_GetViaIdentity.cs | 424 + ...rAppsApiContainerAppRevisionReplica_Get.cs | 431 + ...tainerAppRevisionReplica_GetViaIdentity.cs | 391 + ...AppsApiContainerAppRevisionReplica_List.cs | 418 + ...ontainerAppsApiContainerAppRevision_Get.cs | 417 + ...sApiContainerAppRevision_GetViaIdentity.cs | 386 + ...ntainerAppsApiContainerAppRevision_List.cs | 439 + ...ContainerAppsApiContainerAppSecret_List.cs | 407 + ...erAppsApiContainerAppSourceControl_List.cs | 425 + .../GetAzContainerAppsApiContainerApp_Get.cs | 445 + ...ainerAppsApiContainerApp_GetViaIdentity.cs | 423 + .../GetAzContainerAppsApiContainerApp_List.cs | 397 + ...GetAzContainerAppsApiContainerApp_List1.cs | 411 + ...ainerAppsApiContainerAppsAuthConfig_Get.cs | 417 + ...iContainerAppsAuthConfig_GetViaIdentity.cs | 386 + ...erAppsApiContainerAppsSourceControl_Get.cs | 417 + ...ntainerAppsSourceControl_GetViaIdentity.cs | 387 + ...ontainerAppsApiDaprComponentSecret_List.cs | 421 + .../GetAzContainerAppsApiDaprComponent_Get.cs | 417 + ...inerAppsApiDaprComponent_GetViaIdentity.cs | 386 + ...GetAzContainerAppsApiDaprComponent_List.cs | 425 + ...zContainerAppsApiManagedCertificate_Get.cs | 418 + ...ppsApiManagedCertificate_GetViaIdentity.cs | 386 + ...ContainerAppsApiManagedCertificate_List.cs | 425 + ...rAppsApiManagedEnvironmentAuthToken_Get.cs | 406 + ...agedEnvironmentAuthToken_GetViaIdentity.cs | 386 + ...anagedEnvironmentDiagnosticDetector_Get.cs | 417 + ...onmentDiagnosticDetector_GetViaIdentity.cs | 387 + ...nagedEnvironmentDiagnosticDetector_List.cs | 428 + ...ApiManagedEnvironmentDiagnosticRoot_Get.cs | 403 + ...nvironmentDiagnosticRoot_GetViaIdentity.cs | 383 + ...gedEnvironmentWorkloadProfileState_List.cs | 426 + ...zContainerAppsApiManagedEnvironment_Get.cs | 403 + ...ppsApiManagedEnvironment_GetViaIdentity.cs | 382 + ...ContainerAppsApiManagedEnvironment_List.cs | 397 + ...ontainerAppsApiManagedEnvironment_List1.cs | 411 + ...erAppsApiManagedEnvironmentsStorage_Get.cs | 417 + ...nagedEnvironmentsStorage_GetViaIdentity.cs | 387 + ...rAppsApiManagedEnvironmentsStorage_List.cs | 404 + .../GetAzContainerAppsApiOperation_List.cs | 377 + ...nerAppsApiContainerAppRevision_Activate.cs | 422 + ...ontainerAppRevision_ActivateViaIdentity.cs | 395 + ...activateContainerAppRevision_Deactivate.cs | 423 + ...tainerAppRevision_DeactivateViaIdentity.cs | 395 + ...tainerAppsApiCertificate_CreateExpanded.cs | 480 + ...edEnvironmentCertificate_CreateExpanded.cs | 480 + ...EnvironmentDaprComponent_CreateExpanded.cs | 512 + ...nectedEnvironmentStorage_CreateExpanded.cs | 466 + ...sApiConnectedEnvironment_CreateExpanded.cs | 607 + ...piContainerAppAuthConfig_CreateExpanded.cs | 648 + ...ontainerAppSourceControl_CreateExpanded.cs | 655 + ...ainerAppsApiContainerApp_CreateExpanded.cs | 911 + ...inerAppsApiDaprComponent_CreateExpanded.cs | 511 + ...ppsApiManagedCertificate_CreateExpanded.cs | 578 + ...anagedEnvironmentStorage_CreateExpanded.cs | 465 + ...ppsApiManagedEnvironment_CreateExpanded.cs | 754 + ...oveAzContainerAppsApiCertificate_Delete.cs | 457 + ...nerAppsApiCertificate_DeleteViaIdentity.cs | 428 + ...ainerAppsApiConnectedEnvironment_Delete.cs | 509 + ...iConnectedEnvironment_DeleteViaIdentity.cs | 490 + ...ConnectedEnvironmentsCertificate_Delete.cs | 457 + ...vironmentsCertificate_DeleteViaIdentity.cs | 429 + ...nnectedEnvironmentsDaprComponent_Delete.cs | 457 + ...ronmentsDaprComponent_DeleteViaIdentity.cs | 429 + ...sApiConnectedEnvironmentsStorage_Delete.cs | 456 + ...edEnvironmentsStorage_DeleteViaIdentity.cs | 429 + ...veAzContainerAppsApiContainerApp_Delete.cs | 509 + ...erAppsApiContainerApp_DeleteViaIdentity.cs | 487 + ...erAppsApiContainerAppsAuthConfig_Delete.cs | 456 + ...ntainerAppsAuthConfig_DeleteViaIdentity.cs | 429 + ...ppsApiContainerAppsSourceControl_Delete.cs | 525 + ...inerAppsSourceControl_DeleteViaIdentity.cs | 494 + ...eAzContainerAppsApiDaprComponent_Delete.cs | 456 + ...rAppsApiDaprComponent_DeleteViaIdentity.cs | 428 + ...ntainerAppsApiManagedCertificate_Delete.cs | 457 + ...ApiManagedCertificate_DeleteViaIdentity.cs | 428 + ...ntainerAppsApiManagedEnvironment_Delete.cs | 508 + ...ApiManagedEnvironment_DeleteViaIdentity.cs | 489 + ...ppsApiManagedEnvironmentsStorage_Delete.cs | 456 + ...edEnvironmentsStorage_DeleteViaIdentity.cs | 429 + ...inerAppsApiContainerAppRevision_Restart.cs | 422 + ...ContainerAppRevision_RestartViaIdentity.cs | 395 + ...nectedEnvironmentNameAvailability_Check.cs | 417 + ...vironmentNameAvailability_CheckExpanded.cs | 429 + ...onmentNameAvailability_CheckViaIdentity.cs | 399 + ...meAvailability_CheckViaIdentityExpanded.cs | 411 + ...rAppsApiNamespaceNameAvailability_Check.cs | 416 + ...NamespaceNameAvailability_CheckExpanded.cs | 428 + ...espaceNameAvailability_CheckViaIdentity.cs | 399 + ...meAvailability_CheckViaIdentityExpanded.cs | 411 + ...tainerAppsApiCertificate_UpdateExpanded.cs | 433 + ...piCertificate_UpdateViaIdentityExpanded.cs | 404 + ...dEnvironmentsCertificate_UpdateExpanded.cs | 433 + ...tsCertificate_UpdateViaIdentityExpanded.cs | 405 + ...ainerAppsApiContainerApp_UpdateExpanded.cs | 875 + ...iContainerApp_UpdateViaIdentityExpanded.cs | 856 + ...ppsApiManagedCertificate_UpdateExpanded.cs | 433 + ...edCertificate_UpdateViaIdentityExpanded.cs | 405 + ...ppsApiManagedEnvironment_UpdateExpanded.cs | 720 + ...edEnvironment_UpdateViaIdentityExpanded.cs | 700 + .../Az.Accounts/2.7.5/Accounts.format.ps1xml | 496 + .../2.7.5/Accounts.generated.format.ps1xml | 468 + .../Az.Accounts/2.7.5/Accounts.types.ps1xml | 303 + .../Az.Accounts/2.7.5/Az.Accounts.nuspec | 20 + .../Az.Accounts/2.7.5/Az.Accounts.psd1 | 387 + .../Az.Accounts/2.7.5/Az.Accounts.psm1 | 375 + .../AzSharedAlcAssemblies/Azure.Core.dll | Bin 0 -> 251816 bytes .../AzSharedAlcAssemblies/Azure.Identity.dll | Bin 0 -> 294288 bytes .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20864 bytes ...rosoft.Identity.Client.Extensions.Msal.dll | Bin 0 -> 62472 bytes .../Microsoft.Identity.Client.dll | Bin 0 -> 1363896 bytes .../System.Memory.Data.dll | Bin 0 -> 21368 bytes .../System.Text.Json.dll | Bin 0 -> 293240 bytes .../modules/Az.Accounts/2.7.5/Hyak.Common.dll | Bin 0 -> 63880 bytes .../2.7.5/Microsoft.ApplicationInsights.dll | Bin 0 -> 336464 bytes .../2.7.5/Microsoft.Azure.Common.dll | Bin 0 -> 35720 bytes ...PowerShell.Authentication.Abstractions.dll | Bin 0 -> 119208 bytes ...l.Authentication.ResourceManager.deps.json | 2309 +++ ...erShell.Authentication.ResourceManager.dll | Bin 0 -> 79792 bytes ....Azure.PowerShell.Authentication.deps.json | 2273 +++ ...rosoft.Azure.PowerShell.Authentication.dll | Bin 0 -> 136096 bytes ...uthenticationAssemblyLoadContext.deps.json | 1316 ++ ...hell.AuthenticationAssemblyLoadContext.dll | Bin 0 -> 18344 bytes ...rosoft.Azure.PowerShell.Authenticators.dll | Bin 0 -> 85416 bytes ...Microsoft.Azure.PowerShell.Clients.Aks.dll | Bin 0 -> 90000 bytes ...Azure.PowerShell.Clients.Authorization.dll | Bin 0 -> 150928 bytes ...osoft.Azure.PowerShell.Clients.Compute.dll | Bin 0 -> 1419664 bytes ...ft.Azure.PowerShell.Clients.Graph.Rbac.dll | Bin 0 -> 759184 bytes ...soft.Azure.PowerShell.Clients.KeyVault.dll | Bin 0 -> 122792 bytes ...osoft.Azure.PowerShell.Clients.Monitor.dll | Bin 0 -> 413584 bytes ...osoft.Azure.PowerShell.Clients.Network.dll | Bin 0 -> 1688488 bytes ...zure.PowerShell.Clients.PolicyInsights.dll | Bin 0 -> 178064 bytes ...ure.PowerShell.Clients.ResourceManager.dll | Bin 0 -> 1220496 bytes ....PowerShell.Clients.Storage.Management.dll | Bin 0 -> 263080 bytes ...soft.Azure.PowerShell.Clients.Websites.dll | Bin 0 -> 3272080 bytes ...zure.PowerShell.Cmdlets.Accounts.deps.json | 2413 +++ ...soft.Azure.PowerShell.Cmdlets.Accounts.dll | Bin 0 -> 461744 bytes ...e.PowerShell.Cmdlets.Accounts.dll-Help.xml | 11900 ++++++++++++ ...icrosoft.Azure.PowerShell.Common.Share.dll | Bin 0 -> 27048 bytes .../Microsoft.Azure.PowerShell.Common.dll | Bin 0 -> 276368 bytes .../Microsoft.Azure.PowerShell.Storage.dll | Bin 0 -> 20392 bytes .../Microsoft.Azure.PowerShell.Strategies.dll | Bin 0 -> 65424 bytes .../Microsoft.Rest.ClientRuntime.Azure.dll | Bin 0 -> 97872 bytes .../2.7.5/Microsoft.Rest.ClientRuntime.dll | Bin 0 -> 80248 bytes ...soft.WindowsAzure.Storage.DataMovement.dll | Bin 0 -> 302784 bytes .../2.7.5/Microsoft.WindowsAzure.Storage.dll | Bin 0 -> 784496 bytes .../PostImportScripts/LoadAuthenticators.ps1 | 219 + .../2.7.5/PreloadAssemblies/Azure.Core.dll | Bin 0 -> 259448 bytes .../PreloadAssemblies/Azure.Identity.dll | Bin 0 -> 294288 bytes ...rosoft.Azure.PowerShell.Authenticators.dll | Bin 0 -> 85416 bytes .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20856 bytes ...rosoft.Identity.Client.Extensions.Msal.dll | Bin 0 -> 61944 bytes .../Microsoft.Identity.Client.dll | Bin 0 -> 1421752 bytes .../Newtonsoft.Json.12.0.3.dll | Bin 0 -> 702400 bytes .../PreloadAssemblies/Newtonsoft.Json.dll | Bin 0 -> 663992 bytes .../PreloadAssemblies/System.Buffers.dll | Bin 0 -> 28304 bytes .../System.Diagnostics.DiagnosticSource.dll | Bin 0 -> 49528 bytes .../PreloadAssemblies/System.Memory.Data.dll | Bin 0 -> 21880 bytes .../2.7.5/PreloadAssemblies/System.Memory.dll | Bin 0 -> 148760 bytes .../System.Net.Http.WinHttpHandler.dll | Bin 0 -> 117656 bytes .../System.Numerics.Vectors.dll | Bin 0 -> 115856 bytes .../System.Private.ServiceModel.dll | Bin 0 -> 2318920 bytes .../System.Reflection.DispatchProxy.dll | Bin 0 -> 24992 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 16760 bytes .../System.Security.AccessControl.dll | Bin 0 -> 54416 bytes .../System.Security.Cryptography.Cng.dll | Bin 0 -> 23976 bytes .../System.Security.Permissions.dll | Bin 0 -> 96400 bytes .../System.Security.Principal.Windows.dll | Bin 0 -> 39056 bytes .../System.ServiceModel.Primitives.dll | Bin 0 -> 21576 bytes .../System.Text.Encodings.Web.dll | Bin 0 -> 59768 bytes .../PreloadAssemblies/System.Text.Json.dll | Bin 0 -> 293248 bytes .../System.Threading.Tasks.Extensions.dll | Bin 0 -> 25984 bytes .../System.Xml.ReaderWriter.dll | Bin 0 -> 606592 bytes .../2.7.5/StartupScripts/AzError.ps1 | 278 + .../InitializeAssemblyResolver.ps1 | 234 + .../Az.Accounts/2.7.5/[Content_Types].xml | 14 + .../modules/Az.Accounts/2.7.5/_rels/.rels | 5 + .../Az.Accounts/2.7.5/en-US/about_az.help.txt | 50 + .../1aa0749a068a4238881858013f1a5b7f.psmdcp | 11 + .../generated/runtime/AsyncCommandRuntime.cs | 832 + swaggerci/app/generated/runtime/AsyncJob.cs | 270 + .../runtime/AsyncOperationResponse.cs | 176 + .../BuildTime/Cmdlets/ExportCmdletSurface.cs | 113 + .../BuildTime/Cmdlets/ExportExampleStub.cs | 74 + .../BuildTime/Cmdlets/ExportFormatPs1xml.cs | 101 + .../BuildTime/Cmdlets/ExportHelpMarkdown.cs | 53 + .../BuildTime/Cmdlets/ExportModelSurface.cs | 117 + .../BuildTime/Cmdlets/ExportProxyCmdlet.cs | 169 + .../runtime/BuildTime/Cmdlets/ExportPsd1.cs | 191 + .../BuildTime/Cmdlets/ExportTestStub.cs | 148 + .../BuildTime/Cmdlets/GetCommonParameter.cs | 52 + .../BuildTime/Cmdlets/GetModuleGuid.cs | 31 + .../BuildTime/Cmdlets/GetScriptCmdlet.cs | 54 + .../runtime/BuildTime/CollectionExtensions.cs | 20 + .../runtime/BuildTime/MarkdownRenderer.cs | 114 + .../runtime/BuildTime/Models/PsFormatTypes.cs | 138 + .../BuildTime/Models/PsHelpMarkdownOutputs.cs | 199 + .../runtime/BuildTime/Models/PsHelpTypes.cs | 202 + .../BuildTime/Models/PsMarkdownTypes.cs | 294 + .../BuildTime/Models/PsProxyOutputs.cs | 611 + .../runtime/BuildTime/Models/PsProxyTypes.cs | 514 + .../runtime/BuildTime/PsAttributes.cs | 114 + .../runtime/BuildTime/PsExtensions.cs | 169 + .../generated/runtime/BuildTime/PsHelpers.cs | 105 + .../runtime/BuildTime/StringExtensions.cs | 24 + .../runtime/BuildTime/XmlExtensions.cs | 28 + .../app/generated/runtime/CmdInfoHandler.cs | 40 + .../Conversions/ConversionException.cs | 17 + .../runtime/Conversions/IJsonConverter.cs | 13 + .../Conversions/Instances/BinaryConverter.cs | 24 + .../Conversions/Instances/BooleanConverter.cs | 13 + .../Instances/DateTimeConverter.cs | 18 + .../Instances/DateTimeOffsetConverter.cs | 15 + .../Conversions/Instances/DecimalConverter.cs | 16 + .../Conversions/Instances/DoubleConverter.cs | 13 + .../Conversions/Instances/EnumConverter.cs | 30 + .../Conversions/Instances/GuidConverter.cs | 15 + .../Instances/HashSet'1Converter.cs | 27 + .../Conversions/Instances/Int16Converter.cs | 13 + .../Conversions/Instances/Int32Converter.cs | 13 + .../Conversions/Instances/Int64Converter.cs | 13 + .../Instances/JsonArrayConverter.cs | 13 + .../Instances/JsonObjectConverter.cs | 13 + .../Conversions/Instances/SingleConverter.cs | 13 + .../Conversions/Instances/StringConverter.cs | 13 + .../Instances/TimeSpanConverter.cs | 15 + .../Conversions/Instances/UInt16Converter.cs | 13 + .../Conversions/Instances/UInt32Converter.cs | 13 + .../Conversions/Instances/UInt64Converter.cs | 13 + .../Conversions/Instances/UriConverter.cs | 15 + .../runtime/Conversions/JsonConverter.cs | 21 + .../Conversions/JsonConverterAttribute.cs | 18 + .../Conversions/JsonConverterFactory.cs | 91 + .../Conversions/StringLikeConverter.cs | 45 + .../Customizations/IJsonSerializable.cs | 263 + .../runtime/Customizations/JsonArray.cs | 13 + .../runtime/Customizations/JsonBoolean.cs | 16 + .../runtime/Customizations/JsonNode.cs | 21 + .../runtime/Customizations/JsonNumber.cs | 78 + .../runtime/Customizations/JsonObject.cs | 183 + .../runtime/Customizations/JsonString.cs | 34 + .../runtime/Customizations/XNodeArray.cs | 44 + swaggerci/app/generated/runtime/Debugging.cs | 28 + .../generated/runtime/DictionaryExtensions.cs | 33 + swaggerci/app/generated/runtime/EventData.cs | 78 + .../generated/runtime/EventDataExtensions.cs | 94 + .../app/generated/runtime/EventListener.cs | 247 + swaggerci/app/generated/runtime/Events.cs | 27 + .../app/generated/runtime/EventsExtensions.cs | 27 + swaggerci/app/generated/runtime/Extensions.cs | 117 + .../Extensions/StringBuilderExtensions.cs | 23 + .../Helpers/Extensions/TypeExtensions.cs | 61 + .../generated/runtime/Helpers/Seperator.cs | 11 + .../generated/runtime/Helpers/TypeDetails.cs | 116 + .../app/generated/runtime/Helpers/XHelper.cs | 75 + .../app/generated/runtime/HttpPipeline.cs | 88 + .../generated/runtime/HttpPipelineMocking.ps1 | 110 + .../generated/runtime/IAssociativeArray.cs | 24 + .../generated/runtime/IHeaderSerializable.cs | 14 + swaggerci/app/generated/runtime/ISendAsync.cs | 300 + .../app/generated/runtime/InfoAttribute.cs | 34 + .../app/generated/runtime/Iso/IsoDate.cs | 214 + swaggerci/app/generated/runtime/JsonType.cs | 18 + .../app/generated/runtime/MessageAttribute.cs | 360 + .../runtime/MessageAttributeHelper.cs | 161 + swaggerci/app/generated/runtime/Method.cs | 19 + .../generated/runtime/Models/JsonMember.cs | 83 + .../app/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 + .../app/generated/runtime/Nodes/JsonDate.cs | 173 + .../app/generated/runtime/Nodes/JsonNode.cs | 250 + .../app/generated/runtime/Nodes/JsonNumber.cs | 109 + .../app/generated/runtime/Nodes/JsonObject.cs | 172 + .../app/generated/runtime/Nodes/JsonString.cs | 42 + .../app/generated/runtime/Nodes/XBinary.cs | 40 + .../app/generated/runtime/Nodes/XNull.cs | 15 + .../Parser/Exceptions/ParseException.cs | 24 + .../generated/runtime/Parser/JsonParser.cs | 180 + .../app/generated/runtime/Parser/JsonToken.cs | 66 + .../generated/runtime/Parser/JsonTokenizer.cs | 177 + .../app/generated/runtime/Parser/Location.cs | 43 + .../runtime/Parser/Readers/SourceReader.cs | 130 + .../generated/runtime/Parser/TokenReader.cs | 39 + .../app/generated/runtime/PipelineMocking.cs | 262 + .../runtime/Properties/Resources.Designer.cs | 5633 ++++++ .../runtime/Properties/Resources.resx | 1741 ++ swaggerci/app/generated/runtime/Response.cs | 27 + .../runtime/Serialization/JsonSerializer.cs | 350 + .../Serialization/PropertyTransformation.cs | 21 + .../Serialization/SerializationOptions.cs | 65 + .../generated/runtime/SerializationMode.cs | 16 + .../runtime/TypeConverterExtensions.cs | 211 + .../runtime/UndeclaredResponseException.cs | 112 + .../generated/runtime/Writers/JsonWriter.cs | 223 + swaggerci/app/generated/runtime/delegates.cs | 23 + swaggerci/app/how-to.md | 58 + .../Az.ContainerAppsApi.internal.psm1 | 38 + .../Get-AzContainerAppsApiOperation.ps1 | 116 + .../app/internal/ProxyCmdletDefinitions.ps1 | 116 + swaggerci/app/internal/README.md | 14 + swaggerci/app/license.txt | 227 + swaggerci/app/pack-module.ps1 | 9 + swaggerci/app/readme.md | 10 + swaggerci/app/resources/README.md | 11 + swaggerci/app/run-module.ps1 | 54 + swaggerci/app/test-module.ps1 | 86 + ...rAppsApiAvailableWorkloadProfile.Tests.ps1 | 25 + ...t-AzContainerAppsApiBillingMeter.Tests.ps1 | 25 + ...et-AzContainerAppsApiCertificate.Tests.ps1 | 29 + ...ainerAppsApiConnectedEnvironment.Tests.ps1 | 33 + ...edEnvironmentDaprComponentSecret.Tests.ps1 | 21 + ...ConnectedEnvironmentsCertificate.Tests.ps1 | 29 + ...nnectedEnvironmentsDaprComponent.Tests.ps1 | 29 + ...sApiConnectedEnvironmentsStorage.Tests.ps1 | 29 + ...t-AzContainerAppsApiContainerApp.Tests.ps1 | 33 + ...nerAppsApiContainerAppAuthConfig.Tests.ps1 | 21 + ...inerAppsApiContainerAppAuthToken.Tests.ps1 | 25 + ...ntainerAppCustomHostNameAnalysis.Tests.ps1 | 21 + ...piContainerAppDiagnosticDetector.Tests.ps1 | 29 + ...piContainerAppDiagnosticRevision.Tests.ps1 | 29 + ...ppsApiContainerAppDiagnosticRoot.Tests.ps1 | 25 + ...ainerAppsApiContainerAppRevision.Tests.ps1 | 29 + ...psApiContainerAppRevisionReplica.Tests.ps1 | 29 + ...ntainerAppsApiContainerAppSecret.Tests.ps1 | 21 + ...AppsApiContainerAppSourceControl.Tests.ps1 | 21 + ...erAppsApiContainerAppsAuthConfig.Tests.ps1 | 25 + ...ppsApiContainerAppsSourceControl.Tests.ps1 | 25 + ...-AzContainerAppsApiDaprComponent.Tests.ps1 | 29 + ...tainerAppsApiDaprComponentSecret.Tests.ps1 | 21 + ...ntainerAppsApiManagedCertificate.Tests.ps1 | 29 + ...ntainerAppsApiManagedEnvironment.Tests.ps1 | 33 + ...psApiManagedEnvironmentAuthToken.Tests.ps1 | 25 + ...gedEnvironmentDiagnosticDetector.Tests.ps1 | 29 + ...ManagedEnvironmentDiagnosticRoot.Tests.ps1 | 25 + ...dEnvironmentWorkloadProfileState.Tests.ps1 | 21 + ...ppsApiManagedEnvironmentsStorage.Tests.ps1 | 29 + ...ainerAppsApiContainerAppRevision.Tests.ps1 | 25 + ...piDeactivateContainerAppRevision.Tests.ps1 | 25 + ...ew-AzContainerAppsApiCertificate.Tests.ps1 | 21 + ...ainerAppsApiConnectedEnvironment.Tests.ps1 | 21 + ...iConnectedEnvironmentCertificate.Tests.ps1 | 21 + ...onnectedEnvironmentDaprComponent.Tests.ps1 | 21 + ...psApiConnectedEnvironmentStorage.Tests.ps1 | 21 + ...w-AzContainerAppsApiContainerApp.Tests.ps1 | 21 + ...nerAppsApiContainerAppAuthConfig.Tests.ps1 | 21 + ...AppsApiContainerAppSourceControl.Tests.ps1 | 21 + ...-AzContainerAppsApiDaprComponent.Tests.ps1 | 21 + ...ntainerAppsApiManagedCertificate.Tests.ps1 | 21 + ...ntainerAppsApiManagedEnvironment.Tests.ps1 | 21 + ...AppsApiManagedEnvironmentStorage.Tests.ps1 | 21 + swaggerci/app/test/README.md | 17 + ...ve-AzContainerAppsApiCertificate.Tests.ps1 | 25 + ...ainerAppsApiConnectedEnvironment.Tests.ps1 | 25 + ...ConnectedEnvironmentsCertificate.Tests.ps1 | 25 + ...nnectedEnvironmentsDaprComponent.Tests.ps1 | 25 + ...sApiConnectedEnvironmentsStorage.Tests.ps1 | 25 + ...e-AzContainerAppsApiContainerApp.Tests.ps1 | 25 + ...erAppsApiContainerAppsAuthConfig.Tests.ps1 | 25 + ...ppsApiContainerAppsSourceControl.Tests.ps1 | 25 + ...-AzContainerAppsApiDaprComponent.Tests.ps1 | 25 + ...ntainerAppsApiManagedCertificate.Tests.ps1 | 25 + ...ntainerAppsApiManagedEnvironment.Tests.ps1 | 25 + ...ppsApiManagedEnvironmentsStorage.Tests.ps1 | 25 + ...ainerAppsApiContainerAppRevision.Tests.ps1 | 25 + ...ectedEnvironmentNameAvailability.Tests.ps1 | 33 + ...AppsApiNamespaceNameAvailability.Tests.ps1 | 33 + ...te-AzContainerAppsApiCertificate.Tests.ps1 | 25 + ...ConnectedEnvironmentsCertificate.Tests.ps1 | 25 + ...e-AzContainerAppsApiContainerApp.Tests.ps1 | 25 + ...ntainerAppsApiManagedCertificate.Tests.ps1 | 25 + ...ntainerAppsApiManagedEnvironment.Tests.ps1 | 25 + swaggerci/app/test/loadEnv.ps1 | 21 + swaggerci/app/test/utils.ps1 | 31 + .../app/utils/Unprotect-SecureString.ps1 | 16 + 1419 files changed, 286186 insertions(+) create mode 100644 swaggerci/app/.gitattributes create mode 100644 swaggerci/app/.gitignore create mode 100644 swaggerci/app/Az.ContainerAppsApi.csproj create mode 100644 swaggerci/app/Az.ContainerAppsApi.format.ps1xml create mode 100644 swaggerci/app/Az.ContainerAppsApi.nuspec create mode 100644 swaggerci/app/Az.ContainerAppsApi.psd1 create mode 100644 swaggerci/app/Az.ContainerAppsApi.psm1 create mode 100644 swaggerci/app/MSSharedLibKey.snk create mode 100644 swaggerci/app/README.md create mode 100644 swaggerci/app/build-module.ps1 create mode 100644 swaggerci/app/check-dependencies.ps1 create mode 100644 swaggerci/app/create-model-cmdlets.ps1 create mode 100644 swaggerci/app/custom/Az.ContainerAppsApi.custom.psm1 create mode 100644 swaggerci/app/custom/README.md create mode 100644 swaggerci/app/docs/Az.ContainerAppsApi.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiAvailableWorkloadProfile.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiBillingMeter.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiCertificate.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironment.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentsStorage.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiContainerApp.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiContainerAppAuthConfig.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiContainerAppAuthToken.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiContainerAppDiagnosticDetector.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiContainerAppDiagnosticRevision.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiContainerAppDiagnosticRoot.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiContainerAppRevision.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiContainerAppRevisionReplica.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiContainerAppSecret.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiContainerAppSourceControl.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiContainerAppsAuthConfig.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiContainerAppsSourceControl.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiDaprComponent.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiDaprComponentSecret.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiManagedCertificate.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironment.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentAuthToken.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.md create mode 100644 swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentsStorage.md create mode 100644 swaggerci/app/docs/Initialize-AzContainerAppsApiContainerAppRevision.md create mode 100644 swaggerci/app/docs/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.md create mode 100644 swaggerci/app/docs/New-AzContainerAppsApiCertificate.md create mode 100644 swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironment.md create mode 100644 swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironmentCertificate.md create mode 100644 swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.md create mode 100644 swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironmentStorage.md create mode 100644 swaggerci/app/docs/New-AzContainerAppsApiContainerApp.md create mode 100644 swaggerci/app/docs/New-AzContainerAppsApiContainerAppAuthConfig.md create mode 100644 swaggerci/app/docs/New-AzContainerAppsApiContainerAppSourceControl.md create mode 100644 swaggerci/app/docs/New-AzContainerAppsApiDaprComponent.md create mode 100644 swaggerci/app/docs/New-AzContainerAppsApiManagedCertificate.md create mode 100644 swaggerci/app/docs/New-AzContainerAppsApiManagedEnvironment.md create mode 100644 swaggerci/app/docs/New-AzContainerAppsApiManagedEnvironmentStorage.md create mode 100644 swaggerci/app/docs/README.md create mode 100644 swaggerci/app/docs/Remove-AzContainerAppsApiCertificate.md create mode 100644 swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironment.md create mode 100644 swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.md create mode 100644 swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md create mode 100644 swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.md create mode 100644 swaggerci/app/docs/Remove-AzContainerAppsApiContainerApp.md create mode 100644 swaggerci/app/docs/Remove-AzContainerAppsApiContainerAppsAuthConfig.md create mode 100644 swaggerci/app/docs/Remove-AzContainerAppsApiContainerAppsSourceControl.md create mode 100644 swaggerci/app/docs/Remove-AzContainerAppsApiDaprComponent.md create mode 100644 swaggerci/app/docs/Remove-AzContainerAppsApiManagedCertificate.md create mode 100644 swaggerci/app/docs/Remove-AzContainerAppsApiManagedEnvironment.md create mode 100644 swaggerci/app/docs/Remove-AzContainerAppsApiManagedEnvironmentsStorage.md create mode 100644 swaggerci/app/docs/Restart-AzContainerAppsApiContainerAppRevision.md create mode 100644 swaggerci/app/docs/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.md create mode 100644 swaggerci/app/docs/Test-AzContainerAppsApiNamespaceNameAvailability.md create mode 100644 swaggerci/app/docs/Update-AzContainerAppsApiCertificate.md create mode 100644 swaggerci/app/docs/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.md create mode 100644 swaggerci/app/docs/Update-AzContainerAppsApiContainerApp.md create mode 100644 swaggerci/app/docs/Update-AzContainerAppsApiManagedCertificate.md create mode 100644 swaggerci/app/docs/Update-AzContainerAppsApiManagedEnvironment.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiAvailableWorkloadProfile.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiBillingMeter.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiCertificate.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironment.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentsStorage.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiContainerApp.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiContainerAppAuthConfig.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiContainerAppAuthToken.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiContainerAppDiagnosticDetector.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiContainerAppDiagnosticRevision.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiContainerAppDiagnosticRoot.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiContainerAppRevision.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiContainerAppRevisionReplica.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiContainerAppSecret.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiContainerAppSourceControl.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiContainerAppsAuthConfig.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiContainerAppsSourceControl.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiDaprComponent.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiDaprComponentSecret.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiManagedCertificate.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironment.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentAuthToken.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.md create mode 100644 swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentsStorage.md create mode 100644 swaggerci/app/examples/Initialize-AzContainerAppsApiContainerAppRevision.md create mode 100644 swaggerci/app/examples/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.md create mode 100644 swaggerci/app/examples/New-AzContainerAppsApiCertificate.md create mode 100644 swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironment.md create mode 100644 swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironmentCertificate.md create mode 100644 swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.md create mode 100644 swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironmentStorage.md create mode 100644 swaggerci/app/examples/New-AzContainerAppsApiContainerApp.md create mode 100644 swaggerci/app/examples/New-AzContainerAppsApiContainerAppAuthConfig.md create mode 100644 swaggerci/app/examples/New-AzContainerAppsApiContainerAppSourceControl.md create mode 100644 swaggerci/app/examples/New-AzContainerAppsApiDaprComponent.md create mode 100644 swaggerci/app/examples/New-AzContainerAppsApiManagedCertificate.md create mode 100644 swaggerci/app/examples/New-AzContainerAppsApiManagedEnvironment.md create mode 100644 swaggerci/app/examples/New-AzContainerAppsApiManagedEnvironmentStorage.md create mode 100644 swaggerci/app/examples/Remove-AzContainerAppsApiCertificate.md create mode 100644 swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironment.md create mode 100644 swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.md create mode 100644 swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md create mode 100644 swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.md create mode 100644 swaggerci/app/examples/Remove-AzContainerAppsApiContainerApp.md create mode 100644 swaggerci/app/examples/Remove-AzContainerAppsApiContainerAppsAuthConfig.md create mode 100644 swaggerci/app/examples/Remove-AzContainerAppsApiContainerAppsSourceControl.md create mode 100644 swaggerci/app/examples/Remove-AzContainerAppsApiDaprComponent.md create mode 100644 swaggerci/app/examples/Remove-AzContainerAppsApiManagedCertificate.md create mode 100644 swaggerci/app/examples/Remove-AzContainerAppsApiManagedEnvironment.md create mode 100644 swaggerci/app/examples/Remove-AzContainerAppsApiManagedEnvironmentsStorage.md create mode 100644 swaggerci/app/examples/Restart-AzContainerAppsApiContainerAppRevision.md create mode 100644 swaggerci/app/examples/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.md create mode 100644 swaggerci/app/examples/Test-AzContainerAppsApiNamespaceNameAvailability.md create mode 100644 swaggerci/app/examples/Update-AzContainerAppsApiCertificate.md create mode 100644 swaggerci/app/examples/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.md create mode 100644 swaggerci/app/examples/Update-AzContainerAppsApiContainerApp.md create mode 100644 swaggerci/app/examples/Update-AzContainerAppsApiManagedCertificate.md create mode 100644 swaggerci/app/examples/Update-AzContainerAppsApiManagedEnvironment.md create mode 100644 swaggerci/app/export-surface.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiAvailableWorkloadProfile.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiBillingMeter.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiCertificate.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironment.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentsStorage.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiContainerApp.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiContainerAppAuthConfig.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiContainerAppAuthToken.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiContainerAppDiagnosticDetector.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiContainerAppDiagnosticRevision.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiContainerAppDiagnosticRoot.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiContainerAppRevision.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiContainerAppRevisionReplica.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiContainerAppSecret.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiContainerAppSourceControl.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiContainerAppsAuthConfig.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiContainerAppsSourceControl.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiDaprComponent.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiDaprComponentSecret.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiManagedCertificate.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironment.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentAuthToken.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.ps1 create mode 100644 swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentsStorage.ps1 create mode 100644 swaggerci/app/exports/Initialize-AzContainerAppsApiContainerAppRevision.ps1 create mode 100644 swaggerci/app/exports/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.ps1 create mode 100644 swaggerci/app/exports/New-AzContainerAppsApiCertificate.ps1 create mode 100644 swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironment.ps1 create mode 100644 swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironmentCertificate.ps1 create mode 100644 swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.ps1 create mode 100644 swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironmentStorage.ps1 create mode 100644 swaggerci/app/exports/New-AzContainerAppsApiContainerApp.ps1 create mode 100644 swaggerci/app/exports/New-AzContainerAppsApiContainerAppAuthConfig.ps1 create mode 100644 swaggerci/app/exports/New-AzContainerAppsApiContainerAppSourceControl.ps1 create mode 100644 swaggerci/app/exports/New-AzContainerAppsApiDaprComponent.ps1 create mode 100644 swaggerci/app/exports/New-AzContainerAppsApiManagedCertificate.ps1 create mode 100644 swaggerci/app/exports/New-AzContainerAppsApiManagedEnvironment.ps1 create mode 100644 swaggerci/app/exports/New-AzContainerAppsApiManagedEnvironmentStorage.ps1 create mode 100644 swaggerci/app/exports/ProxyCmdletDefinitions.ps1 create mode 100644 swaggerci/app/exports/README.md create mode 100644 swaggerci/app/exports/Remove-AzContainerAppsApiCertificate.ps1 create mode 100644 swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironment.ps1 create mode 100644 swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.ps1 create mode 100644 swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.ps1 create mode 100644 swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.ps1 create mode 100644 swaggerci/app/exports/Remove-AzContainerAppsApiContainerApp.ps1 create mode 100644 swaggerci/app/exports/Remove-AzContainerAppsApiContainerAppsAuthConfig.ps1 create mode 100644 swaggerci/app/exports/Remove-AzContainerAppsApiContainerAppsSourceControl.ps1 create mode 100644 swaggerci/app/exports/Remove-AzContainerAppsApiDaprComponent.ps1 create mode 100644 swaggerci/app/exports/Remove-AzContainerAppsApiManagedCertificate.ps1 create mode 100644 swaggerci/app/exports/Remove-AzContainerAppsApiManagedEnvironment.ps1 create mode 100644 swaggerci/app/exports/Remove-AzContainerAppsApiManagedEnvironmentsStorage.ps1 create mode 100644 swaggerci/app/exports/Restart-AzContainerAppsApiContainerAppRevision.ps1 create mode 100644 swaggerci/app/exports/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.ps1 create mode 100644 swaggerci/app/exports/Test-AzContainerAppsApiNamespaceNameAvailability.ps1 create mode 100644 swaggerci/app/exports/Update-AzContainerAppsApiCertificate.ps1 create mode 100644 swaggerci/app/exports/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.ps1 create mode 100644 swaggerci/app/exports/Update-AzContainerAppsApiContainerApp.ps1 create mode 100644 swaggerci/app/exports/Update-AzContainerAppsApiManagedCertificate.ps1 create mode 100644 swaggerci/app/exports/Update-AzContainerAppsApiManagedEnvironment.ps1 create mode 100644 swaggerci/app/generate-help.ps1 create mode 100644 swaggerci/app/generated/Module.cs create mode 100644 swaggerci/app/generated/api/ContainerAppsApiClient.cs create mode 100644 swaggerci/app/generated/api/Models/Any.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Any.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Any.cs create mode 100644 swaggerci/app/generated/api/Models/Any.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Apple.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Apple.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Apple.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Apple.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableOperations.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableOperations.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableOperations.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableOperations.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.dictionary.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Container.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Container.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Container.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Container.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.dictionary.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Google.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Google.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Google.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Google.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.dictionary.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.dictionary.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Login.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Login.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Login.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Login.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.dictionary.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OperationDisplay.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OperationDisplay.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OperationDisplay.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/OperationDisplay.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Replica.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Replica.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Replica.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Replica.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Revision.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Revision.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Revision.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Revision.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Scale.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Scale.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Scale.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Scale.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Secret.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Secret.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Secret.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Secret.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.dictionary.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Template.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Template.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Template.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Template.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Volume.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Volume.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Volume.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/Volume.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.cs create mode 100644 swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ErrorDetail.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ErrorDetail.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ErrorDetail.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ErrorDetail.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ErrorResponse.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ErrorResponse.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ErrorResponse.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ErrorResponse.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ProxyResource.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ProxyResource.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ProxyResource.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/ProxyResource.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/Resource.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/Resource.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/Resource.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/Resource.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/SystemData.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/SystemData.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/SystemData.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/SystemData.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/TrackedResource.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/TrackedResource.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/TrackedResource.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/TrackedResource.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.dictionary.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.dictionary.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.json.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.cs create mode 100644 swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.json.cs create mode 100644 swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.PowerShell.cs create mode 100644 swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.cs create mode 100644 swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.json.cs create mode 100644 swaggerci/app/generated/api/Support/AccessMode.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/AccessMode.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/AccessMode.cs create mode 100644 swaggerci/app/generated/api/Support/Action.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/Action.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/Action.cs create mode 100644 swaggerci/app/generated/api/Support/ActiveRevisionsMode.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/ActiveRevisionsMode.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/ActiveRevisionsMode.cs create mode 100644 swaggerci/app/generated/api/Support/AppProtocol.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/AppProtocol.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/AppProtocol.cs create mode 100644 swaggerci/app/generated/api/Support/Applicability.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/Applicability.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/Applicability.cs create mode 100644 swaggerci/app/generated/api/Support/BindingType.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/BindingType.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/BindingType.cs create mode 100644 swaggerci/app/generated/api/Support/Category.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/Category.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/Category.cs create mode 100644 swaggerci/app/generated/api/Support/CertificateProvisioningState.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/CertificateProvisioningState.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/CertificateProvisioningState.cs create mode 100644 swaggerci/app/generated/api/Support/CheckNameAvailabilityReason.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/CheckNameAvailabilityReason.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/CheckNameAvailabilityReason.cs create mode 100644 swaggerci/app/generated/api/Support/ClientCredentialMethod.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/ClientCredentialMethod.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/ClientCredentialMethod.cs create mode 100644 swaggerci/app/generated/api/Support/ConnectedEnvironmentProvisioningState.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/ConnectedEnvironmentProvisioningState.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/ConnectedEnvironmentProvisioningState.cs create mode 100644 swaggerci/app/generated/api/Support/ContainerAppProvisioningState.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/ContainerAppProvisioningState.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/ContainerAppProvisioningState.cs create mode 100644 swaggerci/app/generated/api/Support/CookieExpirationConvention.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/CookieExpirationConvention.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/CookieExpirationConvention.cs create mode 100644 swaggerci/app/generated/api/Support/CreatedByType.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/CreatedByType.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/CreatedByType.cs create mode 100644 swaggerci/app/generated/api/Support/DnsVerificationTestResult.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/DnsVerificationTestResult.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/DnsVerificationTestResult.cs create mode 100644 swaggerci/app/generated/api/Support/EnvironmentProvisioningState.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/EnvironmentProvisioningState.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/EnvironmentProvisioningState.cs create mode 100644 swaggerci/app/generated/api/Support/ExtendedLocationTypes.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/ExtendedLocationTypes.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/ExtendedLocationTypes.cs create mode 100644 swaggerci/app/generated/api/Support/ForwardProxyConvention.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/ForwardProxyConvention.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/ForwardProxyConvention.cs create mode 100644 swaggerci/app/generated/api/Support/IngressTransportMethod.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/IngressTransportMethod.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/IngressTransportMethod.cs create mode 100644 swaggerci/app/generated/api/Support/LogLevel.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/LogLevel.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/LogLevel.cs create mode 100644 swaggerci/app/generated/api/Support/ManagedCertificateDomainControlValidation.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/ManagedCertificateDomainControlValidation.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/ManagedCertificateDomainControlValidation.cs create mode 100644 swaggerci/app/generated/api/Support/ManagedEnvironmentOutBoundType.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/ManagedEnvironmentOutBoundType.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/ManagedEnvironmentOutBoundType.cs create mode 100644 swaggerci/app/generated/api/Support/ManagedServiceIdentityType.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/ManagedServiceIdentityType.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/ManagedServiceIdentityType.cs create mode 100644 swaggerci/app/generated/api/Support/RevisionHealthState.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/RevisionHealthState.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/RevisionHealthState.cs create mode 100644 swaggerci/app/generated/api/Support/RevisionProvisioningState.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/RevisionProvisioningState.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/RevisionProvisioningState.cs create mode 100644 swaggerci/app/generated/api/Support/Scheme.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/Scheme.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/Scheme.cs create mode 100644 swaggerci/app/generated/api/Support/SkuName.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/SkuName.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/SkuName.cs create mode 100644 swaggerci/app/generated/api/Support/SourceControlOperationState.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/SourceControlOperationState.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/SourceControlOperationState.cs create mode 100644 swaggerci/app/generated/api/Support/StorageType.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/StorageType.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/StorageType.cs create mode 100644 swaggerci/app/generated/api/Support/Type.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/Type.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/Type.cs create mode 100644 swaggerci/app/generated/api/Support/UnauthenticatedClientActionV2.Completer.cs create mode 100644 swaggerci/app/generated/api/Support/UnauthenticatedClientActionV2.TypeConverter.cs create mode 100644 swaggerci/app/generated/api/Support/UnauthenticatedClientActionV2.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiAvailableWorkloadProfile_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiAvailableWorkloadProfile_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiBillingMeter_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiBillingMeter_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiCertificate_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiCertificate_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiCertificate_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentDaprComponentSecret_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_List1.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsCertificate_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsCertificate_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsCertificate_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsStorage_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsStorage_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsStorage_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppAuthConfig_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppAuthToken_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppAuthToken_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppCustomHostNameAnalysis_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticDetector_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticDetector_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticDetector_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRevision_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRevision_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRevision_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRoot_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRoot_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevisionReplica_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevisionReplica_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevisionReplica_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevision_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevision_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevision_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppSecret_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppSourceControl_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_List1.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsAuthConfig_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsAuthConfig_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsSourceControl_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsSourceControl_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponentSecret_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponent_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponent_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponent_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedCertificate_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedCertificate_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedCertificate_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentAuthToken_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentAuthToken_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticRoot_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticRoot_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentWorkloadProfileState_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_List1.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentsStorage_Get.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentsStorage_GetViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentsStorage_List.cs create mode 100644 swaggerci/app/generated/cmdlets/GetAzContainerAppsApiOperation_List.cs create mode 100644 swaggerci/app/generated/cmdlets/InitializeAzContainerAppsApiContainerAppRevision_Activate.cs create mode 100644 swaggerci/app/generated/cmdlets/InitializeAzContainerAppsApiContainerAppRevision_ActivateViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/InvokeAzContainerAppsApiDeactivateContainerAppRevision_Deactivate.cs create mode 100644 swaggerci/app/generated/cmdlets/InvokeAzContainerAppsApiDeactivateContainerAppRevision_DeactivateViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/NewAzContainerAppsApiCertificate_CreateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironmentCertificate_CreateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironmentDaprComponent_CreateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironmentStorage_CreateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironment_CreateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/NewAzContainerAppsApiContainerAppAuthConfig_CreateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/NewAzContainerAppsApiContainerAppSourceControl_CreateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/NewAzContainerAppsApiContainerApp_CreateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/NewAzContainerAppsApiDaprComponent_CreateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/NewAzContainerAppsApiManagedCertificate_CreateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/NewAzContainerAppsApiManagedEnvironmentStorage_CreateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/NewAzContainerAppsApiManagedEnvironment_CreateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiCertificate_Delete.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiCertificate_DeleteViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironment_Delete.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironment_DeleteViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsCertificate_Delete.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsCertificate_DeleteViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsDaprComponent_Delete.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsDaprComponent_DeleteViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsStorage_Delete.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsStorage_DeleteViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerApp_Delete.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerApp_DeleteViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsAuthConfig_Delete.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsAuthConfig_DeleteViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsSourceControl_Delete.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsSourceControl_DeleteViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiDaprComponent_Delete.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiDaprComponent_DeleteViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedCertificate_Delete.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedCertificate_DeleteViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironment_Delete.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironment_DeleteViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironmentsStorage_Delete.cs create mode 100644 swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironmentsStorage_DeleteViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/RestartAzContainerAppsApiContainerAppRevision_Restart.cs create mode 100644 swaggerci/app/generated/cmdlets/RestartAzContainerAppsApiContainerAppRevision_RestartViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_Check.cs create mode 100644 swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentityExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_Check.cs create mode 100644 swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_CheckExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_CheckViaIdentity.cs create mode 100644 swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_CheckViaIdentityExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiCertificate_UpdateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiCertificate_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiConnectedEnvironmentsCertificate_UpdateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiConnectedEnvironmentsCertificate_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiContainerApp_UpdateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiContainerApp_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedCertificate_UpdateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedCertificate_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedEnvironment_UpdateExpanded.cs create mode 100644 swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedEnvironment_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Accounts.format.ps1xml create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Accounts.generated.format.ps1xml create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Accounts.types.ps1xml create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Az.Accounts.nuspec create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psd1 create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psm1 create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Azure.Core.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Azure.Identity.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Bcl.AsyncInterfaces.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Identity.Client.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/System.Memory.Data.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/System.Text.Json.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Hyak.Common.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.ApplicationInsights.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.Common.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.ResourceManager.deps.json create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.deps.json create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.deps.json create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authenticators.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Aks.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Authorization.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Compute.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.KeyVault.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Monitor.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Network.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Websites.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll-Help.xml create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.Share.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Storage.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Strategies.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.Azure.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.WindowsAzure.Storage.DataMovement.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.WindowsAzure.Storage.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PostImportScripts/LoadAuthenticators.ps1 create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Core.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Identity.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Azure.PowerShell.Authenticators.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Bcl.AsyncInterfaces.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Identity.Client.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Newtonsoft.Json.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Buffers.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Diagnostics.DiagnosticSource.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Memory.Data.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Memory.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Net.Http.WinHttpHandler.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Numerics.Vectors.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Private.ServiceModel.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Reflection.DispatchProxy.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Security.AccessControl.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Security.Cryptography.Cng.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Security.Permissions.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Security.Principal.Windows.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.ServiceModel.Primitives.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Text.Encodings.Web.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Text.Json.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Threading.Tasks.Extensions.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Xml.ReaderWriter.dll create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/StartupScripts/AzError.ps1 create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/StartupScripts/InitializeAssemblyResolver.ps1 create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/[Content_Types].xml create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/_rels/.rels create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/en-US/about_az.help.txt create mode 100644 swaggerci/app/generated/modules/Az.Accounts/2.7.5/package/services/metadata/core-properties/1aa0749a068a4238881858013f1a5b7f.psmdcp create mode 100644 swaggerci/app/generated/runtime/AsyncCommandRuntime.cs create mode 100644 swaggerci/app/generated/runtime/AsyncJob.cs create mode 100644 swaggerci/app/generated/runtime/AsyncOperationResponse.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportCmdletSurface.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportExampleStub.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportFormatPs1xml.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportHelpMarkdown.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportModelSurface.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportProxyCmdlet.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportPsd1.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportTestStub.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Cmdlets/GetCommonParameter.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Cmdlets/GetModuleGuid.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Cmdlets/GetScriptCmdlet.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/CollectionExtensions.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/MarkdownRenderer.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Models/PsFormatTypes.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Models/PsHelpMarkdownOutputs.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Models/PsHelpTypes.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Models/PsMarkdownTypes.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Models/PsProxyOutputs.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/Models/PsProxyTypes.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/PsAttributes.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/PsExtensions.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/PsHelpers.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/StringExtensions.cs create mode 100644 swaggerci/app/generated/runtime/BuildTime/XmlExtensions.cs create mode 100644 swaggerci/app/generated/runtime/CmdInfoHandler.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/ConversionException.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/IJsonConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/BinaryConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/BooleanConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/DateTimeConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/DateTimeOffsetConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/DecimalConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/DoubleConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/EnumConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/GuidConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/HashSet'1Converter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/Int16Converter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/Int32Converter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/Int64Converter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/JsonArrayConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/JsonObjectConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/SingleConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/StringConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/TimeSpanConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/UInt16Converter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/UInt32Converter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/UInt64Converter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/Instances/UriConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/JsonConverter.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/JsonConverterAttribute.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/JsonConverterFactory.cs create mode 100644 swaggerci/app/generated/runtime/Conversions/StringLikeConverter.cs create mode 100644 swaggerci/app/generated/runtime/Customizations/IJsonSerializable.cs create mode 100644 swaggerci/app/generated/runtime/Customizations/JsonArray.cs create mode 100644 swaggerci/app/generated/runtime/Customizations/JsonBoolean.cs create mode 100644 swaggerci/app/generated/runtime/Customizations/JsonNode.cs create mode 100644 swaggerci/app/generated/runtime/Customizations/JsonNumber.cs create mode 100644 swaggerci/app/generated/runtime/Customizations/JsonObject.cs create mode 100644 swaggerci/app/generated/runtime/Customizations/JsonString.cs create mode 100644 swaggerci/app/generated/runtime/Customizations/XNodeArray.cs create mode 100644 swaggerci/app/generated/runtime/Debugging.cs create mode 100644 swaggerci/app/generated/runtime/DictionaryExtensions.cs create mode 100644 swaggerci/app/generated/runtime/EventData.cs create mode 100644 swaggerci/app/generated/runtime/EventDataExtensions.cs create mode 100644 swaggerci/app/generated/runtime/EventListener.cs create mode 100644 swaggerci/app/generated/runtime/Events.cs create mode 100644 swaggerci/app/generated/runtime/EventsExtensions.cs create mode 100644 swaggerci/app/generated/runtime/Extensions.cs create mode 100644 swaggerci/app/generated/runtime/Helpers/Extensions/StringBuilderExtensions.cs create mode 100644 swaggerci/app/generated/runtime/Helpers/Extensions/TypeExtensions.cs create mode 100644 swaggerci/app/generated/runtime/Helpers/Seperator.cs create mode 100644 swaggerci/app/generated/runtime/Helpers/TypeDetails.cs create mode 100644 swaggerci/app/generated/runtime/Helpers/XHelper.cs create mode 100644 swaggerci/app/generated/runtime/HttpPipeline.cs create mode 100644 swaggerci/app/generated/runtime/HttpPipelineMocking.ps1 create mode 100644 swaggerci/app/generated/runtime/IAssociativeArray.cs create mode 100644 swaggerci/app/generated/runtime/IHeaderSerializable.cs create mode 100644 swaggerci/app/generated/runtime/ISendAsync.cs create mode 100644 swaggerci/app/generated/runtime/InfoAttribute.cs create mode 100644 swaggerci/app/generated/runtime/Iso/IsoDate.cs create mode 100644 swaggerci/app/generated/runtime/JsonType.cs create mode 100644 swaggerci/app/generated/runtime/MessageAttribute.cs create mode 100644 swaggerci/app/generated/runtime/MessageAttributeHelper.cs create mode 100644 swaggerci/app/generated/runtime/Method.cs create mode 100644 swaggerci/app/generated/runtime/Models/JsonMember.cs create mode 100644 swaggerci/app/generated/runtime/Models/JsonModel.cs create mode 100644 swaggerci/app/generated/runtime/Models/JsonModelCache.cs create mode 100644 swaggerci/app/generated/runtime/Nodes/Collections/JsonArray.cs create mode 100644 swaggerci/app/generated/runtime/Nodes/Collections/XImmutableArray.cs create mode 100644 swaggerci/app/generated/runtime/Nodes/Collections/XList.cs create mode 100644 swaggerci/app/generated/runtime/Nodes/Collections/XNodeArray.cs create mode 100644 swaggerci/app/generated/runtime/Nodes/Collections/XSet.cs create mode 100644 swaggerci/app/generated/runtime/Nodes/JsonBoolean.cs create mode 100644 swaggerci/app/generated/runtime/Nodes/JsonDate.cs create mode 100644 swaggerci/app/generated/runtime/Nodes/JsonNode.cs create mode 100644 swaggerci/app/generated/runtime/Nodes/JsonNumber.cs create mode 100644 swaggerci/app/generated/runtime/Nodes/JsonObject.cs create mode 100644 swaggerci/app/generated/runtime/Nodes/JsonString.cs create mode 100644 swaggerci/app/generated/runtime/Nodes/XBinary.cs create mode 100644 swaggerci/app/generated/runtime/Nodes/XNull.cs create mode 100644 swaggerci/app/generated/runtime/Parser/Exceptions/ParseException.cs create mode 100644 swaggerci/app/generated/runtime/Parser/JsonParser.cs create mode 100644 swaggerci/app/generated/runtime/Parser/JsonToken.cs create mode 100644 swaggerci/app/generated/runtime/Parser/JsonTokenizer.cs create mode 100644 swaggerci/app/generated/runtime/Parser/Location.cs create mode 100644 swaggerci/app/generated/runtime/Parser/Readers/SourceReader.cs create mode 100644 swaggerci/app/generated/runtime/Parser/TokenReader.cs create mode 100644 swaggerci/app/generated/runtime/PipelineMocking.cs create mode 100644 swaggerci/app/generated/runtime/Properties/Resources.Designer.cs create mode 100644 swaggerci/app/generated/runtime/Properties/Resources.resx create mode 100644 swaggerci/app/generated/runtime/Response.cs create mode 100644 swaggerci/app/generated/runtime/Serialization/JsonSerializer.cs create mode 100644 swaggerci/app/generated/runtime/Serialization/PropertyTransformation.cs create mode 100644 swaggerci/app/generated/runtime/Serialization/SerializationOptions.cs create mode 100644 swaggerci/app/generated/runtime/SerializationMode.cs create mode 100644 swaggerci/app/generated/runtime/TypeConverterExtensions.cs create mode 100644 swaggerci/app/generated/runtime/UndeclaredResponseException.cs create mode 100644 swaggerci/app/generated/runtime/Writers/JsonWriter.cs create mode 100644 swaggerci/app/generated/runtime/delegates.cs create mode 100644 swaggerci/app/how-to.md create mode 100644 swaggerci/app/internal/Az.ContainerAppsApi.internal.psm1 create mode 100644 swaggerci/app/internal/Get-AzContainerAppsApiOperation.ps1 create mode 100644 swaggerci/app/internal/ProxyCmdletDefinitions.ps1 create mode 100644 swaggerci/app/internal/README.md create mode 100644 swaggerci/app/license.txt create mode 100644 swaggerci/app/pack-module.ps1 create mode 100644 swaggerci/app/readme.md create mode 100644 swaggerci/app/resources/README.md create mode 100644 swaggerci/app/run-module.ps1 create mode 100644 swaggerci/app/test-module.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiAvailableWorkloadProfile.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiBillingMeter.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiCertificate.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironment.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentsStorage.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiContainerApp.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiContainerAppAuthConfig.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiContainerAppAuthToken.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiContainerAppDiagnosticDetector.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiContainerAppDiagnosticRevision.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiContainerAppDiagnosticRoot.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiContainerAppRevision.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiContainerAppRevisionReplica.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiContainerAppSecret.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiContainerAppSourceControl.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiContainerAppsAuthConfig.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiContainerAppsSourceControl.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiDaprComponent.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiDaprComponentSecret.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiManagedCertificate.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironment.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentAuthToken.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.Tests.ps1 create mode 100644 swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentsStorage.Tests.ps1 create mode 100644 swaggerci/app/test/Initialize-AzContainerAppsApiContainerAppRevision.Tests.ps1 create mode 100644 swaggerci/app/test/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.Tests.ps1 create mode 100644 swaggerci/app/test/New-AzContainerAppsApiCertificate.Tests.ps1 create mode 100644 swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironment.Tests.ps1 create mode 100644 swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironmentCertificate.Tests.ps1 create mode 100644 swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.Tests.ps1 create mode 100644 swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironmentStorage.Tests.ps1 create mode 100644 swaggerci/app/test/New-AzContainerAppsApiContainerApp.Tests.ps1 create mode 100644 swaggerci/app/test/New-AzContainerAppsApiContainerAppAuthConfig.Tests.ps1 create mode 100644 swaggerci/app/test/New-AzContainerAppsApiContainerAppSourceControl.Tests.ps1 create mode 100644 swaggerci/app/test/New-AzContainerAppsApiDaprComponent.Tests.ps1 create mode 100644 swaggerci/app/test/New-AzContainerAppsApiManagedCertificate.Tests.ps1 create mode 100644 swaggerci/app/test/New-AzContainerAppsApiManagedEnvironment.Tests.ps1 create mode 100644 swaggerci/app/test/New-AzContainerAppsApiManagedEnvironmentStorage.Tests.ps1 create mode 100644 swaggerci/app/test/README.md create mode 100644 swaggerci/app/test/Remove-AzContainerAppsApiCertificate.Tests.ps1 create mode 100644 swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironment.Tests.ps1 create mode 100644 swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.Tests.ps1 create mode 100644 swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.Tests.ps1 create mode 100644 swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.Tests.ps1 create mode 100644 swaggerci/app/test/Remove-AzContainerAppsApiContainerApp.Tests.ps1 create mode 100644 swaggerci/app/test/Remove-AzContainerAppsApiContainerAppsAuthConfig.Tests.ps1 create mode 100644 swaggerci/app/test/Remove-AzContainerAppsApiContainerAppsSourceControl.Tests.ps1 create mode 100644 swaggerci/app/test/Remove-AzContainerAppsApiDaprComponent.Tests.ps1 create mode 100644 swaggerci/app/test/Remove-AzContainerAppsApiManagedCertificate.Tests.ps1 create mode 100644 swaggerci/app/test/Remove-AzContainerAppsApiManagedEnvironment.Tests.ps1 create mode 100644 swaggerci/app/test/Remove-AzContainerAppsApiManagedEnvironmentsStorage.Tests.ps1 create mode 100644 swaggerci/app/test/Restart-AzContainerAppsApiContainerAppRevision.Tests.ps1 create mode 100644 swaggerci/app/test/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.Tests.ps1 create mode 100644 swaggerci/app/test/Test-AzContainerAppsApiNamespaceNameAvailability.Tests.ps1 create mode 100644 swaggerci/app/test/Update-AzContainerAppsApiCertificate.Tests.ps1 create mode 100644 swaggerci/app/test/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.Tests.ps1 create mode 100644 swaggerci/app/test/Update-AzContainerAppsApiContainerApp.Tests.ps1 create mode 100644 swaggerci/app/test/Update-AzContainerAppsApiManagedCertificate.Tests.ps1 create mode 100644 swaggerci/app/test/Update-AzContainerAppsApiManagedEnvironment.Tests.ps1 create mode 100644 swaggerci/app/test/loadEnv.ps1 create mode 100644 swaggerci/app/test/utils.ps1 create mode 100644 swaggerci/app/utils/Unprotect-SecureString.ps1 diff --git a/swaggerci/app/.gitattributes b/swaggerci/app/.gitattributes new file mode 100644 index 000000000000..2125666142eb --- /dev/null +++ b/swaggerci/app/.gitattributes @@ -0,0 +1 @@ +* text=auto \ No newline at end of file diff --git a/swaggerci/app/.gitignore b/swaggerci/app/.gitignore new file mode 100644 index 000000000000..7998f37e1e47 --- /dev/null +++ b/swaggerci/app/.gitignore @@ -0,0 +1,5 @@ +bin +obj +.vs +tools +test/*-TestResults.xml \ No newline at end of file diff --git a/swaggerci/app/Az.ContainerAppsApi.csproj b/swaggerci/app/Az.ContainerAppsApi.csproj new file mode 100644 index 000000000000..8c0185a67186 --- /dev/null +++ b/swaggerci/app/Az.ContainerAppsApi.csproj @@ -0,0 +1,44 @@ + + + + 0.1.0 + 7.1 + netstandard2.0 + Library + Az.ContainerAppsApi.private + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi + true + false + ./bin + $(OutputPath) + Az.ContainerAppsApi.nuspec + true + + + 1998, 1591 + true + + + + + false + TRACE;DEBUG;NETSTANDARD + + + + true + true + MSSharedLibKey.snk + TRACE;RELEASE;NETSTANDARD;SIGN + + + + + + + + + $(DefaultItemExcludes);resources/** + + + \ No newline at end of file diff --git a/swaggerci/app/Az.ContainerAppsApi.format.ps1xml b/swaggerci/app/Az.ContainerAppsApi.format.ps1xml new file mode 100644 index 000000000000..45a1afe58ba5 --- /dev/null +++ b/swaggerci/app/Az.ContainerAppsApi.format.ps1xml @@ -0,0 +1,5899 @@ + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.ContainerAppsApiIdentity + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.ContainerAppsApiIdentity + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AuthConfigName + + + CertificateName + + + ComponentName + + + ConnectedEnvironmentName + + + ContainerAppName + + + DetectorName + + + EnvironmentName + + + Id + + + Location + + + ManagedCertificateName + + + ReplicaName + + + ResourceGroupName + + + RevisionName + + + SourceControlName + + + StorageName + + + SubscriptionId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.CheckNameAvailabilityRequest + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.CheckNameAvailabilityRequest + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.CheckNameAvailabilityResponse + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.CheckNameAvailabilityResponse + + + + + + + + + + + + + + + + + + Message + + + NameAvailable + + + Reason + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorAdditionalInfo + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorAdditionalInfo + + + + + + + + + + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorDetail + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorDetail + + + + + + + + + + + + + + + + + + Code + + + Message + + + Target + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ManagedServiceIdentity + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ManagedServiceIdentity + + + + + + + + + + + + + + + + + + PrincipalId + + + TenantId + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ProxyResource + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ProxyResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemData + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemData + + + + + + + + + + + + + + + + + + + + + + + + + + + CreatedAt + + + CreatedBy + + + CreatedByType + + + LastModifiedAt + + + LastModifiedBy + + + LastModifiedByType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + Location + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTags + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.UserAssignedIdentity + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.UserAssignedIdentity + + + + + + + + + + + + + + + ClientId + + + PrincipalId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedAudiencesValidation + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedAudiencesValidation + + + + + + + + + + + + AllowedAudience + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedPrincipals + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedPrincipals + + + + + + + + + + + + + + + Group + + + Identity + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Apple + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Apple + + + + + + + + + + + + Enabled + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppleRegistration + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppleRegistration + + + + + + + + + + + + + + + ClientId + + + ClientSecretSettingName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppLogsConfiguration + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppLogsConfiguration + + + + + + + + + + + + Destination + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppRegistration + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppRegistration + + + + + + + + + + + + + + + AppId + + + AppSecretSettingName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfig + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfigCollection + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfigCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthPlatform + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthPlatform + + + + + + + + + + + + + + + Enabled + + + RuntimeVersion + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableOperations + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableOperations + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfile + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfile + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + Location + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfileProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfileProperties + + + + + + + + + + + + + + + + + + + + + + + + Applicability + + + BillingMeterCategory + + + Core + + + DisplayName + + + MemoryGiB + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfilesCollection + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfilesCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectory + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectory + + + + + + + + + + + + + + + Enabled + + + IsAutoProvisioned + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryLogin + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryLogin + + + + + + + + + + + + + + + DisableWwwAuthenticate + + + LoginParameter + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryRegistration + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryRegistration + + + + + + + + + + + + + + + + + + + + + + + + + + + ClientId + + + ClientSecretCertificateIssuer + + + ClientSecretCertificateSubjectAlternativeName + + + ClientSecretCertificateThumbprint + + + ClientSecretSettingName + + + OpenIdIssuer + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryValidation + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryValidation + + + + + + + + + + + + AllowedAudience + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureCredentials + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureCredentials + + + + + + + + + + + + + + + + + + + + + ClientId + + + ClientSecret + + + SubscriptionId + + + TenantId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFileProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFileProperties + + + + + + + + + + + + + + + + + + + + + AccessMode + + + AccountKey + + + AccountName + + + ShareName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebApps + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebApps + + + + + + + + + + + + Enabled + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebAppsRegistration + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebAppsRegistration + + + + + + + + + + + + ClientId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainer + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainer + + + + + + + + + + + + + + + + + + + + + Arg + + + Command + + + Image + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BillingMeter + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BillingMeter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + Location + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BillingMeterProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BillingMeterProperties + + + + + + + + + + + + + + + + + + Category + + + DisplayName + + + MeterType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Certificate + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Certificate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificateCollection + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificateCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificatePatchTags + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificatePatchTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificateProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificateProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ExpirationDate + + + IssueDate + + + Issuer + + + Password + + + ProvisioningState + + + PublicKeyHash + + + SubjectAlternativeName + + + SubjectName + + + Thumbprint + + + Valid + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistration + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistration + + + + + + + + + + + + + + + ClientId + + + ClientSecretSettingName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Configuration + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Configuration + + + + + + + + + + + + + + + ActiveRevisionsMode + + + MaxInactiveRevision + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironment + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentCollection + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentProperties + + + + + + + + + + + + + + + + + + + + + + + + DaprAiConnectionString + + + DefaultDomain + + + DeploymentError + + + ProvisioningState + + + StaticIP + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentStorage + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentStorage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Container + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Container + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Arg + + + Command + + + Image + + + Name + + + ResourceCpu + + + ResourceEphemeralStorage + + + ResourceMemory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerApp + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerApp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppAuthToken + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppAuthToken + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppAuthTokenProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppAuthTokenProperties + + + + + + + + + + + + + + + Expire + + + Token + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppCollection + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbe + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbe + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FailureThreshold + + + InitialDelaySecond + + + PeriodSecond + + + SuccessThreshold + + + TerminationGracePeriodSecond + + + TimeoutSecond + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeHttpGet + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeHttpGet + + + + + + + + + + + + + + + + + + + + + Host + + + Path + + + Port + + + Scheme + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeHttpGetHttpHeadersItem + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeHttpGetHttpHeadersItem + + + + + + + + + + + + + + + Name + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeTcpSocket + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeTcpSocket + + + + + + + + + + + + + + + Host + + + Port + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CustomDomainVerificationId + + + EnvironmentId + + + EventStreamEndpoint + + + LatestRevisionFqdn + + + LatestRevisionName + + + ManagedEnvironmentId + + + OutboundIPAddress + + + ProvisioningState + + + WorkloadProfileType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppSecret + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppSecret + + + + + + + + + + + + + + + Name + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerResources + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerResources + + + + + + + + + + + + + + + + + + Cpu + + + EphemeralStorage + + + Memory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CookieExpiration + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CookieExpiration + + + + + + + + + + + + + + + Convention + + + TimeToExpiration + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomain + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomain + + + + + + + + + + + + + + + + + + BindingType + + + CertificateId + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfiguration + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfiguration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CertificatePassword + + + CertificateValue + + + CustomDomainVerificationId + + + DnsSuffix + + + ExpirationDate + + + SubjectName + + + Thumbprint + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResult + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResult + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARecord + + + AlternateCNameRecord + + + AlternateTxtRecord + + + CNameRecord + + + ConflictWithEnvironmentCustomDomain + + + ConflictingContainerAppResourceId + + + CustomDomainVerificationTest + + + HasConflictOnManagedEnvironment + + + HostName + + + IsHostnameAlreadyVerified + + + TxtRecord + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo + + + + + + + + + + + + + + + + + + Code + + + Message + + + Target + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem + + + + + + + + + + + + + + + + + + Code + + + Message + + + Target + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomOpenIdConnectProvider + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomOpenIdConnectProvider + + + + + + + + + + + + Enabled + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRule + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRule + + + + + + + + + + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRuleMetadata + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRuleMetadata + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Dapr + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Dapr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AppId + + + AppPort + + + AppProtocol + + + EnableApiLogging + + + Enabled + + + HttpMaxRequestSize + + + HttpReadBufferSize + + + LogLevel + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponent + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponentProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponentProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + ComponentType + + + IgnoreError + + + InitTimeout + + + Scope + + + SecretStoreComponent + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponentsCollection + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponentsCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprMetadata + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprMetadata + + + + + + + + + + + + + + + + + + Name + + + SecretRef + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprSecret + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprSecret + + + + + + + + + + + + + + + Name + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultAuthorizationPolicy + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultAuthorizationPolicy + + + + + + + + + + + + AllowedApplication + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponseError + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponseError + + + + + + + + + + + + + + + + + + + + + Code + + + Innererror + + + Message + + + Target + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponseErrorDetailsItem + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponseErrorDetailsItem + + + + + + + + + + + + + + + + + + Code + + + Message + + + Target + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadata + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadata + + + + + + + + + + + + ProviderName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadataPropertyBagItem + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadataPropertyBagItem + + + + + + + + + + + + + + + Name + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataTableResponseColumn + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataTableResponseColumn + + + + + + + + + + + + + + + + + + ColumnName + + + ColumnType + + + DataType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataTableResponseObject + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataTableResponseObject + + + + + + + + + + + + TableName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticRendering + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticRendering + + + + + + + + + + + + + + + + + + + + + Description + + + IsVisible + + + Title + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Diagnostics + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Diagnostics + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsCollection + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsDefinition + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsDefinition + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AnalysisType + + + Author + + + Category + + + Description + + + Id + + + Name + + + Score + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsStatus + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsStatus + + + + + + + + + + + + + + + Message + + + StatusId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticSupportTopic + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticSupportTopic + + + + + + + + + + + + + + + Id + + + PesId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentAuthToken + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentAuthToken + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentAuthTokenProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentAuthTokenProperties + + + + + + + + + + + + + + + Expire + + + Token + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentSkuProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentSkuProperties + + + + + + + + + + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentVar + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentVar + + + + + + + + + + + + + + + + + + Name + + + SecretRef + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ExtendedLocation + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ExtendedLocation + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Facebook + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Facebook + + + + + + + + + + + + + + + Enabled + + + GraphApiVersion + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ForwardProxy + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ForwardProxy + + + + + + + + + + + + + + + + + + Convention + + + CustomHostHeaderName + + + CustomProtoHeaderName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GitHub + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GitHub + + + + + + + + + + + + Enabled + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GithubActionConfiguration + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GithubActionConfiguration + + + + + + + + + + + + + + + + + + + + + + + + + + + ContextPath + + + Image + + + OS + + + PublishType + + + RuntimeStack + + + RuntimeVersion + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GlobalValidation + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GlobalValidation + + + + + + + + + + + + + + + + + + ExcludedPath + + + RedirectToProvider + + + UnauthenticatedClientAction + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Google + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Google + + + + + + + + + + + + Enabled + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpScaleRuleMetadata + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpScaleRuleMetadata + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettings + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettings + + + + + + + + + + + + RequireHttps + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsRoutes + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsRoutes + + + + + + + + + + + + ApiPrefix + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Ingress + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Ingress + + + + + + + + + + + + + + + + + + + + + + + + + + + AllowInsecure + + + ExposedPort + + + External + + + Fqdn + + + TargetPort + + + Transport + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.InitContainer + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.InitContainer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Arg + + + Command + + + Image + + + Name + + + ResourceCpu + + + ResourceEphemeralStorage + + + ResourceMemory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IPSecurityRestrictionRule + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IPSecurityRestrictionRule + + + + + + + + + + + + + + + + + + + + + Action + + + Description + + + IPAddressRange + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.JwtClaimChecks + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.JwtClaimChecks + + + + + + + + + + + + + + + AllowedClientApplication + + + AllowedGroup + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LogAnalyticsConfiguration + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LogAnalyticsConfiguration + + + + + + + + + + + + + + + CustomerId + + + SharedKey + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Login + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Login + + + + + + + + + + + + + + + AllowedExternalRedirectUrl + + + PreserveUrlFragmentsForLogin + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginRoutes + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginRoutes + + + + + + + + + + + + LogoutEndpoint + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopes + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopes + + + + + + + + + + + + Scope + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificate + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificateCollection + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificateCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificatePatchTags + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificatePatchTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificateProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificateProperties + + + + + + + + + + + + + + + + + + + + + + + + DomainControlValidation + + + Error + + + ProvisioningState + + + SubjectName + + + ValidationToken + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironment + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentOutboundSettings + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentOutboundSettings + + + + + + + + + + + + + + + OutBoundType + + + VirtualNetworkApplianceIP + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DaprAiConnectionString + + + DaprAiInstrumentationKey + + + DefaultDomain + + + DeploymentError + + + EventStreamEndpoint + + + ProvisioningState + + + StaticIP + + + ZoneRedundant + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentsCollection + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentsCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentStorage + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentStorage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Nonce + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Nonce + + + + + + + + + + + + + + + ExpirationInterval + + + ValidateNonce + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectClientCredential + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectClientCredential + + + + + + + + + + + + + + + ClientSecretSettingName + + + Method + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectConfig + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectConfig + + + + + + + + + + + + + + + + + + + + + + + + AuthorizationEndpoint + + + CertificationUri + + + Issuer + + + TokenEndpoint + + + WellKnownOpenIdConfiguration + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectLogin + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectLogin + + + + + + + + + + + + + + + NameClaimType + + + Scope + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectRegistration + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectRegistration + + + + + + + + + + + + ClientId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OperationDetail + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OperationDetail + + + + + + + + + + + + + + + + + + IsDataAction + + + Name + + + Origin + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OperationDisplay + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OperationDisplay + + + + + + + + + + + + + + + + + + + + + Description + + + Operation + + + Provider + + + Resource + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.QueueScaleRule + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.QueueScaleRule + + + + + + + + + + + + + + + QueueLength + + + QueueName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryCredentials + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryCredentials + + + + + + + + + + + + + + + + + + + + + Identity + + + PasswordSecretRef + + + Server + + + Username + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryInfo + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryInfo + + + + + + + + + + + + + + + + + + RegistryPassword + + + RegistryUrl + + + RegistryUserName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Replica + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Replica + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaContainer + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaContainer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ContainerId + + + ExecEndpoint + + + LogStreamEndpoint + + + Name + + + Ready + + + RestartCount + + + Started + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaProperties + + + + + + + + + + + + CreatedTime + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Revision + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Revision + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RevisionCollection + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RevisionCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RevisionProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RevisionProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Active + + + CreatedTime + + + Fqdn + + + HealthState + + + LastActiveTime + + + ProvisioningError + + + ProvisioningState + + + Replica + + + TrafficWeight + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Scale + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Scale + + + + + + + + + + + + + + + MaxReplica + + + MinReplica + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRule + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRule + + + + + + + + + + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuth + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuth + + + + + + + + + + + + + + + SecretRef + + + TriggerParameter + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Secret + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Secret + + + + + + + + + + + + + + + Name + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControl + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControlCollection + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControlCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControlProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControlProperties + + + + + + + + + + + + + + + + + + Branch + + + OperationState + + + RepoUrl + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TcpScaleRuleMetadata + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TcpScaleRuleMetadata + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Template + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Template + + + + + + + + + + + + RevisionSuffix + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TrafficWeight + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TrafficWeight + + + + + + + + + + + + + + + + + + + + + Label + + + LatestRevision + + + RevisionName + + + Weight + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Twitter + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Twitter + + + + + + + + + + + + Enabled + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TwitterRegistration + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TwitterRegistration + + + + + + + + + + + + + + + ConsumerKey + + + ConsumerSecretSettingName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VnetConfiguration + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VnetConfiguration + + + + + + + + + + + + + + + + + + + + + + + + + + + DockerBridgeCidr + + + InfrastructureSubnetId + + + Internal + + + PlatformReservedCidr + + + PlatformReservedDnsIP + + + RuntimeSubnetId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Volume + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Volume + + + + + + + + + + + + + + + + + + Name + + + StorageName + + + StorageType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeMount + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeMount + + + + + + + + + + + + + + + MountPath + + + VolumeName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfile + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfile + + + + + + + + + + + + + + + + + + MaximumCount + + + MinimumCount + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStates + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStates + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStatesCollection + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStatesCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStatesProperties + + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStatesProperties + + + + + + + + + + + + + + + + + + CurrentCount + + + MaximumCount + + + MinimumCount + + + + + + + + \ No newline at end of file diff --git a/swaggerci/app/Az.ContainerAppsApi.nuspec b/swaggerci/app/Az.ContainerAppsApi.nuspec new file mode 100644 index 000000000000..c397e23e3dc1 --- /dev/null +++ b/swaggerci/app/Az.ContainerAppsApi.nuspec @@ -0,0 +1,32 @@ + + + + Az.ContainerAppsApi + 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/app/Az.ContainerAppsApi.psd1 b/swaggerci/app/Az.ContainerAppsApi.psd1 new file mode 100644 index 000000000000..232ff06bf288 --- /dev/null +++ b/swaggerci/app/Az.ContainerAppsApi.psd1 @@ -0,0 +1,24 @@ +@{ + GUID = 'a49f5811-7924-4032-8080-aea7c3efc345' + RootModule = './Az.ContainerAppsApi.psm1' + ModuleVersion = '0.1.0' + CompatiblePSEditions = 'Core', 'Desktop' + Author = 'Microsoft Corporation' + CompanyName = 'Microsoft Corporation' + Copyright = 'Microsoft Corporation. All rights reserved.' + Description = 'Microsoft Azure PowerShell: ContainerAppsApi cmdlets' + PowerShellVersion = '5.1' + DotNetFrameworkVersion = '4.7.2' + RequiredAssemblies = './bin/Az.ContainerAppsApi.private.dll' + FormatsToProcess = './Az.ContainerAppsApi.format.ps1xml' + FunctionsToExport = 'Get-AzContainerAppsApiAvailableWorkloadProfile', 'Get-AzContainerAppsApiBillingMeter', 'Get-AzContainerAppsApiCertificate', 'Get-AzContainerAppsApiConnectedEnvironment', 'Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret', 'Get-AzContainerAppsApiConnectedEnvironmentsCertificate', 'Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent', 'Get-AzContainerAppsApiConnectedEnvironmentsStorage', 'Get-AzContainerAppsApiContainerApp', 'Get-AzContainerAppsApiContainerAppAuthConfig', 'Get-AzContainerAppsApiContainerAppAuthToken', 'Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis', 'Get-AzContainerAppsApiContainerAppDiagnosticDetector', 'Get-AzContainerAppsApiContainerAppDiagnosticRevision', 'Get-AzContainerAppsApiContainerAppDiagnosticRoot', 'Get-AzContainerAppsApiContainerAppRevision', 'Get-AzContainerAppsApiContainerAppRevisionReplica', 'Get-AzContainerAppsApiContainerAppsAuthConfig', 'Get-AzContainerAppsApiContainerAppSecret', 'Get-AzContainerAppsApiContainerAppSourceControl', 'Get-AzContainerAppsApiContainerAppsSourceControl', 'Get-AzContainerAppsApiDaprComponent', 'Get-AzContainerAppsApiDaprComponentSecret', 'Get-AzContainerAppsApiManagedCertificate', 'Get-AzContainerAppsApiManagedEnvironment', 'Get-AzContainerAppsApiManagedEnvironmentAuthToken', 'Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector', 'Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot', 'Get-AzContainerAppsApiManagedEnvironmentsStorage', 'Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState', 'Initialize-AzContainerAppsApiContainerAppRevision', 'Invoke-AzContainerAppsApiDeactivateContainerAppRevision', 'New-AzContainerAppsApiCertificate', 'New-AzContainerAppsApiConnectedEnvironment', 'New-AzContainerAppsApiConnectedEnvironmentCertificate', 'New-AzContainerAppsApiConnectedEnvironmentDaprComponent', 'New-AzContainerAppsApiConnectedEnvironmentStorage', 'New-AzContainerAppsApiContainerApp', 'New-AzContainerAppsApiContainerAppAuthConfig', 'New-AzContainerAppsApiContainerAppSourceControl', 'New-AzContainerAppsApiDaprComponent', 'New-AzContainerAppsApiManagedCertificate', 'New-AzContainerAppsApiManagedEnvironment', 'New-AzContainerAppsApiManagedEnvironmentStorage', 'Remove-AzContainerAppsApiCertificate', 'Remove-AzContainerAppsApiConnectedEnvironment', 'Remove-AzContainerAppsApiConnectedEnvironmentsCertificate', 'Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent', 'Remove-AzContainerAppsApiConnectedEnvironmentsStorage', 'Remove-AzContainerAppsApiContainerApp', 'Remove-AzContainerAppsApiContainerAppsAuthConfig', 'Remove-AzContainerAppsApiContainerAppsSourceControl', 'Remove-AzContainerAppsApiDaprComponent', 'Remove-AzContainerAppsApiManagedCertificate', 'Remove-AzContainerAppsApiManagedEnvironment', 'Remove-AzContainerAppsApiManagedEnvironmentsStorage', 'Restart-AzContainerAppsApiContainerAppRevision', 'Test-AzContainerAppsApiConnectedEnvironmentNameAvailability', 'Test-AzContainerAppsApiNamespaceNameAvailability', 'Update-AzContainerAppsApiCertificate', 'Update-AzContainerAppsApiConnectedEnvironmentsCertificate', 'Update-AzContainerAppsApiContainerApp', 'Update-AzContainerAppsApiManagedCertificate', 'Update-AzContainerAppsApiManagedEnvironment', '*' + AliasesToExport = '*' + PrivateData = @{ + PSData = @{ + Tags = 'Azure', 'ResourceManager', 'ARM', 'PSModule', 'ContainerAppsApi' + LicenseUri = 'https://aka.ms/azps-license' + ProjectUri = 'https://github.com/Azure/azure-powershell' + ReleaseNotes = '' + } + } +} diff --git a/swaggerci/app/Az.ContainerAppsApi.psm1 b/swaggerci/app/Az.ContainerAppsApi.psm1 new file mode 100644 index 000000000000..89d150e887e3 --- /dev/null +++ b/swaggerci/app/Az.ContainerAppsApi.psm1 @@ -0,0 +1,107 @@ +# region Generated + # ---------------------------------------------------------------------------------- + # Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. + # ---------------------------------------------------------------------------------- + # Load required Az.Accounts module + $accountsName = 'Az.Accounts' + $accountsModule = Get-Module -Name $accountsName + if(-not $accountsModule) { + $localAccountsPath = Join-Path $PSScriptRoot 'generated/modules' + if(Test-Path -Path $localAccountsPath) { + $localAccounts = Get-ChildItem -Path $localAccountsPath -Recurse -Include 'Az.Accounts.psd1' | Select-Object -Last 1 + if($localAccounts) { + $accountsModule = Import-Module -Name ($localAccounts.FullName) -Scope Global -PassThru + } + } + if(-not $accountsModule) { + $hasAdequateVersion = (Get-Module -Name $accountsName -ListAvailable | Where-Object { $_.Version -ge [System.Version]'2.7.5' } | Measure-Object).Count -gt 0 + if($hasAdequateVersion) { + $accountsModule = Import-Module -Name $accountsName -MinimumVersion 2.7.5 -Scope Global -PassThru + } + } + } + + if(-not $accountsModule) { + Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. For installation instructions, please see: https://docs.microsoft.com/powershell/azure/install-az-ps" -ErrorAction Stop + } elseif (($accountsModule.Version -lt [System.Version]'2.7.5') -and (-not $localAccounts)) { + Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. An earlier version of Az.Accounts is imported in the current PowerShell session. If you are running test, please try to add the switch '-RegenerateSupportModule' when executing 'test-module.ps1'. Otherwise please open a new PowerShell session and import this module again.`nAdditionally, this error could indicate that multiple incompatible versions of Azure PowerShell modules are installed on your system. For troubleshooting information, please see: https://aka.ms/azps-version-error" -ErrorAction Stop + } + Write-Information "Loaded Module '$($accountsModule.Name)'" + + # Load the private module dll + $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Az.ContainerAppsApi.private.dll') + + # Get the private module's instance + $instance = [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module]::Instance + + # Ask for the shared functionality table + $VTable = Register-AzModule + + # Tweaks the pipeline on module load + $instance.OnModuleLoad = $VTable.OnModuleLoad + + # Following two delegates are added for telemetry + $instance.GetTelemetryId = $VTable.GetTelemetryId + $instance.Telemetry = $VTable.Telemetry + + + # Tweaks the pipeline per call + $instance.OnNewRequest = $VTable.OnNewRequest + + # Gets shared parameter values + $instance.GetParameterValue = $VTable.GetParameterValue + + # Allows shared module to listen to events from this module + $instance.EventListener = $VTable.EventListener + + # Gets shared argument completers + $instance.ArgumentCompleter = $VTable.ArgumentCompleter + + # The name of the currently selected Azure profile + $instance.ProfileName = $VTable.ProfileName + + + # Load the custom module + $customModulePath = Join-Path $PSScriptRoot './custom/Az.ContainerAppsApi.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/app/MSSharedLibKey.snk b/swaggerci/app/MSSharedLibKey.snk new file mode 100644 index 0000000000000000000000000000000000000000..695f1b38774e839e5b90059bfb7f32df1dff4223 GIT binary patch literal 160 zcmV;R0AK$ABme*efB*oL000060ssI2Bme+XQ$aBR1ONa50098C{E+7Ye`kjtcRG*W zi8#m|)B?I?xgZ^2Sw5D;l4TxtPwG;3)3^j?qDHjEteSTF{rM+4WI`v zCD?tsZ^;k+S&r1&HRMb=j738S=;J$tCKNrc$@P|lZ +# Az.ContainerAppsApi +This directory contains the PowerShell module for the ContainerAppsApi service. + +--- +## Status +[![Az.ContainerAppsApi](https://img.shields.io/powershellgallery/v/Az.ContainerAppsApi.svg?style=flat-square&label=Az.ContainerAppsApi "Az.ContainerAppsApi")](https://www.powershellgallery.com/packages/Az.ContainerAppsApi/) + +## Info +- Modifiable: yes +- Generated: all +- Committed: yes +- Packaged: yes + +--- +## Detail +This module was primarily generated via [AutoRest](https://github.com/Azure/autorest) using the [PowerShell](https://github.com/Azure/autorest.powershell) extension. + +## Module Requirements +- [Az.Accounts module](https://www.powershellgallery.com/packages/Az.Accounts/), version 2.7.5 or greater + +## Authentication +AutoRest does not generate authentication code for the module. Authentication is handled via Az.Accounts by altering the HTTP payload before it is sent. + +## Development +For information on how to develop for `Az.ContainerAppsApi`, see [how-to.md](how-to.md). + diff --git a/swaggerci/app/build-module.ps1 b/swaggerci/app/build-module.ps1 new file mode 100644 index 000000000000..780fe12af96c --- /dev/null +++ b/swaggerci/app/build-module.ps1 @@ -0,0 +1,153 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$Run, [switch]$Test, [switch]$Docs, [switch]$Pack, [switch]$Code, [switch]$Release, [switch]$Debugger, [switch]$NoDocs) +$ErrorActionPreference = 'Stop' + +if($PSEdition -ne 'Core') { + Write-Error 'This script requires PowerShell Core to execute. [Note] Generated cmdlets will work in both PowerShell Core or Windows PowerShell.' +} + +if(-not $Isolated -and -not $Debugger) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + $pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path + & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + + if($LastExitCode -ne 0) { + # Build failed. Don't attempt to run the module. + return + } + + if($Test) { + . (Join-Path $PSScriptRoot 'test-module.ps1') + if($LastExitCode -ne 0) { + # Tests failed. Don't attempt to run the module. + return + } + } + + if($Docs) { + . (Join-Path $PSScriptRoot 'generate-help.ps1') + if($LastExitCode -ne 0) { + # Docs generation failed. Don't attempt to run the module. + return + } + } + + if($Pack) { + . (Join-Path $PSScriptRoot 'pack-module.ps1') + if($LastExitCode -ne 0) { + # Packing failed. Don't attempt to run the module. + return + } + } + + $runModulePath = Join-Path $PSScriptRoot 'run-module.ps1' + if($Code) { + . $runModulePath -Code + } elseif($Run) { + . $runModulePath + } else { + Write-Host -ForegroundColor Cyan "To run this module in an isolated PowerShell session, run the 'run-module.ps1' script or provide the '-Run' parameter to this script." + } + return +} + +$binFolder = Join-Path $PSScriptRoot 'bin' +$objFolder = Join-Path $PSScriptRoot 'obj' + +if(-not $Debugger) { + Write-Host -ForegroundColor Green 'Cleaning build folders...' + $null = Remove-Item -Recurse -ErrorAction SilentlyContinue -Path $binFolder, $objFolder + + if((Test-Path $binFolder) -or (Test-Path $objFolder)) { + Write-Host -ForegroundColor Cyan 'Did you forget to exit your isolated module session before rebuilding?' + Write-Error 'Unable to clean ''bin'' or ''obj'' folder. A process may have an open handle.' + } + + Write-Host -ForegroundColor Green 'Compiling module...' + $buildConfig = 'Debug' + if($Release) { + $buildConfig = 'Release' + } + dotnet publish $PSScriptRoot --verbosity quiet --configuration $buildConfig /nologo + if($LastExitCode -ne 0) { + Write-Error 'Compilation failed.' + } + + $null = Remove-Item -Recurse -ErrorAction SilentlyContinue -Path (Join-Path $binFolder 'Debug'), (Join-Path $binFolder 'Release') +} + +$dll = Join-Path $PSScriptRoot 'bin/Az.ContainerAppsApi.private.dll' +if(-not (Test-Path $dll)) { + Write-Error "Unable to find output assembly in '$binFolder'." +} + +# Load DLL to use build-time cmdlets +$null = Import-Module -Name $dll + +$modulePaths = $dll +$customPsm1 = Join-Path $PSScriptRoot 'custom/Az.ContainerAppsApi.custom.psm1' +if(Test-Path $customPsm1) { + $modulePaths = @($dll, $customPsm1) +} + +$exportsFolder = Join-Path $PSScriptRoot 'exports' +if(Test-Path $exportsFolder) { + $null = Get-ChildItem -Path $exportsFolder -Recurse -Exclude 'README.md' | Remove-Item -Recurse -ErrorAction SilentlyContinue +} +$null = New-Item -ItemType Directory -Force -Path $exportsFolder + +$internalFolder = Join-Path $PSScriptRoot 'internal' +if(Test-Path $internalFolder) { + $null = Get-ChildItem -Path $internalFolder -Recurse -Exclude '*.psm1', 'README.md' | Remove-Item -Recurse -ErrorAction SilentlyContinue +} +$null = New-Item -ItemType Directory -Force -Path $internalFolder + +$psd1 = Join-Path $PSScriptRoot './Az.ContainerAppsApi.psd1' +$guid = Get-ModuleGuid -Psd1Path $psd1 +$moduleName = 'Az.ContainerAppsApi' +$examplesFolder = Join-Path $PSScriptRoot 'examples' +$null = New-Item -ItemType Directory -Force -Path $examplesFolder + +Write-Host -ForegroundColor Green 'Creating cmdlets for specified models...' +$modelCmdlets = @() +if ($modelCmdlets.Count -gt 0) { + . (Join-Path $PSScriptRoot 'create-model-cmdlets.ps1') + CreateModelCmdlet($modelCmdlets) +} + +if($NoDocs) { + Write-Host -ForegroundColor Green 'Creating exports...' + Export-ProxyCmdlet -ModuleName $moduleName -ModulePath $modulePaths -ExportsFolder $exportsFolder -InternalFolder $internalFolder -ExcludeDocs -ExamplesFolder $examplesFolder +} else { + Write-Host -ForegroundColor Green 'Creating exports and docs...' + $moduleDescription = 'Microsoft Azure PowerShell: ContainerAppsApi cmdlets' + $docsFolder = Join-Path $PSScriptRoot 'docs' + if(Test-Path $docsFolder) { + $null = Get-ChildItem -Path $docsFolder -Recurse -Exclude 'README.md' | Remove-Item -Recurse -ErrorAction SilentlyContinue + } + $null = New-Item -ItemType Directory -Force -Path $docsFolder + Export-ProxyCmdlet -ModuleName $moduleName -ModulePath $modulePaths -ExportsFolder $exportsFolder -InternalFolder $internalFolder -ModuleDescription $moduleDescription -DocsFolder $docsFolder -ExamplesFolder $examplesFolder -ModuleGuid $guid +} + +Write-Host -ForegroundColor Green 'Creating format.ps1xml...' +$formatPs1xml = Join-Path $PSScriptRoot './Az.ContainerAppsApi.format.ps1xml' +Export-FormatPs1xml -FilePath $formatPs1xml + +Write-Host -ForegroundColor Green 'Creating psd1...' +$customFolder = Join-Path $PSScriptRoot 'custom' +Export-Psd1 -ExportsFolder $exportsFolder -CustomFolder $customFolder -Psd1Path $psd1 -ModuleGuid $guid + +Write-Host -ForegroundColor Green 'Creating test stubs...' +$testFolder = Join-Path $PSScriptRoot 'test' +$null = New-Item -ItemType Directory -Force -Path $testFolder +Export-TestStub -ModuleName $moduleName -ExportsFolder $exportsFolder -OutputFolder $testFolder + +Write-Host -ForegroundColor Green 'Creating example stubs...' +Export-ExampleStub -ExportsFolder $exportsFolder -OutputFolder $examplesFolder + +Write-Host -ForegroundColor Green '-------------Done-------------' diff --git a/swaggerci/app/check-dependencies.ps1 b/swaggerci/app/check-dependencies.ps1 new file mode 100644 index 000000000000..ec3055201a71 --- /dev/null +++ b/swaggerci/app/check-dependencies.ps1 @@ -0,0 +1,57 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$Accounts, [switch]$Pester, [switch]$Resources) +$ErrorActionPreference = 'Stop' + +if(-not $Isolated) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + $pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path + & "$pwsh" -NoExit -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +function DownloadModule ([bool]$predicate, [string]$path, [string]$moduleName, [string]$versionMinimum, [string]$requiredVersion) { + if($predicate) { + $module = Get-Module -ListAvailable -Name $moduleName + if((-not $module) -or ($versionMinimum -and ($module | ForEach-Object { $_.Version } | Where-Object { $_ -ge [System.Version]$versionMinimum } | Measure-Object).Count -eq 0) -or ($requiredVersion -and ($module | ForEach-Object { $_.Version } | Where-Object { $_ -eq [System.Version]$requiredVersion } | Measure-Object).Count -eq 0)) { + $null = New-Item -ItemType Directory -Force -Path $path + Write-Host -ForegroundColor Green "Installing local $moduleName module into '$path'..." + if ($requiredVersion) { + Find-Module -Name $moduleName -RequiredVersion $requiredVersion -Repository PSGallery | Save-Module -Path $path + }elseif($versionMinimum) { + Find-Module -Name $moduleName -MinimumVersion $versionMinimum -Repository PSGallery | Save-Module -Path $path + } else { + Find-Module -Name $moduleName -Repository PSGallery | Save-Module -Path $path + } + } + } +} + +$ProgressPreference = 'SilentlyContinue' +$all = (@($Accounts.IsPresent, $Pester.IsPresent) | Select-Object -Unique | Measure-Object).Count -eq 1 + +$localModulesPath = Join-Path $PSScriptRoot 'generated/modules' +if(Test-Path -Path $localModulesPath) { + $env:PSModulePath = "$localModulesPath$([IO.Path]::PathSeparator)$env:PSModulePath" +} + +DownloadModule -predicate ($all -or $Accounts) -path $localModulesPath -moduleName 'Az.Accounts' -versionMinimum '2.7.5' +DownloadModule -predicate ($all -or $Pester) -path $localModulesPath -moduleName 'Pester' -requiredVersion '4.10.1' + +$tools = Join-Path $PSScriptRoot 'tools' +$resourceDir = Join-Path $tools 'Resources' +$resourceModule = Join-Path $HOME '.PSSharedModules\Resources\Az.Resources.TestSupport.psm1' + +if ($Resources.IsPresent -and ((-not (Test-Path -Path $resourceModule)) -or $RegenerateSupportModule.IsPresent)) { + Write-Host -ForegroundColor Green "Building local Resource module used for test..." + Set-Location $resourceDir + $null = autorest .\README.md --use:@autorest/powershell@3.0.414 --output-folder=$HOME/.PSSharedModules/Resources + $null = Copy-Item custom/* $HOME/.PSSharedModules/Resources/custom/ + Set-Location $HOME/.PSSharedModules/Resources + $null = .\build-module.ps1 + Set-Location $PSScriptRoot +} diff --git a/swaggerci/app/create-model-cmdlets.ps1 b/swaggerci/app/create-model-cmdlets.ps1 new file mode 100644 index 000000000000..5d3d9cc5c89f --- /dev/null +++ b/swaggerci/app/create-model-cmdlets.ps1 @@ -0,0 +1,163 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +function CreateModelCmdlet { + + param([string[]]$Models) + + if ($Models.Count -eq 0) + { + return + } + + $ModelCsPath = Join-Path (Join-Path $PSScriptRoot 'generated/api') 'Models' + $ModuleName = 'ContainerAppsApi' + $OutputDir = Join-Path $PSScriptRoot 'custom/autogen-model-cmdlets' + $null = New-Item -ItemType Directory -Force -Path $OutputDir + + $CsFiles = Get-ChildItem -Path $ModelCsPath -Recurse -Filter *.cs + $Content = '' + $null = $CsFiles | ForEach-Object -Process { if ($_.Name.Split('.').count -eq 2 ) + { $Content += get-content $_.fullname -raw + } } + + $Tree = [Microsoft.CodeAnalysis.CSharp.SyntaxFactory]::ParseCompilationUnit($Content) + $Nodes = $Tree.ChildNodes().ChildNodes() + foreach ($Model in $Models) + { + $InterfaceNode = $Nodes | Where-Object { ($_.Keyword.value -eq 'interface') -and ($_.Identifier.value -eq "I$Model") } + if ($InterfaceNode.count -eq 0) { + continue + } + # through a queue, we iterate all the parent models. + $Queue = @($InterfaceNode) + $visited = @("I$Model") + $AllInterfaceNodes = @() + while ($Queue.count -ne 0) + { + $AllInterfaceNodes += $Queue[0] + # Baselist contains the direct parent models. + foreach ($parent in $Queue[0].BaseList.Types) + { + if (($parent.Type.Right.Identifier.Value -ne 'IJsonSerializable') -and (-not $visited.Contains($parent.Type.Right.Identifier.Value))) + { + $Queue = [Array]$Queue + ($Nodes | Where-Object { ($_.Keyword.value -eq 'interface') -and ($_.Identifier.value -eq $parent.Type.Right.Identifier.Value) }) + $visited = [Array]$visited + $parent.Type.Right.Identifier.Value + } + } + $first, $Queue = $Queue + } + + $Namespace = $InterfaceNode.Parent.Name + $ObjectType = $Model + $ObjectTypeWithNamespace = "${Namespace}.${ObjectType}" + # remove duplicated module name + if ($ObjectType.StartsWith($ModuleName)) { + $ModulePrefix = '' + } else { + $ModulePrefix = $ModuleName + } + $OutputPath = Join-Path -ChildPath "New-Az${ModulePrefix}${ObjectType}Object.ps1" -Path $OutputDir + + $ParameterDefineScriptList = New-Object System.Collections.Generic.List[string] + $ParameterAssignScriptList = New-Object System.Collections.Generic.List[string] + foreach ($Node in $AllInterfaceNodes) + { + foreach ($Member in $Node.Members) + { + $Arguments = $Member.AttributeLists.Attributes.ArgumentList.Arguments + $Required = $false + $Description = "" + $Readonly = $False + foreach ($Argument in $Arguments) + { + if ($Argument.NameEquals.Name.Identifier.Value -eq "Required") + { + $Required = $Argument.Expression.Token.Value + } + if ($Argument.NameEquals.Name.Identifier.Value -eq "Description") + { + $Description = $Argument.Expression.Token.Value.Trim('.').replace('"', '`"') + } + if ($Argument.NameEquals.Name.Identifier.Value -eq "Readonly") + { + $Readonly = $Argument.Expression.Token.Value + } + } + if ($Readonly) + { + continue + } + $Identifier = $Member.Identifier.Value + $Type = $Member.Type.ToString().replace('?', '').Split("::")[-1] + $ParameterDefinePropertyList = New-Object System.Collections.Generic.List[string] + if ($Required) + { + $ParameterDefinePropertyList.Add("Mandatory") + } + if ($Description -ne "") + { + $ParameterDefinePropertyList.Add("HelpMessage=`"${Description}.`"") + } + $ParameterDefineProperty = [System.String]::Join(", ", $ParameterDefinePropertyList) + # check whether completer is needed + $completer = ''; + if($Type.Split('.').Split('.')[-2] -eq 'Support') { + # If Type is an array, need to strip [] + $strippedType = $Type.Replace('[]', '') + $completer += "`n [ArgumentCompleter([${strippedType}])]" + } + $ParameterDefineScript = " + [Parameter($ParameterDefineProperty)]${completer} + [${Type}] + `$${Identifier}" + $ParameterDefineScriptList.Add($ParameterDefineScript) + $ParameterAssignScriptList.Add(" + if (`$PSBoundParameters.ContainsKey('${Identifier}')) { + `$Object.${Identifier} = `$${Identifier} + }") + } + } + $ParameterDefineScript = $ParameterDefineScriptList | Join-String -Separator "," + $ParameterAssignScript = $ParameterAssignScriptList | Join-String -Separator "" + + $Script = " +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create an in-memory object for ${ObjectType}. +.Description +Create an in-memory object for ${ObjectType}. + +.Outputs +${ObjectTypeWithNamespace} +.Link +https://docs.microsoft.com/en-us/powershell/module/az.${ModuleName}/new-Az${ModulePrefix}${ObjectType}Object +#> +function New-Az${ModulePrefix}${ObjectType}Object { + [OutputType('${ObjectTypeWithNamespace}')] + [CmdletBinding(PositionalBinding=`$false)] + Param( +${ParameterDefineScript} + ) + + process { + `$Object = [${ObjectTypeWithNamespace}]::New() +${ParameterAssignScript} + return `$Object + } +} +" + Set-Content -Path $OutputPath -Value $Script + } +} diff --git a/swaggerci/app/custom/Az.ContainerAppsApi.custom.psm1 b/swaggerci/app/custom/Az.ContainerAppsApi.custom.psm1 new file mode 100644 index 000000000000..ffe7ab6ec5cf --- /dev/null +++ b/swaggerci/app/custom/Az.ContainerAppsApi.custom.psm1 @@ -0,0 +1,17 @@ +# region Generated + # Load the private module dll + $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '../bin/Az.ContainerAppsApi.private.dll') + + # Load the internal module + $internalModulePath = Join-Path $PSScriptRoot '../internal/Az.ContainerAppsApi.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/app/custom/README.md b/swaggerci/app/custom/README.md new file mode 100644 index 000000000000..9373d6c606f7 --- /dev/null +++ b/swaggerci/app/custom/README.md @@ -0,0 +1,41 @@ +# Custom +This directory contains custom implementation for non-generated cmdlets for the `Az.ContainerAppsApi` 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.ContainerAppsApi.custom.psm1`. This file should not be modified. + +## Info +- Modifiable: yes +- Generated: partial +- Committed: yes +- Packaged: yes + +## Details +For `Az.ContainerAppsApi` 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.ContainerAppsApi.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.ContainerAppsApi.custom.psm1`. Then, during the build process, this module is loaded and processed in the same manner as the C# cmdlets. The fundamental difference is the script cmdlets use the `ParameterSetName` attribute and C# cmdlets do not. To create a script cmdlet variant of a generated cmdlet, simply decorate all parameters in the script with the new `ParameterSetName` in the `Parameter` attribute. This will appropriately treat each parameter set as a separate variant when processed to be exported during the build. + +## Purpose +This allows the modules to have cmdlets that were not defined in the REST specification. It also allows combining logic using generated cmdlets. This is a level of customization beyond what can be done using the [readme configuration options](https://github.com/Azure/autorest/blob/master/docs/powershell/options.md) that are currently available. These custom cmdlets are then referenced by the cmdlets created at build-time in the `../exports` folder. + +## Usage +The easiest way currently to start developing custom cmdlets is to copy an existing cmdlet. For C# cmdlets, copy one from the `generated/cmdlets` folder. For script cmdlets, build the project using `build-module.ps1` and copy one of the scripts from the `../exports` folder. After that, if you want to add new parameter sets, follow the guidelines in the `Details` section above. For implementing a new cmdlets, at minimum, please keep these parameters: +- Break +- DefaultProfile +- HttpPipelineAppend +- HttpPipelinePrepend +- Proxy +- ProxyCredential +- ProxyUseDefaultCredentials + +These provide functionality to our HTTP pipeline and other useful features. In script, you can forward these parameters using `$PSBoundParameters` to the other cmdlets you're calling within `Az.ContainerAppsApi`. 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.ContainerAppsApi.DescriptionAttribute` + - Used in C# cmdlets to provide a high-level description of the cmdlet. This is propagated to reference documentation via [help comments](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_comment_based_help) in the exported scripts. +- `Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.DoNotExportAttribute` + - Used in C# and script cmdlets to suppress creating an exported cmdlet at build-time. These cmdlets will *not be exposed* by `Az.ContainerAppsApi`. +- `Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.InternalExportAttribute` + - Used in C# cmdlets to route exported cmdlets to the `../internal`, which are *not exposed* by `Az.ContainerAppsApi`. For more information, see [README.md](../internal/README.md) in the `../internal` folder. +- `Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/docs/Az.ContainerAppsApi.md b/swaggerci/app/docs/Az.ContainerAppsApi.md new file mode 100644 index 000000000000..c9f44c3aae05 --- /dev/null +++ b/swaggerci/app/docs/Az.ContainerAppsApi.md @@ -0,0 +1,208 @@ +--- +Module Name: Az.ContainerAppsApi +Module Guid: a49f5811-7924-4032-8080-aea7c3efc345 +Download Help Link: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi +Help Version: 1.0.0.0 +Locale: en-US +--- + +# Az.ContainerAppsApi Module +## Description +Microsoft Azure PowerShell: ContainerAppsApi cmdlets + +## Az.ContainerAppsApi Cmdlets +### [Get-AzContainerAppsApiAvailableWorkloadProfile](Get-AzContainerAppsApiAvailableWorkloadProfile.md) +Get all available workload profiles for a location. + +### [Get-AzContainerAppsApiBillingMeter](Get-AzContainerAppsApiBillingMeter.md) +Get all billingMeters for a location. + +### [Get-AzContainerAppsApiCertificate](Get-AzContainerAppsApiCertificate.md) +Get the specified Certificate. + +### [Get-AzContainerAppsApiConnectedEnvironment](Get-AzContainerAppsApiConnectedEnvironment.md) +Get the properties of an connectedEnvironment. + +### [Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret](Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.md) +List secrets for a dapr component + +### [Get-AzContainerAppsApiConnectedEnvironmentsCertificate](Get-AzContainerAppsApiConnectedEnvironmentsCertificate.md) +Get the specified Certificate. + +### [Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent](Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md) +Get a dapr component. + +### [Get-AzContainerAppsApiConnectedEnvironmentsStorage](Get-AzContainerAppsApiConnectedEnvironmentsStorage.md) +Get storage for a connectedEnvironment. + +### [Get-AzContainerAppsApiContainerApp](Get-AzContainerAppsApiContainerApp.md) +Get the properties of a Container App. + +### [Get-AzContainerAppsApiContainerAppAuthConfig](Get-AzContainerAppsApiContainerAppAuthConfig.md) +Get the Container App AuthConfigs in a given resource group. + +### [Get-AzContainerAppsApiContainerAppAuthToken](Get-AzContainerAppsApiContainerAppAuthToken.md) +Get auth token for a container app + +### [Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis](Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.md) +Analyzes a custom hostname for a Container App + +### [Get-AzContainerAppsApiContainerAppDiagnosticDetector](Get-AzContainerAppsApiContainerAppDiagnosticDetector.md) +Get a diagnostics result of a Container App. + +### [Get-AzContainerAppsApiContainerAppDiagnosticRevision](Get-AzContainerAppsApiContainerAppDiagnosticRevision.md) +Get a revision of a Container App. + +### [Get-AzContainerAppsApiContainerAppDiagnosticRoot](Get-AzContainerAppsApiContainerAppDiagnosticRoot.md) +Get the properties of a Container App. + +### [Get-AzContainerAppsApiContainerAppRevision](Get-AzContainerAppsApiContainerAppRevision.md) +Get a revision of a Container App. + +### [Get-AzContainerAppsApiContainerAppRevisionReplica](Get-AzContainerAppsApiContainerAppRevisionReplica.md) +Get a replica for a Container App Revision. + +### [Get-AzContainerAppsApiContainerAppsAuthConfig](Get-AzContainerAppsApiContainerAppsAuthConfig.md) +Get a AuthConfig of a Container App. + +### [Get-AzContainerAppsApiContainerAppSecret](Get-AzContainerAppsApiContainerAppSecret.md) +List secrets for a container app + +### [Get-AzContainerAppsApiContainerAppSourceControl](Get-AzContainerAppsApiContainerAppSourceControl.md) +Get the Container App SourceControls in a given resource group. + +### [Get-AzContainerAppsApiContainerAppsSourceControl](Get-AzContainerAppsApiContainerAppsSourceControl.md) +Get a SourceControl of a Container App. + +### [Get-AzContainerAppsApiDaprComponent](Get-AzContainerAppsApiDaprComponent.md) +Get a dapr component. + +### [Get-AzContainerAppsApiDaprComponentSecret](Get-AzContainerAppsApiDaprComponentSecret.md) +List secrets for a dapr component + +### [Get-AzContainerAppsApiManagedCertificate](Get-AzContainerAppsApiManagedCertificate.md) +Get the specified Managed Certificate. + +### [Get-AzContainerAppsApiManagedEnvironment](Get-AzContainerAppsApiManagedEnvironment.md) +Get the properties of a Managed Environment used to host container apps. + +### [Get-AzContainerAppsApiManagedEnvironmentAuthToken](Get-AzContainerAppsApiManagedEnvironmentAuthToken.md) +Checks if resource name is available. + +### [Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector](Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.md) +Get the diagnostics data for a Managed Environment used to host container apps. + +### [Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot](Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.md) +Get the properties of a Managed Environment used to host container apps. + +### [Get-AzContainerAppsApiManagedEnvironmentsStorage](Get-AzContainerAppsApiManagedEnvironmentsStorage.md) +Get storage for a managedEnvironment. + +### [Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState](Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.md) +Get all workload Profile States for a Premium Managed Environment. + +### [Initialize-AzContainerAppsApiContainerAppRevision](Initialize-AzContainerAppsApiContainerAppRevision.md) +Activates a revision for a Container App + +### [Invoke-AzContainerAppsApiDeactivateContainerAppRevision](Invoke-AzContainerAppsApiDeactivateContainerAppRevision.md) +Deactivates a revision for a Container App + +### [New-AzContainerAppsApiCertificate](New-AzContainerAppsApiCertificate.md) +Create or Update a Certificate. + +### [New-AzContainerAppsApiConnectedEnvironment](New-AzContainerAppsApiConnectedEnvironment.md) +Creates or updates an connectedEnvironment. + +### [New-AzContainerAppsApiConnectedEnvironmentCertificate](New-AzContainerAppsApiConnectedEnvironmentCertificate.md) +Create or Update a Certificate. + +### [New-AzContainerAppsApiConnectedEnvironmentDaprComponent](New-AzContainerAppsApiConnectedEnvironmentDaprComponent.md) +Creates or updates a Dapr Component in a connected environment. + +### [New-AzContainerAppsApiConnectedEnvironmentStorage](New-AzContainerAppsApiConnectedEnvironmentStorage.md) +Create or update storage for a connectedEnvironment. + +### [New-AzContainerAppsApiContainerApp](New-AzContainerAppsApiContainerApp.md) +Create or update a Container App. + +### [New-AzContainerAppsApiContainerAppAuthConfig](New-AzContainerAppsApiContainerAppAuthConfig.md) +Create or update the AuthConfig for a Container App. + +### [New-AzContainerAppsApiContainerAppSourceControl](New-AzContainerAppsApiContainerAppSourceControl.md) +Create or update the SourceControl for a Container App. + +### [New-AzContainerAppsApiDaprComponent](New-AzContainerAppsApiDaprComponent.md) +Creates or updates a Dapr Component in a Managed Environment. + +### [New-AzContainerAppsApiManagedCertificate](New-AzContainerAppsApiManagedCertificate.md) +Create or Update a Managed Certificate. + +### [New-AzContainerAppsApiManagedEnvironment](New-AzContainerAppsApiManagedEnvironment.md) +Creates or updates a Managed Environment used to host container apps. + +### [New-AzContainerAppsApiManagedEnvironmentStorage](New-AzContainerAppsApiManagedEnvironmentStorage.md) +Create or update storage for a managedEnvironment. + +### [Remove-AzContainerAppsApiCertificate](Remove-AzContainerAppsApiCertificate.md) +Deletes the specified Certificate. + +### [Remove-AzContainerAppsApiConnectedEnvironment](Remove-AzContainerAppsApiConnectedEnvironment.md) +Delete an connectedEnvironment. + +### [Remove-AzContainerAppsApiConnectedEnvironmentsCertificate](Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.md) +Deletes the specified Certificate. + +### [Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent](Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md) +Delete a Dapr Component from a connected environment. + +### [Remove-AzContainerAppsApiConnectedEnvironmentsStorage](Remove-AzContainerAppsApiConnectedEnvironmentsStorage.md) +Delete storage for a connectedEnvironment. + +### [Remove-AzContainerAppsApiContainerApp](Remove-AzContainerAppsApiContainerApp.md) +Delete a Container App. + +### [Remove-AzContainerAppsApiContainerAppsAuthConfig](Remove-AzContainerAppsApiContainerAppsAuthConfig.md) +Delete a Container App AuthConfig. + +### [Remove-AzContainerAppsApiContainerAppsSourceControl](Remove-AzContainerAppsApiContainerAppsSourceControl.md) +Delete a Container App SourceControl. + +### [Remove-AzContainerAppsApiDaprComponent](Remove-AzContainerAppsApiDaprComponent.md) +Delete a Dapr Component from a Managed Environment. + +### [Remove-AzContainerAppsApiManagedCertificate](Remove-AzContainerAppsApiManagedCertificate.md) +Deletes the specified Managed Certificate. + +### [Remove-AzContainerAppsApiManagedEnvironment](Remove-AzContainerAppsApiManagedEnvironment.md) +Delete a Managed Environment if it does not have any container apps. + +### [Remove-AzContainerAppsApiManagedEnvironmentsStorage](Remove-AzContainerAppsApiManagedEnvironmentsStorage.md) +Delete storage for a managedEnvironment. + +### [Restart-AzContainerAppsApiContainerAppRevision](Restart-AzContainerAppsApiContainerAppRevision.md) +Restarts a revision for a Container App + +### [Test-AzContainerAppsApiConnectedEnvironmentNameAvailability](Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.md) +Checks if resource connectedEnvironmentName is available. + +### [Test-AzContainerAppsApiNamespaceNameAvailability](Test-AzContainerAppsApiNamespaceNameAvailability.md) +Checks if resource name is available. + +### [Update-AzContainerAppsApiCertificate](Update-AzContainerAppsApiCertificate.md) +Patches a certificate. +Currently only patching of tags is supported + +### [Update-AzContainerAppsApiConnectedEnvironmentsCertificate](Update-AzContainerAppsApiConnectedEnvironmentsCertificate.md) +Patches a certificate. +Currently only patching of tags is supported + +### [Update-AzContainerAppsApiContainerApp](Update-AzContainerAppsApiContainerApp.md) +Patches a Container App using JSON Merge Patch + +### [Update-AzContainerAppsApiManagedCertificate](Update-AzContainerAppsApiManagedCertificate.md) +Patches a managed certificate. +Oly patching of tags is supported + +### [Update-AzContainerAppsApiManagedEnvironment](Update-AzContainerAppsApiManagedEnvironment.md) +Patches a Managed Environment using JSON Merge Patch + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiAvailableWorkloadProfile.md b/swaggerci/app/docs/Get-AzContainerAppsApiAvailableWorkloadProfile.md new file mode 100644 index 000000000000..dee6a8948d31 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiAvailableWorkloadProfile.md @@ -0,0 +1,156 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiavailableworkloadprofile +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiAvailableWorkloadProfile + +## SYNOPSIS +Get all available workload profiles for a location. + +## SYNTAX + +### Get (Default) +``` +Get-AzContainerAppsApiAvailableWorkloadProfile -Location [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiAvailableWorkloadProfile -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get all available workload profiles for a location. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Location +The name of Azure region. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiBillingMeter.md b/swaggerci/app/docs/Get-AzContainerAppsApiBillingMeter.md new file mode 100644 index 000000000000..5945863b8ede --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiBillingMeter.md @@ -0,0 +1,156 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapibillingmeter +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiBillingMeter + +## SYNOPSIS +Get all billingMeters for a location. + +## SYNTAX + +### Get (Default) +``` +Get-AzContainerAppsApiBillingMeter -Location [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiBillingMeter -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get all billingMeters for a location. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Location +The name of Azure region. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiCertificate.md b/swaggerci/app/docs/Get-AzContainerAppsApiCertificate.md new file mode 100644 index 000000000000..4b855898dc85 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiCertificate.md @@ -0,0 +1,193 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicertificate +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiCertificate + +## SYNOPSIS +Get the specified Certificate. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiCertificate -EnvironmentName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzContainerAppsApiCertificate -EnvironmentName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiCertificate -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the specified Certificate. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Managed Environment. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the Certificate. + +```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. +The name is case insensitive. + +```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 +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironment.md b/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironment.md new file mode 100644 index 000000000000..81aaf40bdfb8 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironment.md @@ -0,0 +1,184 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironment +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiConnectedEnvironment + +## SYNOPSIS +Get the properties of an connectedEnvironment. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiConnectedEnvironment [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### Get +``` +Get-AzContainerAppsApiConnectedEnvironment -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiConnectedEnvironment -InputObject + [-DefaultProfile ] [] +``` + +### List1 +``` +Get-AzContainerAppsApiConnectedEnvironment -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get the properties of an connectedEnvironment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the connectedEnvironment. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ConnectedEnvironmentName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```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 +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.md b/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.md new file mode 100644 index 000000000000..2dc47a30f87f --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.md @@ -0,0 +1,171 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironmentdaprcomponentsecret +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret + +## SYNOPSIS +List secrets for a dapr component + +## SYNTAX + +``` +Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret -ComponentName + -ConnectedEnvironmentName -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +List secrets for a dapr component + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ComponentName +Name of the Dapr Component. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConnectedEnvironmentName +Name of the connected environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.Api20221101Preview.ISecret + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.md b/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.md new file mode 100644 index 000000000000..450b9e9eb945 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.md @@ -0,0 +1,194 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironmentscertificate +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiConnectedEnvironmentsCertificate + +## SYNOPSIS +Get the specified Certificate. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiConnectedEnvironmentsCertificate -ConnectedEnvironmentName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzContainerAppsApiConnectedEnvironmentsCertificate -CertificateName + -ConnectedEnvironmentName -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiConnectedEnvironmentsCertificate -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get the specified Certificate. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -CertificateName +Name of the Certificate. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConnectedEnvironmentName +Name of the Connected Environment. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```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 +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md b/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md new file mode 100644 index 000000000000..b261e9cf1187 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md @@ -0,0 +1,194 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironmentsdaprcomponent +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent + +## SYNOPSIS +Get a dapr component. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent -ConnectedEnvironmentName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent -ComponentName + -ConnectedEnvironmentName -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a dapr component. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ComponentName +Name of the Dapr Component. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConnectedEnvironmentName +Name of the connected environment. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```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 +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentsStorage.md b/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentsStorage.md new file mode 100644 index 000000000000..05b91996f588 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiConnectedEnvironmentsStorage.md @@ -0,0 +1,194 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironmentsstorage +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiConnectedEnvironmentsStorage + +## SYNOPSIS +Get storage for a connectedEnvironment. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiConnectedEnvironmentsStorage -ConnectedEnvironmentName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzContainerAppsApiConnectedEnvironmentsStorage -ConnectedEnvironmentName + -ResourceGroupName -StorageName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiConnectedEnvironmentsStorage -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get storage for a connectedEnvironment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ConnectedEnvironmentName +Name of the Environment. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StorageName +Name of the storage. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiContainerApp.md b/swaggerci/app/docs/Get-AzContainerAppsApiContainerApp.md new file mode 100644 index 000000000000..dcc212c37d6c --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiContainerApp.md @@ -0,0 +1,199 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerapp +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiContainerApp + +## SYNOPSIS +Get the properties of a Container App. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiContainerApp [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### Get +``` +Get-AzContainerAppsApiContainerApp -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiContainerApp -InputObject [-DefaultProfile ] + [-PassThru] [] +``` + +### List1 +``` +Get-AzContainerAppsApiContainerApp -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get the properties of a Container App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ContainerAppName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: Get, GetViaIdentity +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```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 +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppAuthConfig.md b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppAuthConfig.md new file mode 100644 index 000000000000..3a160487ed2f --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppAuthConfig.md @@ -0,0 +1,124 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappauthconfig +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiContainerAppAuthConfig + +## SYNOPSIS +Get the Container App AuthConfigs in a given resource group. + +## SYNTAX + +``` +Get-AzContainerAppsApiContainerAppAuthConfig -ContainerAppName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get the Container App AuthConfigs in a given resource group. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ContainerAppName +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppAuthToken.md b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppAuthToken.md new file mode 100644 index 000000000000..78ce4914785d --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppAuthToken.md @@ -0,0 +1,219 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappauthtoken +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiContainerAppAuthToken + +## SYNOPSIS +Get auth token for a container app + +## SYNTAX + +### Get (Default) +``` +Get-AzContainerAppsApiContainerAppAuthToken -ContainerAppName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiContainerAppAuthToken -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get auth token for a container app + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ContainerAppName +Name of the Container App. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.md b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.md new file mode 100644 index 000000000000..bc7635186843 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.md @@ -0,0 +1,171 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappcustomhostnameanalysis +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis + +## SYNOPSIS +Analyzes a custom hostname for a Container App + +## SYNTAX + +``` +Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis -ContainerAppName + -ResourceGroupName [-SubscriptionId ] [-CustomHostname ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Analyzes a custom hostname for a Container App + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ContainerAppName +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CustomHostname +Custom hostname. + +```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 +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppDiagnosticDetector.md b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppDiagnosticDetector.md new file mode 100644 index 000000000000..f6ab2780e373 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppDiagnosticDetector.md @@ -0,0 +1,193 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappdiagnosticdetector +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiContainerAppDiagnosticDetector + +## SYNOPSIS +Get a diagnostics result of a Container App. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiContainerAppDiagnosticDetector -ContainerAppName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzContainerAppsApiContainerAppDiagnosticDetector -ContainerAppName -DetectorName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiContainerAppDiagnosticDetector -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a diagnostics result of a Container App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ContainerAppName +Name of the Container App. + +```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 +``` + +### -DetectorName +Name of the Container App Detector. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```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 +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppDiagnosticRevision.md b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppDiagnosticRevision.md new file mode 100644 index 000000000000..9449815ea376 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppDiagnosticRevision.md @@ -0,0 +1,208 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappdiagnosticrevision +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiContainerAppDiagnosticRevision + +## SYNOPSIS +Get a revision of a Container App. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiContainerAppDiagnosticRevision -ContainerAppName -ResourceGroupName + [-SubscriptionId ] [-Filter ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzContainerAppsApiContainerAppDiagnosticRevision -ContainerAppName -ResourceGroupName + -RevisionName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiContainerAppDiagnosticRevision -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a revision of a Container App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ContainerAppName +Name of the Container App. + +```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 +``` + +### -Filter +The filter to apply on the operation. + +```yaml +Type: System.String +Parameter Sets: List +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.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RevisionName +Name of the Container App Revision. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppDiagnosticRoot.md b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppDiagnosticRoot.md new file mode 100644 index 000000000000..6eda86cf1d98 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppDiagnosticRoot.md @@ -0,0 +1,187 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappdiagnosticroot +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiContainerAppDiagnosticRoot + +## SYNOPSIS +Get the properties of a Container App. + +## SYNTAX + +### Get (Default) +``` +Get-AzContainerAppsApiContainerAppDiagnosticRoot -ContainerAppName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiContainerAppDiagnosticRoot -InputObject + [-DefaultProfile ] [-PassThru] [] +``` + +## DESCRIPTION +Get the properties of a Container App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ContainerAppName +Name of the Container App. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppRevision.md b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppRevision.md new file mode 100644 index 000000000000..3bfa7be4ab5c --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppRevision.md @@ -0,0 +1,208 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerapprevision +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiContainerAppRevision + +## SYNOPSIS +Get a revision of a Container App. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiContainerAppRevision -ContainerAppName -ResourceGroupName + [-SubscriptionId ] [-Filter ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzContainerAppsApiContainerAppRevision -ContainerAppName -ResourceGroupName + -RevisionName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiContainerAppRevision -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a revision of a Container App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ContainerAppName +Name of the Container App. + +```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 +``` + +### -Filter +The filter to apply on the operation. + +```yaml +Type: System.String +Parameter Sets: List +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.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RevisionName +Name of the Container App Revision. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppRevisionReplica.md b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppRevisionReplica.md new file mode 100644 index 000000000000..a7e51fec5f27 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppRevisionReplica.md @@ -0,0 +1,209 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerapprevisionreplica +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiContainerAppRevisionReplica + +## SYNOPSIS +Get a replica for a Container App Revision. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiContainerAppRevisionReplica -ContainerAppName -ResourceGroupName + -RevisionName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzContainerAppsApiContainerAppRevisionReplica -ContainerAppName -ReplicaName + -ResourceGroupName -RevisionName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiContainerAppRevisionReplica -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a replica for a Container App Revision. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ContainerAppName +Name of the Container App. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ReplicaName +Name of the Container App Revision Replica. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RevisionName +Name of the Container App Revision. + +```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 +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppSecret.md b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppSecret.md new file mode 100644 index 000000000000..79b1fa0954e9 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppSecret.md @@ -0,0 +1,155 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappsecret +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiContainerAppSecret + +## SYNOPSIS +List secrets for a container app + +## SYNTAX + +``` +Get-AzContainerAppsApiContainerAppSecret -ContainerAppName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +List secrets for a container app + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ContainerAppName +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppSourceControl.md b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppSourceControl.md new file mode 100644 index 000000000000..e7b444f6d0b9 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppSourceControl.md @@ -0,0 +1,124 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappsourcecontrol +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiContainerAppSourceControl + +## SYNOPSIS +Get the Container App SourceControls in a given resource group. + +## SYNTAX + +``` +Get-AzContainerAppsApiContainerAppSourceControl -ContainerAppName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get the Container App SourceControls in a given resource group. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ContainerAppName +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.Api20221101Preview.ISourceControl + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppsAuthConfig.md b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppsAuthConfig.md new file mode 100644 index 000000000000..a713c35455a4 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppsAuthConfig.md @@ -0,0 +1,187 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappsauthconfig +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiContainerAppsAuthConfig + +## SYNOPSIS +Get a AuthConfig of a Container App. + +## SYNTAX + +### Get (Default) +``` +Get-AzContainerAppsApiContainerAppsAuthConfig -AuthConfigName -ContainerAppName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiContainerAppsAuthConfig -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a AuthConfig of a Container App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AuthConfigName +Name of the Container App AuthConfig. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ContainerAppName +Name of the Container App. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppsSourceControl.md b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppsSourceControl.md new file mode 100644 index 000000000000..10d1064863fc --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiContainerAppsSourceControl.md @@ -0,0 +1,187 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappssourcecontrol +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiContainerAppsSourceControl + +## SYNOPSIS +Get a SourceControl of a Container App. + +## SYNTAX + +### Get (Default) +``` +Get-AzContainerAppsApiContainerAppsSourceControl -ContainerAppName -ResourceGroupName + -SourceControlName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiContainerAppsSourceControl -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a SourceControl of a Container App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ContainerAppName +Name of the Container App. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SourceControlName +Name of the Container App SourceControl. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiDaprComponent.md b/swaggerci/app/docs/Get-AzContainerAppsApiDaprComponent.md new file mode 100644 index 000000000000..c09780dc0e2b --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiDaprComponent.md @@ -0,0 +1,193 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapidaprcomponent +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiDaprComponent + +## SYNOPSIS +Get a dapr component. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiDaprComponent -EnvironmentName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzContainerAppsApiDaprComponent -ComponentName -EnvironmentName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiDaprComponent -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get a dapr component. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ComponentName +Name of the Dapr Component. + +```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 +``` + +### -EnvironmentName +Name of the Managed Environment. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```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 +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiDaprComponentSecret.md b/swaggerci/app/docs/Get-AzContainerAppsApiDaprComponentSecret.md new file mode 100644 index 000000000000..34f26bbd4f84 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiDaprComponentSecret.md @@ -0,0 +1,171 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapidaprcomponentsecret +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiDaprComponentSecret + +## SYNOPSIS +List secrets for a dapr component + +## SYNTAX + +``` +Get-AzContainerAppsApiDaprComponentSecret -ComponentName -EnvironmentName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +List secrets for a dapr component + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ComponentName +Name of the Dapr Component. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Managed Environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.Api20221101Preview.ISecret + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiManagedCertificate.md b/swaggerci/app/docs/Get-AzContainerAppsApiManagedCertificate.md new file mode 100644 index 000000000000..7c088b650ddd --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiManagedCertificate.md @@ -0,0 +1,193 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedcertificate +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiManagedCertificate + +## SYNOPSIS +Get the specified Managed Certificate. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiManagedCertificate -EnvironmentName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzContainerAppsApiManagedCertificate -EnvironmentName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiManagedCertificate -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the specified Managed Certificate. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Managed Environment. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the Managed Certificate. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ManagedCertificateName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```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 +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironment.md b/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironment.md new file mode 100644 index 000000000000..4b42931a0117 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironment.md @@ -0,0 +1,184 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironment +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiManagedEnvironment + +## SYNOPSIS +Get the properties of a Managed Environment used to host container apps. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiManagedEnvironment [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### Get +``` +Get-AzContainerAppsApiManagedEnvironment -EnvironmentName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiManagedEnvironment -InputObject [-DefaultProfile ] + [] +``` + +### List1 +``` +Get-AzContainerAppsApiManagedEnvironment -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get the properties of a Managed Environment used to host container apps. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Environment. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```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 +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentAuthToken.md b/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentAuthToken.md new file mode 100644 index 000000000000..50af9c1db49a --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentAuthToken.md @@ -0,0 +1,203 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentauthtoken +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiManagedEnvironmentAuthToken + +## SYNOPSIS +Checks if resource name is available. + +## SYNTAX + +### Get (Default) +``` +Get-AzContainerAppsApiManagedEnvironmentAuthToken -EnvironmentName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiManagedEnvironmentAuthToken -InputObject + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Checks if resource name is available. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Managed Environment. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.md b/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.md new file mode 100644 index 000000000000..890289232e60 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.md @@ -0,0 +1,195 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentdiagnosticdetector +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector + +## SYNOPSIS +Get the diagnostics data for a Managed Environment used to host container apps. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector -EnvironmentName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector -DetectorName -EnvironmentName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get the diagnostics data for a Managed Environment used to host container apps. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DetectorName +Name of the Managed Environment detector. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Environment. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```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 +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.md b/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.md new file mode 100644 index 000000000000..94a07090860c --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.md @@ -0,0 +1,172 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentdiagnosticroot +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot + +## SYNOPSIS +Get the properties of a Managed Environment used to host container apps. + +## SYNTAX + +### Get (Default) +``` +Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot -EnvironmentName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get the properties of a Managed Environment used to host container apps. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Environment. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.md b/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.md new file mode 100644 index 000000000000..40f95fc08168 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.md @@ -0,0 +1,124 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentworkloadprofilestate +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState + +## SYNOPSIS +Get all workload Profile States for a Premium Managed Environment. + +## SYNTAX + +``` +Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState -EnvironmentName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get all workload Profile States for a Premium Managed Environment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Managed Environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentsStorage.md b/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentsStorage.md new file mode 100644 index 000000000000..36d6b6293815 --- /dev/null +++ b/swaggerci/app/docs/Get-AzContainerAppsApiManagedEnvironmentsStorage.md @@ -0,0 +1,193 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentsstorage +schema: 2.0.0 +--- + +# Get-AzContainerAppsApiManagedEnvironmentsStorage + +## SYNOPSIS +Get storage for a managedEnvironment. + +## SYNTAX + +### List (Default) +``` +Get-AzContainerAppsApiManagedEnvironmentsStorage -EnvironmentName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzContainerAppsApiManagedEnvironmentsStorage -EnvironmentName -ResourceGroupName + -StorageName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzContainerAppsApiManagedEnvironmentsStorage -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get storage for a managedEnvironment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Environment. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StorageName +Name of the storage. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Initialize-AzContainerAppsApiContainerAppRevision.md b/swaggerci/app/docs/Initialize-AzContainerAppsApiContainerAppRevision.md new file mode 100644 index 000000000000..a57c36e0cf7f --- /dev/null +++ b/swaggerci/app/docs/Initialize-AzContainerAppsApiContainerAppRevision.md @@ -0,0 +1,234 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/initialize-azcontainerappsapicontainerapprevision +schema: 2.0.0 +--- + +# Initialize-AzContainerAppsApiContainerAppRevision + +## SYNOPSIS +Activates a revision for a Container App + +## SYNTAX + +### Activate (Default) +``` +Initialize-AzContainerAppsApiContainerAppRevision -ContainerAppName -ResourceGroupName + -RevisionName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### ActivateViaIdentity +``` +Initialize-AzContainerAppsApiContainerAppRevision -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Activates a revision for a Container App + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ContainerAppName +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: Activate +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.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: ActivateViaIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Activate +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RevisionName +Name of the Container App Revision. + +```yaml +Type: System.String +Parameter Sets: Activate +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```yaml +Type: System.String +Parameter Sets: Activate +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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.md b/swaggerci/app/docs/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.md new file mode 100644 index 000000000000..a3f7eb39e42c --- /dev/null +++ b/swaggerci/app/docs/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.md @@ -0,0 +1,234 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/invoke-azcontainerappsapideactivatecontainerapprevision +schema: 2.0.0 +--- + +# Invoke-AzContainerAppsApiDeactivateContainerAppRevision + +## SYNOPSIS +Deactivates a revision for a Container App + +## SYNTAX + +### Deactivate (Default) +``` +Invoke-AzContainerAppsApiDeactivateContainerAppRevision -ContainerAppName -ResourceGroupName + -RevisionName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### DeactivateViaIdentity +``` +Invoke-AzContainerAppsApiDeactivateContainerAppRevision -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deactivates a revision for a Container App + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ContainerAppName +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: Deactivate +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.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: DeactivateViaIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Deactivate +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RevisionName +Name of the Container App Revision. + +```yaml +Type: System.String +Parameter Sets: Deactivate +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```yaml +Type: System.String +Parameter Sets: Deactivate +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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/New-AzContainerAppsApiCertificate.md b/swaggerci/app/docs/New-AzContainerAppsApiCertificate.md new file mode 100644 index 000000000000..9012a143c818 --- /dev/null +++ b/swaggerci/app/docs/New-AzContainerAppsApiCertificate.md @@ -0,0 +1,231 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapicertificate +schema: 2.0.0 +--- + +# New-AzContainerAppsApiCertificate + +## SYNOPSIS +Create or Update a Certificate. + +## SYNTAX + +``` +New-AzContainerAppsApiCertificate -EnvironmentName -Name -ResourceGroupName + -Location [-SubscriptionId ] [-InputFile ] [-Password ] [-Tag ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or Update a Certificate. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Managed Environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputFile +Input File for Value (PFX or PEM blob) + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +The geo-location where the resource lives + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the Certificate. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: CertificateName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Password +Certificate password. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Resource tags. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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.ContainerAppsApi.Models.Api20221101Preview.ICertificate + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironment.md b/swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironment.md new file mode 100644 index 000000000000..9564e8b6eeff --- /dev/null +++ b/swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironment.md @@ -0,0 +1,324 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapiconnectedenvironment +schema: 2.0.0 +--- + +# New-AzContainerAppsApiConnectedEnvironment + +## SYNOPSIS +Creates or updates an connectedEnvironment. + +## SYNTAX + +``` +New-AzContainerAppsApiConnectedEnvironment -Name -ResourceGroupName -Location + [-SubscriptionId ] [-CustomDomainConfigurationCertificatePasswordInputFile ] + [-CustomDomainConfigurationCertificateValueInputFile ] [-CustomDomainConfigurationDnsSuffix ] + [-DaprAiConnectionString ] [-ExtendedLocationName ] + [-ExtendedLocationType ] [-StaticIP ] [-Tag ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Creates or updates an connectedEnvironment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CustomDomainConfigurationCertificatePasswordInputFile +Input File for CustomDomainConfigurationCertificatePassword (Certificate password) + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CustomDomainConfigurationCertificateValueInputFile +Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob) + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CustomDomainConfigurationDnsSuffix +Dns suffix for the environment domain + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprAiConnectionString +Application Insights connection string used by Dapr to export Service to Service communication telemetry + +```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 +``` + +### -ExtendedLocationName +The name of the extended location. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExtendedLocationType +The type of the extended location. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +The geo-location where the resource lives + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the connectedEnvironment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ConnectedEnvironmentName + +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StaticIP +Static IP of the connectedEnvironment + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Resource tags. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironmentCertificate.md b/swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironmentCertificate.md new file mode 100644 index 000000000000..5e82087b73ff --- /dev/null +++ b/swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironmentCertificate.md @@ -0,0 +1,232 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapiconnectedenvironmentcertificate +schema: 2.0.0 +--- + +# New-AzContainerAppsApiConnectedEnvironmentCertificate + +## SYNOPSIS +Create or Update a Certificate. + +## SYNTAX + +``` +New-AzContainerAppsApiConnectedEnvironmentCertificate -CertificateName + -ConnectedEnvironmentName -ResourceGroupName -Location [-SubscriptionId ] + [-InputFile ] [-Password ] [-Tag ] [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +## DESCRIPTION +Create or Update a Certificate. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -CertificateName +Name of the Certificate. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConnectedEnvironmentName +Name of the Connected Environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputFile +Input File for Value (PFX or PEM blob) + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +The geo-location where the resource lives + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Password +Certificate password. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Resource tags. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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.ContainerAppsApi.Models.Api20221101Preview.ICertificate + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.md b/swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.md new file mode 100644 index 000000000000..bfab9e7817ba --- /dev/null +++ b/swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.md @@ -0,0 +1,309 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapiconnectedenvironmentdaprcomponent +schema: 2.0.0 +--- + +# New-AzContainerAppsApiConnectedEnvironmentDaprComponent + +## SYNOPSIS +Creates or updates a Dapr Component in a connected environment. + +## SYNTAX + +``` +New-AzContainerAppsApiConnectedEnvironmentDaprComponent -ComponentName + -ConnectedEnvironmentName -ResourceGroupName [-SubscriptionId ] + [-ComponentType ] [-IgnoreError] [-InitTimeout ] [-Metadata ] + [-Scope ] [-Secret ] [-SecretStoreComponent ] [-Version ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Creates or updates a Dapr Component in a connected environment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ComponentName +Name of the Dapr Component. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ComponentType +Component type + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConnectedEnvironmentName +Name of the connected environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IgnoreError +Boolean describing if the component errors are ignores + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InitTimeout +Initialization timeout + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Metadata +Component metadata +To construct, see NOTES section for METADATA properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[] +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Scope +Names of container apps that can use this Dapr component + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Secret +Collection of secrets used by a Dapr component +To construct, see NOTES section for SECRET properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SecretStoreComponent +Name of a Dapr component to retrieve component secrets from + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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 +``` + +### -Version +Component version + +```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.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + +## 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. + + +`METADATA `: Component metadata + - `[Name ]`: Metadata property name. + - `[SecretRef ]`: Name of the Dapr Component secret from which to pull the metadata property value. + - `[Value ]`: Metadata property value. + +`SECRET `: Collection of secrets used by a Dapr component + - `[Name ]`: Secret Name. + - `[Value ]`: Secret Value. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironmentStorage.md b/swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironmentStorage.md new file mode 100644 index 000000000000..07bedf32d922 --- /dev/null +++ b/swaggerci/app/docs/New-AzContainerAppsApiConnectedEnvironmentStorage.md @@ -0,0 +1,232 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapiconnectedenvironmentstorage +schema: 2.0.0 +--- + +# New-AzContainerAppsApiConnectedEnvironmentStorage + +## SYNOPSIS +Create or update storage for a connectedEnvironment. + +## SYNTAX + +``` +New-AzContainerAppsApiConnectedEnvironmentStorage -ConnectedEnvironmentName + -ResourceGroupName -StorageName [-SubscriptionId ] + [-AzureFileAccessMode ] [-AzureFileAccountKey ] [-AzureFileAccountName ] + [-AzureFileShareName ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update storage for a connectedEnvironment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AzureFileAccessMode +Access mode for storage + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AzureFileAccountKey +Storage account key for azure file. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AzureFileAccountName +Storage account name for azure file. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AzureFileShareName +Azure file share name. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConnectedEnvironmentName +Name of the Environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StorageName +Name of the storage. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/app/docs/New-AzContainerAppsApiContainerApp.md b/swaggerci/app/docs/New-AzContainerAppsApiContainerApp.md new file mode 100644 index 000000000000..422bf3446e05 --- /dev/null +++ b/swaggerci/app/docs/New-AzContainerAppsApiContainerApp.md @@ -0,0 +1,866 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapicontainerapp +schema: 2.0.0 +--- + +# New-AzContainerAppsApiContainerApp + +## SYNOPSIS +Create or update a Container App. + +## SYNTAX + +``` +New-AzContainerAppsApiContainerApp -Name -ResourceGroupName -Location + [-SubscriptionId ] [-ConfigurationActiveRevisionsMode ] + [-ConfigurationMaxInactiveRevision ] [-ConfigurationRegistry ] + [-ConfigurationSecret ] [-DaprAppId ] [-DaprAppPort ] + [-DaprAppProtocol ] [-DaprEnableApiLogging] [-DaprEnabled] [-DaprHttpMaxRequestSize ] + [-DaprHttpReadBufferSize ] [-DaprLogLevel ] [-EnvironmentId ] + [-ExtendedLocationName ] [-ExtendedLocationType ] + [-IdentityType ] [-IdentityUserAssignedIdentity ] + [-IngressAllowInsecure] [-IngressCustomDomain ] [-IngressExposedPort ] + [-IngressExternal] [-IngressIPSecurityRestriction ] + [-IngressTargetPort ] [-IngressTraffic ] + [-IngressTransport ] [-ManagedEnvironmentId ] [-ScaleMaxReplica ] + [-ScaleMinReplica ] [-ScaleRule ] [-Tag ] [-TemplateContainer ] + [-TemplateInitContainer ] [-TemplateRevisionSuffix ] [-TemplateVolume ] + [-WorkloadProfileType ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Create or update a Container App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConfigurationActiveRevisionsMode +ActiveRevisionsMode controls how active revisions are handled for the Container app:\\Multiple: multiple revisions can be active.\\Single: Only one revision can be active at a time. +Revision weights can not be used in this mode. +If no value if provided, this is the default.\\ + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConfigurationMaxInactiveRevision +Optional. +Max inactive revisions a Container App can have. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConfigurationRegistry +Collection of private container registry credentials for containers used by the Container app +To construct, see NOTES section for CONFIGURATIONREGISTRY properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConfigurationSecret +Collection of secrets used by a Container app +To construct, see NOTES section for CONFIGURATIONSECRET properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprAppId +Dapr application identifier + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprAppPort +Tells Dapr which port your application is listening on + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprAppProtocol +Tells Dapr which protocol your application is using. +Valid options are http and grpc. +Default is http + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprEnableApiLogging +Enables API logging for the Dapr sidecar + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprEnabled +Boolean indicating if the Dapr side car 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 +``` + +### -DaprHttpMaxRequestSize +Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. +Default is 4 MB. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprHttpReadBufferSize +Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. +Default is 65KB. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprLogLevel +Sets the log level for the Dapr sidecar. +Allowed values are debug, info, warn, error. +Default is info. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel +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 +``` + +### -EnvironmentId +Resource ID of environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExtendedLocationName +The name of the extended location. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExtendedLocationType +The type of the extended location. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityType +Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityUserAssignedIdentity +The set of user assigned identities associated with the resource. +The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. +The dictionary values can be empty objects ({}) in requests. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressAllowInsecure +Bool indicating if HTTP connections to is allowed. +If set to false HTTP connections are automatically redirected to HTTPS connections + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressCustomDomain +custom domain bindings for Container Apps' hostnames. +To construct, see NOTES section for INGRESSCUSTOMDOMAIN properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressExposedPort +Exposed Port in containers for TCP traffic from ingress + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressExternal +Bool indicating if app exposes an external http 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 +``` + +### -IngressIPSecurityRestriction +Rules to restrict incoming IP address. +To construct, see NOTES section for INGRESSIPSECURITYRESTRICTION properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressTargetPort +Target Port in containers for traffic from ingress + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressTraffic +Traffic weights for app's revisions +To construct, see NOTES section for INGRESSTRAFFIC properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressTransport +Ingress transport protocol + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +The geo-location where the resource lives + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ManagedEnvironmentId +Deprecated. +Resource ID of the Container App's environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ContainerAppName + +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScaleMaxReplica +Optional. +Maximum number of container replicas. +Defaults to 10 if not set. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScaleMinReplica +Optional. +Minimum number of container replicas. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScaleRule +Scaling rules. +To construct, see NOTES section for SCALERULE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Resource tags. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TemplateContainer +List of container definitions for the Container App. +To construct, see NOTES section for TEMPLATECONTAINER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TemplateInitContainer +List of specialized containers that run before app containers. +To construct, see NOTES section for TEMPLATEINITCONTAINER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TemplateRevisionSuffix +User friendly suffix that is appended to the revision name + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TemplateVolume +List of volume definitions for the Container App. +To construct, see NOTES section for TEMPLATEVOLUME properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkloadProfileType +Workload profile type to pin for container app execution. + +```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.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + +## 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. + + +`CONFIGURATIONREGISTRY `: Collection of private container registry credentials for containers used by the Container app + - `[Identity ]`: A Managed Identity to use to authenticate with Azure Container Registry. For user-assigned identities, use the full user-assigned identity Resource ID. For system-assigned identities, use 'system' + - `[PasswordSecretRef ]`: The name of the Secret that contains the registry login password + - `[Server ]`: Container Registry Server + - `[Username ]`: Container Registry Username + +`CONFIGURATIONSECRET `: Collection of secrets used by a Container app + - `[Name ]`: Secret Name. + - `[Value ]`: Secret Value. + +`INGRESSCUSTOMDOMAIN `: custom domain bindings for Container Apps' hostnames. + - `CertificateId `: Resource Id of the Certificate to be bound to this hostname. Must exist in the Managed Environment. + - `Name `: Hostname. + - `[BindingType ]`: Custom Domain binding type. + +`INGRESSIPSECURITYRESTRICTION `: Rules to restrict incoming IP address. + - `Action `: Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or ALL Deny + - `IPAddressRange `: CIDR notation to match incoming IP address + - `Name `: Name for the IP restriction rule. + - `[Description ]`: Describe the IP restriction rule that is being sent to the container-app. This is an optional field. + +`INGRESSTRAFFIC `: Traffic weights for app's revisions + - `[Label ]`: Associates a traffic label with a revision + - `[LatestRevision ]`: Indicates that the traffic weight belongs to a latest stable revision + - `[RevisionName ]`: Name of a revision + - `[Weight ]`: Traffic weight assigned to a revision + +`SCALERULE `: Scaling rules. + - `[AzureQueueAuth ]`: Authentication secrets for the queue scale rule. + - `[SecretRef ]`: Name of the Container App secret from which to pull the auth params. + - `[TriggerParameter ]`: Trigger Parameter that uses the secret + - `[AzureQueueLength ]`: Queue length. + - `[AzureQueueName ]`: Queue name. + - `[CustomAuth ]`: Authentication secrets for the custom scale rule. + - `[CustomMetadata ]`: Metadata properties to describe custom scale rule. + - `[(Any) ]`: This indicates any property can be added to this object. + - `[CustomType ]`: Type of the custom scale rule eg: azure-servicebus, redis etc. + - `[HttpAuth ]`: Authentication secrets for the custom scale rule. + - `[HttpMetadata ]`: Metadata properties to describe http scale rule. + - `[(Any) ]`: This indicates any property can be added to this object. + - `[Name ]`: Scale Rule Name + - `[TcpAuth ]`: Authentication secrets for the tcp scale rule. + - `[TcpMetadata ]`: Metadata properties to describe tcp scale rule. + - `[(Any) ]`: This indicates any property can be added to this object. + +`TEMPLATECONTAINER `: List of container definitions for the Container App. + - `[Arg ]`: Container start command arguments. + - `[Command ]`: Container start command. + - `[Env ]`: Container environment variables. + - `[Name ]`: Environment variable name. + - `[SecretRef ]`: Name of the Container App secret from which to pull the environment variable value. + - `[Value ]`: Non-secret environment variable value. + - `[Image ]`: Container image tag. + - `[Name ]`: Custom container name. + - `[ResourceCpu ]`: Required CPU in cores, e.g. 0.5 + - `[ResourceMemory ]`: Required memory, e.g. "250Mb" + - `[VolumeMount ]`: Container volume mounts. + - `[MountPath ]`: Path within the container at which the volume should be mounted.Must not contain ':'. + - `[VolumeName ]`: This must match the Name of a Volume. + - `[Probe ]`: List of probes for the container. + - `[FailureThreshold ]`: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. Maximum value is 10. + - `[HttpGetHost ]`: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + - `[HttpGetHttpHeader ]`: Custom headers to set in the request. HTTP allows repeated headers. + - `Name `: The header field name + - `Value `: The header field value + - `[HttpGetPath ]`: Path to access on the HTTP server. + - `[HttpGetPort ]`: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + - `[HttpGetScheme ]`: Scheme to use for connecting to the host. Defaults to HTTP. + - `[InitialDelaySecond ]`: Number of seconds after the container has started before liveness probes are initiated. Minimum value is 1. Maximum value is 60. + - `[PeriodSecond ]`: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value is 240. + - `[SuccessThreshold ]`: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. Maximum value is 10. + - `[TcpSocketHost ]`: Optional: Host name to connect to, defaults to the pod IP. + - `[TcpSocketPort ]`: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + - `[TerminationGracePeriodSecond ]`: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. Maximum value is 3600 seconds (1 hour) + - `[TimeoutSecond ]`: Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 240. + - `[Type ]`: The type of probe. + +`TEMPLATEINITCONTAINER `: List of specialized containers that run before app containers. + - `[Arg ]`: Container start command arguments. + - `[Command ]`: Container start command. + - `[Env ]`: Container environment variables. + - `[Name ]`: Environment variable name. + - `[SecretRef ]`: Name of the Container App secret from which to pull the environment variable value. + - `[Value ]`: Non-secret environment variable value. + - `[Image ]`: Container image tag. + - `[Name ]`: Custom container name. + - `[ResourceCpu ]`: Required CPU in cores, e.g. 0.5 + - `[ResourceMemory ]`: Required memory, e.g. "250Mb" + - `[VolumeMount ]`: Container volume mounts. + - `[MountPath ]`: Path within the container at which the volume should be mounted.Must not contain ':'. + - `[VolumeName ]`: This must match the Name of a Volume. + +`TEMPLATEVOLUME `: List of volume definitions for the Container App. + - `[Name ]`: Volume name. + - `[StorageName ]`: Name of storage resource. No need to provide for EmptyDir. + - `[StorageType ]`: Storage type for the volume. If not provided, use EmptyDir. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/New-AzContainerAppsApiContainerAppAuthConfig.md b/swaggerci/app/docs/New-AzContainerAppsApiContainerAppAuthConfig.md new file mode 100644 index 000000000000..afeb8734031d --- /dev/null +++ b/swaggerci/app/docs/New-AzContainerAppsApiContainerAppAuthConfig.md @@ -0,0 +1,499 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapicontainerappauthconfig +schema: 2.0.0 +--- + +# New-AzContainerAppsApiContainerAppAuthConfig + +## SYNOPSIS +Create or update the AuthConfig for a Container App. + +## SYNTAX + +``` +New-AzContainerAppsApiContainerAppAuthConfig -AuthConfigName -ContainerAppName + -ResourceGroupName [-SubscriptionId ] + [-CookieExpirationConvention ] [-CookieExpirationTimeToExpiration ] + [-ForwardProxyConvention ] [-ForwardProxyCustomHostHeaderName ] + [-ForwardProxyCustomProtoHeaderName ] [-GlobalValidationExcludedPath ] + [-GlobalValidationRedirectToProvider ] + [-GlobalValidationUnauthenticatedClientAction ] [-HttpSettingRequireHttps] + [-IdentityProvider ] [-LoginAllowedExternalRedirectUrl ] + [-LoginPreserveUrlFragmentsForLogin] [-NonceExpirationInterval ] [-NonceValidateNonce] + [-PlatformEnabled] [-PlatformRuntimeVersion ] [-RouteApiPrefix ] + [-RouteLogoutEndpoint ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update the AuthConfig for a Container App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AuthConfigName +Name of the Container App AuthConfig. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ContainerAppName +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CookieExpirationConvention +The convention used when determining the session cookie's expiration. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CookieExpirationTimeToExpiration +The time after the request is made when the session cookie should expire. + +```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 +``` + +### -ForwardProxyConvention +The convention used to determine the url of the request made. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ForwardProxyCustomHostHeaderName +The name of the header containing the host of the request. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ForwardProxyCustomProtoHeaderName +The name of the header containing the scheme of the request. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GlobalValidationExcludedPath +The paths for which unauthenticated flow would not be redirected to the login page. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GlobalValidationRedirectToProvider +The default authentication provider to use when multiple providers are configured.This setting is only needed if multiple providers are configured and the unauthenticated clientaction is set to "RedirectToLoginPage". + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GlobalValidationUnauthenticatedClientAction +The action to take when an unauthenticated client attempts to access the app. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HttpSettingRequireHttps +\false\ if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, \true\. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityProvider +The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. +To construct, see NOTES section for IDENTITYPROVIDER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LoginAllowedExternalRedirectUrl +External URLs that can be redirected to as part of logging in or logging out of the app. +Note that the query string part of the URL is ignored.This is an advanced setting typically only needed by Windows Store application backends.Note that URLs within the current domain are always implicitly allowed. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LoginPreserveUrlFragmentsForLogin +\true\ if the fragments from the request are preserved after the login request is made; otherwise, \false\. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NonceExpirationInterval +The time after the request is made when the nonce should expire. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NonceValidateNonce +\false\ if the nonce should not be validated while completing the login flow; otherwise, \true\. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlatformEnabled +\true\ if the Authentication / Authorization feature is enabled for the current app; otherwise, \false\. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlatformRuntimeVersion +The RuntimeVersion of the Authentication / Authorization feature in use for the current app.The setting in this value can control the behavior of certain features in the Authentication / Authorization module. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RouteApiPrefix +The prefix that should precede all the authentication/authorization paths. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RouteLogoutEndpoint +The endpoint at which a logout request should be made. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig + +## 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. + + +`IDENTITYPROVIDER `: The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + - `[AllowedPrincipalGroup ]`: The list of the allowed groups. + - `[AllowedPrincipalIdentity ]`: The list of the allowed identities. + - `[AppleEnabled ]`: false if the Apple provider should not be enabled despite the set registration; otherwise, true. + - `[AppleLoginScope ]`: A list of the scopes that should be requested while authenticating. + - `[AppleRegistrationClientId ]`: The Client ID of the app used for login. + - `[AppleRegistrationClientSecretSettingName ]`: The app setting name that contains the client secret. + - `[AzureActiveDirectoryEnabled ]`: false if the Azure Active Directory provider should not be enabled despite the set registration; otherwise, true. + - `[AzureActiveDirectoryIsAutoProvisioned ]`: Gets a value indicating whether the Azure AD configuration was auto-provisioned using 1st party tooling. This is an internal flag primarily intended to support the Azure Management Portal. Users should not read or write to this property. + - `[AzureActiveDirectoryRegistrationClientId ]`: The Client ID of this relying party application, known as the client_id. This setting is required for enabling OpenID Connection authentication with Azure Active Directory or other 3rd party OpenID Connect providers. More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html + - `[AzureActiveDirectoryRegistrationClientSecretSettingName ]`: The app setting name that contains the client secret of the relying party application. + - `[AzureActiveDirectoryValidationAllowedAudience ]`: The list of audiences that can make successful authentication/authorization requests. + - `[AzureStaticWebAppEnabled ]`: false if the Azure Static Web Apps provider should not be enabled despite the set registration; otherwise, true. + - `[AzureStaticWebAppsRegistrationClientId ]`: The Client ID of the app used for login. + - `[CustomOpenIdConnectProvider ]`: The map of the name of the alias of each custom Open ID Connect provider to the configuration settings of the custom Open ID Connect provider. + - `[(Any) ]`: This indicates any property can be added to this object. + - `[DefaultAuthorizationPolicyAllowedApplication ]`: The configuration settings of the Azure Active Directory allowed applications. + - `[FacebookEnabled ]`: false if the Facebook provider should not be enabled despite the set registration; otherwise, true. + - `[FacebookGraphApiVersion ]`: The version of the Facebook api to be used while logging in. + - `[FacebookLoginScope ]`: A list of the scopes that should be requested while authenticating. + - `[GitHubEnabled ]`: false if the GitHub provider should not be enabled despite the set registration; otherwise, true. + - `[GitHubLoginScope ]`: A list of the scopes that should be requested while authenticating. + - `[GitHubRegistrationClientId ]`: The Client ID of the app used for login. + - `[GitHubRegistrationClientSecretSettingName ]`: The app setting name that contains the client secret. + - `[GoogleEnabled ]`: false if the Google provider should not be enabled despite the set registration; otherwise, true. + - `[GoogleLoginScope ]`: A list of the scopes that should be requested while authenticating. + - `[GoogleRegistrationClientId ]`: The Client ID of the app used for login. + - `[GoogleRegistrationClientSecretSettingName ]`: The app setting name that contains the client secret. + - `[GoogleValidationAllowedAudience ]`: The configuration settings of the allowed list of audiences from which to validate the JWT token. + - `[JwtClaimCheckAllowedClientApplication ]`: The list of the allowed client applications. + - `[JwtClaimCheckAllowedGroup ]`: The list of the allowed groups. + - `[LoginDisableWwwAuthenticate ]`: true if the www-authenticate provider should be omitted from the request; otherwise, false. + - `[LoginParameter ]`: Login parameters to send to the OpenID Connect authorization endpoint when a user logs in. Each parameter must be in the form "key=value". + - `[RegistrationAppId ]`: The App ID of the app used for login. + - `[RegistrationAppSecretSettingName ]`: The app setting name that contains the app secret. + - `[RegistrationClientSecretCertificateIssuer ]`: An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property acts as a replacement for the Client Secret Certificate Thumbprint. It is also optional. + - `[RegistrationClientSecretCertificateSubjectAlternativeName ]`: An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing purposes. This property acts as a replacement for the Client Secret Certificate Thumbprint. It is also optional. + - `[RegistrationClientSecretCertificateThumbprint ]`: An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as a replacement for the Client Secret. It is also optional. + - `[RegistrationConsumerKey ]`: The OAuth 1.0a consumer key of the Twitter application used for sign-in. This setting is required for enabling Twitter Sign-In. Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in + - `[RegistrationConsumerSecretSettingName ]`: The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. + - `[RegistrationOpenIdIssuer ]`: The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. This URI is a case-sensitive identifier for the token issuer. More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html + - `[TwitterEnabled ]`: false if the Twitter provider should not be enabled despite the set registration; otherwise, true. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/New-AzContainerAppsApiContainerAppSourceControl.md b/swaggerci/app/docs/New-AzContainerAppsApiContainerAppSourceControl.md new file mode 100644 index 000000000000..b7aef8c94fa3 --- /dev/null +++ b/swaggerci/app/docs/New-AzContainerAppsApiContainerAppSourceControl.md @@ -0,0 +1,432 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapicontainerappsourcecontrol +schema: 2.0.0 +--- + +# New-AzContainerAppsApiContainerAppSourceControl + +## SYNOPSIS +Create or update the SourceControl for a Container App. + +## SYNTAX + +``` +New-AzContainerAppsApiContainerAppSourceControl -ContainerAppName -ResourceGroupName + -SourceControlName [-SubscriptionId ] [-AzureCredentialsClientId ] + [-AzureCredentialsClientSecret ] [-AzureCredentialsSubscriptionId ] + [-AzureCredentialsTenantId ] [-Branch ] [-GithubActionConfigurationContextPath ] + [-GithubActionConfigurationImage ] [-GithubActionConfigurationOS ] + [-GithubActionConfigurationPublishType ] [-GithubActionConfigurationRuntimeStack ] + [-GithubActionConfigurationRuntimeVersion ] [-RegistryInfoRegistryPassword ] + [-RegistryInfoRegistryUrl ] [-RegistryInfoRegistryUserName ] [-RepoUrl ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update the SourceControl for a Container App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AzureCredentialsClientId +Client Id. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AzureCredentialsClientSecret +Client Secret. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AzureCredentialsSubscriptionId +Subscription Id. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AzureCredentialsTenantId +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 +``` + +### -Branch +The branch which will trigger the auto deployment + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ContainerAppName +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GithubActionConfigurationContextPath +Context path + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GithubActionConfigurationImage +Image name + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GithubActionConfigurationOS +Operation system + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GithubActionConfigurationPublishType +Code or Image + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GithubActionConfigurationRuntimeStack +Runtime stack + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GithubActionConfigurationRuntimeVersion +Runtime version + +```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 +``` + +### -RegistryInfoRegistryPassword +registry secret. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RegistryInfoRegistryUrl +registry server Url. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RegistryInfoRegistryUserName +registry username. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RepoUrl +The repo url which will be integrated to ContainerApp. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SourceControlName +Name of the Container App SourceControl. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.Api20221101Preview.ISourceControl + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/app/docs/New-AzContainerAppsApiDaprComponent.md b/swaggerci/app/docs/New-AzContainerAppsApiDaprComponent.md new file mode 100644 index 000000000000..80fa3afba232 --- /dev/null +++ b/swaggerci/app/docs/New-AzContainerAppsApiDaprComponent.md @@ -0,0 +1,309 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapidaprcomponent +schema: 2.0.0 +--- + +# New-AzContainerAppsApiDaprComponent + +## SYNOPSIS +Creates or updates a Dapr Component in a Managed Environment. + +## SYNTAX + +``` +New-AzContainerAppsApiDaprComponent -ComponentName -EnvironmentName + -ResourceGroupName [-SubscriptionId ] [-ComponentType ] [-IgnoreError] + [-InitTimeout ] [-Metadata ] [-Scope ] [-Secret ] + [-SecretStoreComponent ] [-Version ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Creates or updates a Dapr Component in a Managed Environment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ComponentName +Name of the Dapr Component. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ComponentType +Component type + +```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 +``` + +### -EnvironmentName +Name of the Managed Environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IgnoreError +Boolean describing if the component errors are ignores + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InitTimeout +Initialization timeout + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Metadata +Component metadata +To construct, see NOTES section for METADATA properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[] +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Scope +Names of container apps that can use this Dapr component + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Secret +Collection of secrets used by a Dapr component +To construct, see NOTES section for SECRET properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SecretStoreComponent +Name of a Dapr component to retrieve component secrets from + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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 +``` + +### -Version +Component version + +```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.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + +## 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. + + +`METADATA `: Component metadata + - `[Name ]`: Metadata property name. + - `[SecretRef ]`: Name of the Dapr Component secret from which to pull the metadata property value. + - `[Value ]`: Metadata property value. + +`SECRET `: Collection of secrets used by a Dapr component + - `[Name ]`: Secret Name. + - `[Value ]`: Secret Value. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/New-AzContainerAppsApiManagedCertificate.md b/swaggerci/app/docs/New-AzContainerAppsApiManagedCertificate.md new file mode 100644 index 000000000000..07171e144c8f --- /dev/null +++ b/swaggerci/app/docs/New-AzContainerAppsApiManagedCertificate.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapimanagedcertificate +schema: 2.0.0 +--- + +# New-AzContainerAppsApiManagedCertificate + +## SYNOPSIS +Create or Update a Managed Certificate. + +## SYNTAX + +``` +New-AzContainerAppsApiManagedCertificate -EnvironmentName -Name -ResourceGroupName + -Location [-SubscriptionId ] + [-DomainControlValidation ] [-SubjectName ] + [-Tag ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Create or Update a Managed Certificate. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainControlValidation +Selected type of domain control validation for managed certificates. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Managed Environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +The geo-location where the resource lives + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the Managed Certificate. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ManagedCertificateName + +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubjectName +Subject name of the certificate. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Resource tags. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/app/docs/New-AzContainerAppsApiManagedEnvironment.md b/swaggerci/app/docs/New-AzContainerAppsApiManagedEnvironment.md new file mode 100644 index 000000000000..bf04ead570be --- /dev/null +++ b/swaggerci/app/docs/New-AzContainerAppsApiManagedEnvironment.md @@ -0,0 +1,530 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapimanagedenvironment +schema: 2.0.0 +--- + +# New-AzContainerAppsApiManagedEnvironment + +## SYNOPSIS +Creates or updates a Managed Environment used to host container apps. + +## SYNTAX + +``` +New-AzContainerAppsApiManagedEnvironment -EnvironmentName -ResourceGroupName + -Location [-SubscriptionId ] [-AppLogConfigurationDestination ] + [-CustomDomainConfigurationCertificatePasswordInputFile ] + [-CustomDomainConfigurationCertificateValueInputFile ] [-CustomDomainConfigurationDnsSuffix ] + [-DaprAiConnectionString ] [-DaprAiInstrumentationKey ] + [-LogAnalyticConfigurationCustomerId ] [-LogAnalyticConfigurationSharedKey ] + [-OutboundSettingOutBoundType ] + [-OutboundSettingVirtualNetworkApplianceIP ] [-SkuName ] [-Tag ] + [-VnetConfigurationDockerBridgeCidr ] [-VnetConfigurationInfrastructureSubnetId ] + [-VnetConfigurationInternal] [-VnetConfigurationPlatformReservedCidr ] + [-VnetConfigurationPlatformReservedDnsIP ] [-VnetConfigurationRuntimeSubnetId ] + [-WorkloadProfile ] [-ZoneRedundant] [-DefaultProfile ] [-AsJob] [-NoWait] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Creates or updates a Managed Environment used to host container apps. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppLogConfigurationDestination +Logs destination + +```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 +``` + +### -CustomDomainConfigurationCertificatePasswordInputFile +Input File for CustomDomainConfigurationCertificatePassword (Certificate password) + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CustomDomainConfigurationCertificateValueInputFile +Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob) + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CustomDomainConfigurationDnsSuffix +Dns suffix for the environment domain + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprAiConnectionString +Application Insights connection string used by Dapr to export Service to Service communication telemetry + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprAiInstrumentationKey +Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + +```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 +``` + +### -EnvironmentName +Name of the Environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +The geo-location where the resource lives + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogAnalyticConfigurationCustomerId +Log analytics customer id + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogAnalyticConfigurationSharedKey +Log analytics customer key + +```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 +``` + +### -OutboundSettingOutBoundType +Outbound type for the cluster + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OutboundSettingVirtualNetworkApplianceIP +Virtual Appliance IP used as the Egress controller for the Environment + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +Name of the Sku. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Resource tags. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetConfigurationDockerBridgeCidr +CIDR notation IP range assigned to the Docker bridge, network. +Must not overlap with any other provided IP ranges. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetConfigurationInfrastructureSubnetId +Resource ID of a subnet for infrastructure components. +This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. +Must not overlap with any other provided IP ranges. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetConfigurationInternal +Boolean indicating the environment only has an internal load balancer. +These environments do not have a public static IP resource. +They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetConfigurationPlatformReservedCidr +IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. +Must not overlap with any other provided IP ranges. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetConfigurationPlatformReservedDnsIP +An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetConfigurationRuntimeSubnetId +Resource ID of a subnet that Container App containers are injected into. +This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. +Must not overlap with any other provided IP ranges. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkloadProfile +Workload profiles configured for the Managed Environment. +To construct, see NOTES section for WORKLOADPROFILE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ZoneRedundant +Whether or not this Managed Environment is zone-redundant. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + +## 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. + + +`WORKLOADPROFILE `: Workload profiles configured for the Managed Environment. + - `MaximumCount `: The maximum capacity. + - `MinimumCount `: The minimum capacity. + - `Type `: Workload profile type for the workloads to run on. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/New-AzContainerAppsApiManagedEnvironmentStorage.md b/swaggerci/app/docs/New-AzContainerAppsApiManagedEnvironmentStorage.md new file mode 100644 index 000000000000..ec5502c96d17 --- /dev/null +++ b/swaggerci/app/docs/New-AzContainerAppsApiManagedEnvironmentStorage.md @@ -0,0 +1,232 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapimanagedenvironmentstorage +schema: 2.0.0 +--- + +# New-AzContainerAppsApiManagedEnvironmentStorage + +## SYNOPSIS +Create or update storage for a managedEnvironment. + +## SYNTAX + +``` +New-AzContainerAppsApiManagedEnvironmentStorage -EnvironmentName -ResourceGroupName + -StorageName [-SubscriptionId ] [-AzureFileAccessMode ] + [-AzureFileAccountKey ] [-AzureFileAccountName ] [-AzureFileShareName ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update storage for a managedEnvironment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AzureFileAccessMode +Access mode for storage + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AzureFileAccountKey +Storage account key for azure file. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AzureFileAccountName +Storage account name for azure file. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AzureFileShareName +Azure file share name. + +```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 +``` + +### -EnvironmentName +Name of the Environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StorageName +Name of the storage. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/app/docs/README.md b/swaggerci/app/docs/README.md new file mode 100644 index 000000000000..3f5576202f60 --- /dev/null +++ b/swaggerci/app/docs/README.md @@ -0,0 +1,11 @@ +# Docs +This directory contains the documentation of the cmdlets for the `Az.ContainerAppsApi` module. To run documentation generation, use the `generate-help.ps1` script at the root module folder. Files in this folder will *always be overridden on regeneration*. To update documentation examples, please use the `../examples` folder. + +## Info +- Modifiable: no +- Generated: all +- Committed: yes +- Packaged: yes + +## Details +The process of documentation generation loads `Az.ContainerAppsApi` and analyzes the exported cmdlets from the module. It recognizes the [help comments](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_comment_based_help) that are generated into the scripts in the `../exports` folder. Additionally, when writing custom cmdlets in the `../custom` folder, you can use the help comments syntax, which decorate the exported scripts at build-time. The documentation examples are taken from the `../examples` folder. \ No newline at end of file diff --git a/swaggerci/app/docs/Remove-AzContainerAppsApiCertificate.md b/swaggerci/app/docs/Remove-AzContainerAppsApiCertificate.md new file mode 100644 index 000000000000..6b18260a6dd2 --- /dev/null +++ b/swaggerci/app/docs/Remove-AzContainerAppsApiCertificate.md @@ -0,0 +1,233 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapicertificate +schema: 2.0.0 +--- + +# Remove-AzContainerAppsApiCertificate + +## SYNOPSIS +Deletes the specified Certificate. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzContainerAppsApiCertificate -EnvironmentName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzContainerAppsApiCertificate -InputObject [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deletes the specified Certificate. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Managed Environment. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the Certificate. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: CertificateName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironment.md b/swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironment.md new file mode 100644 index 000000000000..095696120e6f --- /dev/null +++ b/swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironment.md @@ -0,0 +1,249 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapiconnectedenvironment +schema: 2.0.0 +--- + +# Remove-AzContainerAppsApiConnectedEnvironment + +## SYNOPSIS +Delete an connectedEnvironment. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzContainerAppsApiConnectedEnvironment -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzContainerAppsApiConnectedEnvironment -InputObject + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete an connectedEnvironment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the connectedEnvironment. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ConnectedEnvironmentName + +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.md b/swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.md new file mode 100644 index 000000000000..5c732306ea47 --- /dev/null +++ b/swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.md @@ -0,0 +1,234 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapiconnectedenvironmentscertificate +schema: 2.0.0 +--- + +# Remove-AzContainerAppsApiConnectedEnvironmentsCertificate + +## SYNOPSIS +Deletes the specified Certificate. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzContainerAppsApiConnectedEnvironmentsCertificate -CertificateName + -ConnectedEnvironmentName -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzContainerAppsApiConnectedEnvironmentsCertificate -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deletes the specified Certificate. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -CertificateName +Name of the Certificate. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConnectedEnvironmentName +Name of the Connected Environment. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: DeleteViaIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md b/swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md new file mode 100644 index 000000000000..d06e233c8ce7 --- /dev/null +++ b/swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md @@ -0,0 +1,234 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapiconnectedenvironmentsdaprcomponent +schema: 2.0.0 +--- + +# Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent + +## SYNOPSIS +Delete a Dapr Component from a connected environment. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent -ComponentName + -ConnectedEnvironmentName -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete a Dapr Component from a connected environment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ComponentName +Name of the Dapr Component. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConnectedEnvironmentName +Name of the connected environment. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: DeleteViaIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.md b/swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.md new file mode 100644 index 000000000000..3cd8b05fbbcf --- /dev/null +++ b/swaggerci/app/docs/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.md @@ -0,0 +1,234 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapiconnectedenvironmentsstorage +schema: 2.0.0 +--- + +# Remove-AzContainerAppsApiConnectedEnvironmentsStorage + +## SYNOPSIS +Delete storage for a connectedEnvironment. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzContainerAppsApiConnectedEnvironmentsStorage -ConnectedEnvironmentName + -ResourceGroupName -StorageName [-SubscriptionId ] [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzContainerAppsApiConnectedEnvironmentsStorage -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete storage for a connectedEnvironment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ConnectedEnvironmentName +Name of the Environment. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: DeleteViaIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StorageName +Name of the storage. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Remove-AzContainerAppsApiContainerApp.md b/swaggerci/app/docs/Remove-AzContainerAppsApiContainerApp.md new file mode 100644 index 000000000000..b7604a7d1037 --- /dev/null +++ b/swaggerci/app/docs/Remove-AzContainerAppsApiContainerApp.md @@ -0,0 +1,248 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapicontainerapp +schema: 2.0.0 +--- + +# Remove-AzContainerAppsApiContainerApp + +## SYNOPSIS +Delete a Container App. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzContainerAppsApiContainerApp -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzContainerAppsApiContainerApp -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete a Container App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ContainerAppName + +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Remove-AzContainerAppsApiContainerAppsAuthConfig.md b/swaggerci/app/docs/Remove-AzContainerAppsApiContainerAppsAuthConfig.md new file mode 100644 index 000000000000..de33ca1ea73b --- /dev/null +++ b/swaggerci/app/docs/Remove-AzContainerAppsApiContainerAppsAuthConfig.md @@ -0,0 +1,234 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapicontainerappsauthconfig +schema: 2.0.0 +--- + +# Remove-AzContainerAppsApiContainerAppsAuthConfig + +## SYNOPSIS +Delete a Container App AuthConfig. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzContainerAppsApiContainerAppsAuthConfig -AuthConfigName -ContainerAppName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzContainerAppsApiContainerAppsAuthConfig -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete a Container App AuthConfig. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AuthConfigName +Name of the Container App AuthConfig. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ContainerAppName +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: DeleteViaIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Remove-AzContainerAppsApiContainerAppsSourceControl.md b/swaggerci/app/docs/Remove-AzContainerAppsApiContainerAppsSourceControl.md new file mode 100644 index 000000000000..b5de15b605ab --- /dev/null +++ b/swaggerci/app/docs/Remove-AzContainerAppsApiContainerAppsSourceControl.md @@ -0,0 +1,264 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapicontainerappssourcecontrol +schema: 2.0.0 +--- + +# Remove-AzContainerAppsApiContainerAppsSourceControl + +## SYNOPSIS +Delete a Container App SourceControl. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzContainerAppsApiContainerAppsSourceControl -ContainerAppName -ResourceGroupName + -SourceControlName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzContainerAppsApiContainerAppsSourceControl -InputObject + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete a Container App SourceControl. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ContainerAppName +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SourceControlName +Name of the Container App SourceControl. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Remove-AzContainerAppsApiDaprComponent.md b/swaggerci/app/docs/Remove-AzContainerAppsApiDaprComponent.md new file mode 100644 index 000000000000..29c88f74f6f0 --- /dev/null +++ b/swaggerci/app/docs/Remove-AzContainerAppsApiDaprComponent.md @@ -0,0 +1,234 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapidaprcomponent +schema: 2.0.0 +--- + +# Remove-AzContainerAppsApiDaprComponent + +## SYNOPSIS +Delete a Dapr Component from a Managed Environment. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzContainerAppsApiDaprComponent -ComponentName -EnvironmentName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzContainerAppsApiDaprComponent -InputObject [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete a Dapr Component from a Managed Environment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ComponentName +Name of the Dapr Component. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Managed Environment. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: DeleteViaIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Remove-AzContainerAppsApiManagedCertificate.md b/swaggerci/app/docs/Remove-AzContainerAppsApiManagedCertificate.md new file mode 100644 index 000000000000..d5dcc4c027b8 --- /dev/null +++ b/swaggerci/app/docs/Remove-AzContainerAppsApiManagedCertificate.md @@ -0,0 +1,234 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapimanagedcertificate +schema: 2.0.0 +--- + +# Remove-AzContainerAppsApiManagedCertificate + +## SYNOPSIS +Deletes the specified Managed Certificate. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzContainerAppsApiManagedCertificate -EnvironmentName -Name + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzContainerAppsApiManagedCertificate -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deletes the specified Managed Certificate. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Managed Environment. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the Managed Certificate. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ManagedCertificateName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Remove-AzContainerAppsApiManagedEnvironment.md b/swaggerci/app/docs/Remove-AzContainerAppsApiManagedEnvironment.md new file mode 100644 index 000000000000..220ed10bc6fb --- /dev/null +++ b/swaggerci/app/docs/Remove-AzContainerAppsApiManagedEnvironment.md @@ -0,0 +1,249 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapimanagedenvironment +schema: 2.0.0 +--- + +# Remove-AzContainerAppsApiManagedEnvironment + +## SYNOPSIS +Delete a Managed Environment if it does not have any container apps. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzContainerAppsApiManagedEnvironment -EnvironmentName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzContainerAppsApiManagedEnvironment -InputObject + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete a Managed Environment if it does not have any container apps. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Environment. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Remove-AzContainerAppsApiManagedEnvironmentsStorage.md b/swaggerci/app/docs/Remove-AzContainerAppsApiManagedEnvironmentsStorage.md new file mode 100644 index 000000000000..d5b13c2cabfa --- /dev/null +++ b/swaggerci/app/docs/Remove-AzContainerAppsApiManagedEnvironmentsStorage.md @@ -0,0 +1,234 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapimanagedenvironmentsstorage +schema: 2.0.0 +--- + +# Remove-AzContainerAppsApiManagedEnvironmentsStorage + +## SYNOPSIS +Delete storage for a managedEnvironment. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzContainerAppsApiManagedEnvironmentsStorage -EnvironmentName -ResourceGroupName + -StorageName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzContainerAppsApiManagedEnvironmentsStorage -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete storage for a managedEnvironment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Environment. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: DeleteViaIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StorageName +Name of the storage. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Restart-AzContainerAppsApiContainerAppRevision.md b/swaggerci/app/docs/Restart-AzContainerAppsApiContainerAppRevision.md new file mode 100644 index 000000000000..44b87e67e5ba --- /dev/null +++ b/swaggerci/app/docs/Restart-AzContainerAppsApiContainerAppRevision.md @@ -0,0 +1,234 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/restart-azcontainerappsapicontainerapprevision +schema: 2.0.0 +--- + +# Restart-AzContainerAppsApiContainerAppRevision + +## SYNOPSIS +Restarts a revision for a Container App + +## SYNTAX + +### Restart (Default) +``` +Restart-AzContainerAppsApiContainerAppRevision -ContainerAppName -ResourceGroupName + -RevisionName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### RestartViaIdentity +``` +Restart-AzContainerAppsApiContainerAppRevision -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Restarts a revision for a Container App + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ContainerAppName +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: Restart +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.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: RestartViaIdentity +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Restart +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RevisionName +Name of the Container App Revision. + +```yaml +Type: System.String +Parameter Sets: Restart +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.md b/swaggerci/app/docs/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.md new file mode 100644 index 000000000000..d1fce83260b9 --- /dev/null +++ b/swaggerci/app/docs/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.md @@ -0,0 +1,270 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/test-azcontainerappsapiconnectedenvironmentnameavailability +schema: 2.0.0 +--- + +# Test-AzContainerAppsApiConnectedEnvironmentNameAvailability + +## SYNOPSIS +Checks if resource connectedEnvironmentName is available. + +## SYNTAX + +### CheckExpanded (Default) +``` +Test-AzContainerAppsApiConnectedEnvironmentNameAvailability -ConnectedEnvironmentName + -ResourceGroupName [-SubscriptionId ] [-Name ] [-Type ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### Check +``` +Test-AzContainerAppsApiConnectedEnvironmentNameAvailability -ConnectedEnvironmentName + -ResourceGroupName -CheckNameAvailabilityRequest + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### CheckViaIdentity +``` +Test-AzContainerAppsApiConnectedEnvironmentNameAvailability -InputObject + -CheckNameAvailabilityRequest [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +### CheckViaIdentityExpanded +``` +Test-AzContainerAppsApiConnectedEnvironmentNameAvailability -InputObject + [-Name ] [-Type ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Checks if resource connectedEnvironmentName is available. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -CheckNameAvailabilityRequest +The check availability request body. +To construct, see NOTES section for CHECKNAMEAVAILABILITYREQUEST properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest +Parameter Sets: Check, CheckViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ConnectedEnvironmentName +Name of the Managed Environment. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: CheckViaIdentity, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the resource for which availability needs to be checked. + +```yaml +Type: System.String +Parameter Sets: CheckExpanded, CheckViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Type +The resource type. + +```yaml +Type: System.String +Parameter Sets: CheckExpanded, CheckViaIdentityExpanded +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.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + +## 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. + + +`CHECKNAMEAVAILABILITYREQUEST `: The check availability request body. + - `[Name ]`: The name of the resource for which availability needs to be checked. + - `[Type ]`: The resource type. + +`INPUTOBJECT `: Identity Parameter + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Test-AzContainerAppsApiNamespaceNameAvailability.md b/swaggerci/app/docs/Test-AzContainerAppsApiNamespaceNameAvailability.md new file mode 100644 index 000000000000..9b5597077f42 --- /dev/null +++ b/swaggerci/app/docs/Test-AzContainerAppsApiNamespaceNameAvailability.md @@ -0,0 +1,270 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/test-azcontainerappsapinamespacenameavailability +schema: 2.0.0 +--- + +# Test-AzContainerAppsApiNamespaceNameAvailability + +## SYNOPSIS +Checks if resource name is available. + +## SYNTAX + +### CheckExpanded (Default) +``` +Test-AzContainerAppsApiNamespaceNameAvailability -EnvironmentName -ResourceGroupName + [-SubscriptionId ] [-Name ] [-Type ] [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +### Check +``` +Test-AzContainerAppsApiNamespaceNameAvailability -EnvironmentName -ResourceGroupName + -CheckNameAvailabilityRequest [-SubscriptionId ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### CheckViaIdentity +``` +Test-AzContainerAppsApiNamespaceNameAvailability -InputObject + -CheckNameAvailabilityRequest [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +### CheckViaIdentityExpanded +``` +Test-AzContainerAppsApiNamespaceNameAvailability -InputObject [-Name ] + [-Type ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Checks if resource name is available. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -CheckNameAvailabilityRequest +The check availability request body. +To construct, see NOTES section for CHECKNAMEAVAILABILITYREQUEST properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest +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 +``` + +### -EnvironmentName +Name of the Managed Environment. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +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.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: CheckViaIdentity, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the resource for which availability needs to be checked. + +```yaml +Type: System.String +Parameter Sets: CheckExpanded, CheckViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Type +The resource type. + +```yaml +Type: System.String +Parameter Sets: CheckExpanded, CheckViaIdentityExpanded +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.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + +## 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. + + +`CHECKNAMEAVAILABILITYREQUEST `: The check availability request body. + - `[Name ]`: The name of the resource for which availability needs to be checked. + - `[Type ]`: The resource type. + +`INPUTOBJECT `: Identity Parameter + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Update-AzContainerAppsApiCertificate.md b/swaggerci/app/docs/Update-AzContainerAppsApiCertificate.md new file mode 100644 index 000000000000..82b576484697 --- /dev/null +++ b/swaggerci/app/docs/Update-AzContainerAppsApiCertificate.md @@ -0,0 +1,236 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapicertificate +schema: 2.0.0 +--- + +# Update-AzContainerAppsApiCertificate + +## SYNOPSIS +Patches a certificate. +Currently only patching of tags is supported + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzContainerAppsApiCertificate -EnvironmentName -Name -ResourceGroupName + [-SubscriptionId ] [-Tag ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzContainerAppsApiCertificate -InputObject [-Tag ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Patches a certificate. +Currently only patching of tags is supported + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Managed Environment. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the Certificate. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: CertificateName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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 +Application-specific metadata in the form of key-value pairs. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.md b/swaggerci/app/docs/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.md new file mode 100644 index 000000000000..f50f6a9c9033 --- /dev/null +++ b/swaggerci/app/docs/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.md @@ -0,0 +1,236 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapiconnectedenvironmentscertificate +schema: 2.0.0 +--- + +# Update-AzContainerAppsApiConnectedEnvironmentsCertificate + +## SYNOPSIS +Patches a certificate. +Currently only patching of tags is supported + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzContainerAppsApiConnectedEnvironmentsCertificate -CertificateName + -ConnectedEnvironmentName -ResourceGroupName [-SubscriptionId ] [-Tag ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzContainerAppsApiConnectedEnvironmentsCertificate -InputObject + [-Tag ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Patches a certificate. +Currently only patching of tags is supported + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -CertificateName +Name of the Certificate. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConnectedEnvironmentName +Name of the Connected Environment. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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 +Application-specific metadata in the form of key-value pairs. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Update-AzContainerAppsApiContainerApp.md b/swaggerci/app/docs/Update-AzContainerAppsApiContainerApp.md new file mode 100644 index 000000000000..0d73304429a2 --- /dev/null +++ b/swaggerci/app/docs/Update-AzContainerAppsApiContainerApp.md @@ -0,0 +1,922 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapicontainerapp +schema: 2.0.0 +--- + +# Update-AzContainerAppsApiContainerApp + +## SYNOPSIS +Patches a Container App using JSON Merge Patch + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzContainerAppsApiContainerApp -Name -ResourceGroupName -Location + [-SubscriptionId ] [-ConfigurationActiveRevisionsMode ] + [-ConfigurationMaxInactiveRevision ] [-ConfigurationRegistry ] + [-ConfigurationSecret ] [-DaprAppId ] [-DaprAppPort ] + [-DaprAppProtocol ] [-DaprEnableApiLogging] [-DaprEnabled] [-DaprHttpMaxRequestSize ] + [-DaprHttpReadBufferSize ] [-DaprLogLevel ] [-EnvironmentId ] + [-ExtendedLocationName ] [-ExtendedLocationType ] + [-IdentityType ] [-IdentityUserAssignedIdentity ] + [-IngressAllowInsecure] [-IngressCustomDomain ] [-IngressExposedPort ] + [-IngressExternal] [-IngressIPSecurityRestriction ] + [-IngressTargetPort ] [-IngressTraffic ] + [-IngressTransport ] [-ManagedEnvironmentId ] [-ScaleMaxReplica ] + [-ScaleMinReplica ] [-ScaleRule ] [-Tag ] [-TemplateContainer ] + [-TemplateInitContainer ] [-TemplateRevisionSuffix ] [-TemplateVolume ] + [-WorkloadProfileType ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzContainerAppsApiContainerApp -InputObject -Location + [-ConfigurationActiveRevisionsMode ] [-ConfigurationMaxInactiveRevision ] + [-ConfigurationRegistry ] [-ConfigurationSecret ] [-DaprAppId ] + [-DaprAppPort ] [-DaprAppProtocol ] [-DaprEnableApiLogging] [-DaprEnabled] + [-DaprHttpMaxRequestSize ] [-DaprHttpReadBufferSize ] [-DaprLogLevel ] + [-EnvironmentId ] [-ExtendedLocationName ] [-ExtendedLocationType ] + [-IdentityType ] [-IdentityUserAssignedIdentity ] + [-IngressAllowInsecure] [-IngressCustomDomain ] [-IngressExposedPort ] + [-IngressExternal] [-IngressIPSecurityRestriction ] + [-IngressTargetPort ] [-IngressTraffic ] + [-IngressTransport ] [-ManagedEnvironmentId ] [-ScaleMaxReplica ] + [-ScaleMinReplica ] [-ScaleRule ] [-Tag ] [-TemplateContainer ] + [-TemplateInitContainer ] [-TemplateRevisionSuffix ] [-TemplateVolume ] + [-WorkloadProfileType ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Patches a Container App using JSON Merge Patch + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConfigurationActiveRevisionsMode +ActiveRevisionsMode controls how active revisions are handled for the Container app:\\Multiple: multiple revisions can be active.\\Single: Only one revision can be active at a time. +Revision weights can not be used in this mode. +If no value if provided, this is the default.\\ + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConfigurationMaxInactiveRevision +Optional. +Max inactive revisions a Container App can have. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConfigurationRegistry +Collection of private container registry credentials for containers used by the Container app +To construct, see NOTES section for CONFIGURATIONREGISTRY properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ConfigurationSecret +Collection of secrets used by a Container app +To construct, see NOTES section for CONFIGURATIONSECRET properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprAppId +Dapr application identifier + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprAppPort +Tells Dapr which port your application is listening on + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprAppProtocol +Tells Dapr which protocol your application is using. +Valid options are http and grpc. +Default is http + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprEnableApiLogging +Enables API logging for the Dapr sidecar + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprEnabled +Boolean indicating if the Dapr side car 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 +``` + +### -DaprHttpMaxRequestSize +Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. +Default is 4 MB. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprHttpReadBufferSize +Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. +Default is 65KB. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprLogLevel +Sets the log level for the Dapr sidecar. +Allowed values are debug, info, warn, error. +Default is info. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel +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 +``` + +### -EnvironmentId +Resource ID of environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExtendedLocationName +The name of the extended location. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExtendedLocationType +The type of the extended location. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityType +Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityUserAssignedIdentity +The set of user assigned identities associated with the resource. +The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. +The dictionary values can be empty objects ({}) in requests. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressAllowInsecure +Bool indicating if HTTP connections to is allowed. +If set to false HTTP connections are automatically redirected to HTTPS connections + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressCustomDomain +custom domain bindings for Container Apps' hostnames. +To construct, see NOTES section for INGRESSCUSTOMDOMAIN properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressExposedPort +Exposed Port in containers for TCP traffic from ingress + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressExternal +Bool indicating if app exposes an external http 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 +``` + +### -IngressIPSecurityRestriction +Rules to restrict incoming IP address. +To construct, see NOTES section for INGRESSIPSECURITYRESTRICTION properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressTargetPort +Target Port in containers for traffic from ingress + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressTraffic +Traffic weights for app's revisions +To construct, see NOTES section for INGRESSTRAFFIC properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressTransport +Ingress transport protocol + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod +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.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Location +The geo-location where the resource lives + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ManagedEnvironmentId +Deprecated. +Resource ID of the Container App's environment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the Container App. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: ContainerAppName + +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. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScaleMaxReplica +Optional. +Maximum number of container replicas. +Defaults to 10 if not set. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScaleMinReplica +Optional. +Minimum number of container replicas. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScaleRule +Scaling rules. +To construct, see NOTES section for SCALERULE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Resource tags. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TemplateContainer +List of container definitions for the Container App. +To construct, see NOTES section for TEMPLATECONTAINER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TemplateInitContainer +List of specialized containers that run before app containers. +To construct, see NOTES section for TEMPLATEINITCONTAINER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TemplateRevisionSuffix +User friendly suffix that is appended to the revision name + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TemplateVolume +List of volume definitions for the Container App. +To construct, see NOTES section for TEMPLATEVOLUME properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkloadProfileType +Workload profile type to pin for container app execution. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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. + + +`CONFIGURATIONREGISTRY `: Collection of private container registry credentials for containers used by the Container app + - `[Identity ]`: A Managed Identity to use to authenticate with Azure Container Registry. For user-assigned identities, use the full user-assigned identity Resource ID. For system-assigned identities, use 'system' + - `[PasswordSecretRef ]`: The name of the Secret that contains the registry login password + - `[Server ]`: Container Registry Server + - `[Username ]`: Container Registry Username + +`CONFIGURATIONSECRET `: Collection of secrets used by a Container app + - `[Name ]`: Secret Name. + - `[Value ]`: Secret Value. + +`INGRESSCUSTOMDOMAIN `: custom domain bindings for Container Apps' hostnames. + - `CertificateId `: Resource Id of the Certificate to be bound to this hostname. Must exist in the Managed Environment. + - `Name `: Hostname. + - `[BindingType ]`: Custom Domain binding type. + +`INGRESSIPSECURITYRESTRICTION `: Rules to restrict incoming IP address. + - `Action `: Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or ALL Deny + - `IPAddressRange `: CIDR notation to match incoming IP address + - `Name `: Name for the IP restriction rule. + - `[Description ]`: Describe the IP restriction rule that is being sent to the container-app. This is an optional field. + +`INGRESSTRAFFIC `: Traffic weights for app's revisions + - `[Label ]`: Associates a traffic label with a revision + - `[LatestRevision ]`: Indicates that the traffic weight belongs to a latest stable revision + - `[RevisionName ]`: Name of a revision + - `[Weight ]`: Traffic weight assigned to a revision + +`INPUTOBJECT `: Identity Parameter + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +`SCALERULE `: Scaling rules. + - `[AzureQueueAuth ]`: Authentication secrets for the queue scale rule. + - `[SecretRef ]`: Name of the Container App secret from which to pull the auth params. + - `[TriggerParameter ]`: Trigger Parameter that uses the secret + - `[AzureQueueLength ]`: Queue length. + - `[AzureQueueName ]`: Queue name. + - `[CustomAuth ]`: Authentication secrets for the custom scale rule. + - `[CustomMetadata ]`: Metadata properties to describe custom scale rule. + - `[(Any) ]`: This indicates any property can be added to this object. + - `[CustomType ]`: Type of the custom scale rule eg: azure-servicebus, redis etc. + - `[HttpAuth ]`: Authentication secrets for the custom scale rule. + - `[HttpMetadata ]`: Metadata properties to describe http scale rule. + - `[(Any) ]`: This indicates any property can be added to this object. + - `[Name ]`: Scale Rule Name + - `[TcpAuth ]`: Authentication secrets for the tcp scale rule. + - `[TcpMetadata ]`: Metadata properties to describe tcp scale rule. + - `[(Any) ]`: This indicates any property can be added to this object. + +`TEMPLATECONTAINER `: List of container definitions for the Container App. + - `[Arg ]`: Container start command arguments. + - `[Command ]`: Container start command. + - `[Env ]`: Container environment variables. + - `[Name ]`: Environment variable name. + - `[SecretRef ]`: Name of the Container App secret from which to pull the environment variable value. + - `[Value ]`: Non-secret environment variable value. + - `[Image ]`: Container image tag. + - `[Name ]`: Custom container name. + - `[ResourceCpu ]`: Required CPU in cores, e.g. 0.5 + - `[ResourceMemory ]`: Required memory, e.g. "250Mb" + - `[VolumeMount ]`: Container volume mounts. + - `[MountPath ]`: Path within the container at which the volume should be mounted.Must not contain ':'. + - `[VolumeName ]`: This must match the Name of a Volume. + - `[Probe ]`: List of probes for the container. + - `[FailureThreshold ]`: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. Maximum value is 10. + - `[HttpGetHost ]`: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + - `[HttpGetHttpHeader ]`: Custom headers to set in the request. HTTP allows repeated headers. + - `Name `: The header field name + - `Value `: The header field value + - `[HttpGetPath ]`: Path to access on the HTTP server. + - `[HttpGetPort ]`: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + - `[HttpGetScheme ]`: Scheme to use for connecting to the host. Defaults to HTTP. + - `[InitialDelaySecond ]`: Number of seconds after the container has started before liveness probes are initiated. Minimum value is 1. Maximum value is 60. + - `[PeriodSecond ]`: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value is 240. + - `[SuccessThreshold ]`: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. Maximum value is 10. + - `[TcpSocketHost ]`: Optional: Host name to connect to, defaults to the pod IP. + - `[TcpSocketPort ]`: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + - `[TerminationGracePeriodSecond ]`: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. Maximum value is 3600 seconds (1 hour) + - `[TimeoutSecond ]`: Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 240. + - `[Type ]`: The type of probe. + +`TEMPLATEINITCONTAINER `: List of specialized containers that run before app containers. + - `[Arg ]`: Container start command arguments. + - `[Command ]`: Container start command. + - `[Env ]`: Container environment variables. + - `[Name ]`: Environment variable name. + - `[SecretRef ]`: Name of the Container App secret from which to pull the environment variable value. + - `[Value ]`: Non-secret environment variable value. + - `[Image ]`: Container image tag. + - `[Name ]`: Custom container name. + - `[ResourceCpu ]`: Required CPU in cores, e.g. 0.5 + - `[ResourceMemory ]`: Required memory, e.g. "250Mb" + - `[VolumeMount ]`: Container volume mounts. + - `[MountPath ]`: Path within the container at which the volume should be mounted.Must not contain ':'. + - `[VolumeName ]`: This must match the Name of a Volume. + +`TEMPLATEVOLUME `: List of volume definitions for the Container App. + - `[Name ]`: Volume name. + - `[StorageName ]`: Name of storage resource. No need to provide for EmptyDir. + - `[StorageType ]`: Storage type for the volume. If not provided, use EmptyDir. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Update-AzContainerAppsApiManagedCertificate.md b/swaggerci/app/docs/Update-AzContainerAppsApiManagedCertificate.md new file mode 100644 index 000000000000..dd3d003e68ec --- /dev/null +++ b/swaggerci/app/docs/Update-AzContainerAppsApiManagedCertificate.md @@ -0,0 +1,236 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapimanagedcertificate +schema: 2.0.0 +--- + +# Update-AzContainerAppsApiManagedCertificate + +## SYNOPSIS +Patches a managed certificate. +Oly patching of tags is supported + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzContainerAppsApiManagedCertificate -EnvironmentName -Name + -ResourceGroupName [-SubscriptionId ] [-Tag ] [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzContainerAppsApiManagedCertificate -InputObject [-Tag ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Patches a managed certificate. +Oly patching of tags is supported + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentName +Name of the Managed Environment. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the Managed Certificate. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: ManagedCertificateName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```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 +Application-specific metadata in the form of key-value pairs. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +## RELATED LINKS + diff --git a/swaggerci/app/docs/Update-AzContainerAppsApiManagedEnvironment.md b/swaggerci/app/docs/Update-AzContainerAppsApiManagedEnvironment.md new file mode 100644 index 000000000000..8b70fa7d9a2b --- /dev/null +++ b/swaggerci/app/docs/Update-AzContainerAppsApiManagedEnvironment.md @@ -0,0 +1,583 @@ +--- +external help file: +Module Name: Az.ContainerAppsApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapimanagedenvironment +schema: 2.0.0 +--- + +# Update-AzContainerAppsApiManagedEnvironment + +## SYNOPSIS +Patches a Managed Environment using JSON Merge Patch + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzContainerAppsApiManagedEnvironment -EnvironmentName -ResourceGroupName + -Location [-SubscriptionId ] [-AppLogConfigurationDestination ] + [-CustomDomainConfigurationCertificatePasswordInputFile ] + [-CustomDomainConfigurationCertificateValueInputFile ] [-CustomDomainConfigurationDnsSuffix ] + [-DaprAiConnectionString ] [-DaprAiInstrumentationKey ] + [-LogAnalyticConfigurationCustomerId ] [-LogAnalyticConfigurationSharedKey ] + [-OutboundSettingOutBoundType ] + [-OutboundSettingVirtualNetworkApplianceIP ] [-SkuName ] [-Tag ] + [-VnetConfigurationDockerBridgeCidr ] [-VnetConfigurationInfrastructureSubnetId ] + [-VnetConfigurationInternal] [-VnetConfigurationPlatformReservedCidr ] + [-VnetConfigurationPlatformReservedDnsIP ] [-VnetConfigurationRuntimeSubnetId ] + [-WorkloadProfile ] [-ZoneRedundant] [-DefaultProfile ] [-AsJob] [-NoWait] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzContainerAppsApiManagedEnvironment -InputObject -Location + [-AppLogConfigurationDestination ] [-CustomDomainConfigurationCertificatePasswordInputFile ] + [-CustomDomainConfigurationCertificateValueInputFile ] [-CustomDomainConfigurationDnsSuffix ] + [-DaprAiConnectionString ] [-DaprAiInstrumentationKey ] + [-LogAnalyticConfigurationCustomerId ] [-LogAnalyticConfigurationSharedKey ] + [-OutboundSettingOutBoundType ] + [-OutboundSettingVirtualNetworkApplianceIP ] [-SkuName ] [-Tag ] + [-VnetConfigurationDockerBridgeCidr ] [-VnetConfigurationInfrastructureSubnetId ] + [-VnetConfigurationInternal] [-VnetConfigurationPlatformReservedCidr ] + [-VnetConfigurationPlatformReservedDnsIP ] [-VnetConfigurationRuntimeSubnetId ] + [-WorkloadProfile ] [-ZoneRedundant] [-DefaultProfile ] [-AsJob] [-NoWait] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Patches a Managed Environment using JSON Merge Patch + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppLogConfigurationDestination +Logs destination + +```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 +``` + +### -CustomDomainConfigurationCertificatePasswordInputFile +Input File for CustomDomainConfigurationCertificatePassword (Certificate password) + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CustomDomainConfigurationCertificateValueInputFile +Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob) + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CustomDomainConfigurationDnsSuffix +Dns suffix for the environment domain + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprAiConnectionString +Application Insights connection string used by Dapr to export Service to Service communication telemetry + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DaprAiInstrumentationKey +Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + +```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 +``` + +### -EnvironmentName +Name of the Environment. + +```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.ContainerAppsApi.Models.IContainerAppsApiIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Location +The geo-location where the resource lives + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogAnalyticConfigurationCustomerId +Log analytics customer id + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogAnalyticConfigurationSharedKey +Log analytics customer key + +```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 +``` + +### -OutboundSettingOutBoundType +Outbound type for the cluster + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OutboundSettingVirtualNetworkApplianceIP +Virtual Appliance IP used as the Egress controller for the Environment + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +The name is case insensitive. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +Name of the Sku. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +The ID of the target subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Resource tags. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetConfigurationDockerBridgeCidr +CIDR notation IP range assigned to the Docker bridge, network. +Must not overlap with any other provided IP ranges. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetConfigurationInfrastructureSubnetId +Resource ID of a subnet for infrastructure components. +This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. +Must not overlap with any other provided IP ranges. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetConfigurationInternal +Boolean indicating the environment only has an internal load balancer. +These environments do not have a public static IP resource. +They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetConfigurationPlatformReservedCidr +IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. +Must not overlap with any other provided IP ranges. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetConfigurationPlatformReservedDnsIP +An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetConfigurationRuntimeSubnetId +Resource ID of a subnet that Container App containers are injected into. +This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. +Must not overlap with any other provided IP ranges. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkloadProfile +Workload profiles configured for the Managed Environment. +To construct, see NOTES section for WORKLOADPROFILE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ZoneRedundant +Whether or not this Managed Environment is zone-redundant. + +```yaml +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.ContainerAppsApi.Models.IContainerAppsApiIdentity + +## 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 + - `[AuthConfigName ]`: Name of the Container App AuthConfig. + - `[CertificateName ]`: Name of the Certificate. + - `[ComponentName ]`: Name of the Dapr Component. + - `[ConnectedEnvironmentName ]`: Name of the connectedEnvironment. + - `[ContainerAppName ]`: Name of the Container App. + - `[DetectorName ]`: Name of the Container App Detector. + - `[EnvironmentName ]`: Name of the Environment. + - `[Id ]`: Resource identity path + - `[Location ]`: The name of Azure region. + - `[ManagedCertificateName ]`: Name of the Managed Certificate. + - `[ReplicaName ]`: Name of the Container App Revision Replica. + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[RevisionName ]`: Name of the Container App Revision. + - `[SourceControlName ]`: Name of the Container App SourceControl. + - `[StorageName ]`: Name of the storage. + - `[SubscriptionId ]`: The ID of the target subscription. + +`WORKLOADPROFILE `: Workload profiles configured for the Managed Environment. + - `MaximumCount `: The maximum capacity. + - `MinimumCount `: The minimum capacity. + - `Type `: Workload profile type for the workloads to run on. + +## RELATED LINKS + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiAvailableWorkloadProfile.md b/swaggerci/app/examples/Get-AzContainerAppsApiAvailableWorkloadProfile.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiAvailableWorkloadProfile.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiBillingMeter.md b/swaggerci/app/examples/Get-AzContainerAppsApiBillingMeter.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiBillingMeter.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiCertificate.md b/swaggerci/app/examples/Get-AzContainerAppsApiCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironment.md b/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.md b/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.md b/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md b/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentsStorage.md b/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentsStorage.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiConnectedEnvironmentsStorage.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiContainerApp.md b/swaggerci/app/examples/Get-AzContainerAppsApiContainerApp.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiContainerApp.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppAuthConfig.md b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppAuthConfig.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppAuthConfig.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppAuthToken.md b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppAuthToken.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppAuthToken.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.md b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppDiagnosticDetector.md b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppDiagnosticDetector.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppDiagnosticDetector.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppDiagnosticRevision.md b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppDiagnosticRevision.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppDiagnosticRevision.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppDiagnosticRoot.md b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppDiagnosticRoot.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppDiagnosticRoot.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppRevision.md b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppRevision.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppRevision.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppRevisionReplica.md b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppRevisionReplica.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppRevisionReplica.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppSecret.md b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppSecret.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppSecret.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppSourceControl.md b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppSourceControl.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppSourceControl.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppsAuthConfig.md b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppsAuthConfig.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppsAuthConfig.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppsSourceControl.md b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppsSourceControl.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiContainerAppsSourceControl.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiDaprComponent.md b/swaggerci/app/examples/Get-AzContainerAppsApiDaprComponent.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiDaprComponent.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiDaprComponentSecret.md b/swaggerci/app/examples/Get-AzContainerAppsApiDaprComponentSecret.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiDaprComponentSecret.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiManagedCertificate.md b/swaggerci/app/examples/Get-AzContainerAppsApiManagedCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiManagedCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironment.md b/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentAuthToken.md b/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentAuthToken.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentAuthToken.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.md b/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.md b/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.md b/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentsStorage.md b/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentsStorage.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Get-AzContainerAppsApiManagedEnvironmentsStorage.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Initialize-AzContainerAppsApiContainerAppRevision.md b/swaggerci/app/examples/Initialize-AzContainerAppsApiContainerAppRevision.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Initialize-AzContainerAppsApiContainerAppRevision.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.md b/swaggerci/app/examples/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/New-AzContainerAppsApiCertificate.md b/swaggerci/app/examples/New-AzContainerAppsApiCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/New-AzContainerAppsApiCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironment.md b/swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironmentCertificate.md b/swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironmentCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironmentCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.md b/swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironmentStorage.md b/swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironmentStorage.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/New-AzContainerAppsApiConnectedEnvironmentStorage.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/New-AzContainerAppsApiContainerApp.md b/swaggerci/app/examples/New-AzContainerAppsApiContainerApp.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/New-AzContainerAppsApiContainerApp.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/New-AzContainerAppsApiContainerAppAuthConfig.md b/swaggerci/app/examples/New-AzContainerAppsApiContainerAppAuthConfig.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/New-AzContainerAppsApiContainerAppAuthConfig.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/New-AzContainerAppsApiContainerAppSourceControl.md b/swaggerci/app/examples/New-AzContainerAppsApiContainerAppSourceControl.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/New-AzContainerAppsApiContainerAppSourceControl.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/New-AzContainerAppsApiDaprComponent.md b/swaggerci/app/examples/New-AzContainerAppsApiDaprComponent.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/New-AzContainerAppsApiDaprComponent.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/New-AzContainerAppsApiManagedCertificate.md b/swaggerci/app/examples/New-AzContainerAppsApiManagedCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/New-AzContainerAppsApiManagedCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/New-AzContainerAppsApiManagedEnvironment.md b/swaggerci/app/examples/New-AzContainerAppsApiManagedEnvironment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/New-AzContainerAppsApiManagedEnvironment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/New-AzContainerAppsApiManagedEnvironmentStorage.md b/swaggerci/app/examples/New-AzContainerAppsApiManagedEnvironmentStorage.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/New-AzContainerAppsApiManagedEnvironmentStorage.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Remove-AzContainerAppsApiCertificate.md b/swaggerci/app/examples/Remove-AzContainerAppsApiCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Remove-AzContainerAppsApiCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironment.md b/swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.md b/swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md b/swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.md b/swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Remove-AzContainerAppsApiContainerApp.md b/swaggerci/app/examples/Remove-AzContainerAppsApiContainerApp.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Remove-AzContainerAppsApiContainerApp.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Remove-AzContainerAppsApiContainerAppsAuthConfig.md b/swaggerci/app/examples/Remove-AzContainerAppsApiContainerAppsAuthConfig.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Remove-AzContainerAppsApiContainerAppsAuthConfig.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Remove-AzContainerAppsApiContainerAppsSourceControl.md b/swaggerci/app/examples/Remove-AzContainerAppsApiContainerAppsSourceControl.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Remove-AzContainerAppsApiContainerAppsSourceControl.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Remove-AzContainerAppsApiDaprComponent.md b/swaggerci/app/examples/Remove-AzContainerAppsApiDaprComponent.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Remove-AzContainerAppsApiDaprComponent.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Remove-AzContainerAppsApiManagedCertificate.md b/swaggerci/app/examples/Remove-AzContainerAppsApiManagedCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Remove-AzContainerAppsApiManagedCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Remove-AzContainerAppsApiManagedEnvironment.md b/swaggerci/app/examples/Remove-AzContainerAppsApiManagedEnvironment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Remove-AzContainerAppsApiManagedEnvironment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Remove-AzContainerAppsApiManagedEnvironmentsStorage.md b/swaggerci/app/examples/Remove-AzContainerAppsApiManagedEnvironmentsStorage.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Remove-AzContainerAppsApiManagedEnvironmentsStorage.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Restart-AzContainerAppsApiContainerAppRevision.md b/swaggerci/app/examples/Restart-AzContainerAppsApiContainerAppRevision.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Restart-AzContainerAppsApiContainerAppRevision.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.md b/swaggerci/app/examples/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Test-AzContainerAppsApiNamespaceNameAvailability.md b/swaggerci/app/examples/Test-AzContainerAppsApiNamespaceNameAvailability.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Test-AzContainerAppsApiNamespaceNameAvailability.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Update-AzContainerAppsApiCertificate.md b/swaggerci/app/examples/Update-AzContainerAppsApiCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Update-AzContainerAppsApiCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.md b/swaggerci/app/examples/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Update-AzContainerAppsApiContainerApp.md b/swaggerci/app/examples/Update-AzContainerAppsApiContainerApp.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Update-AzContainerAppsApiContainerApp.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Update-AzContainerAppsApiManagedCertificate.md b/swaggerci/app/examples/Update-AzContainerAppsApiManagedCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Update-AzContainerAppsApiManagedCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/examples/Update-AzContainerAppsApiManagedEnvironment.md b/swaggerci/app/examples/Update-AzContainerAppsApiManagedEnvironment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/app/examples/Update-AzContainerAppsApiManagedEnvironment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/app/export-surface.ps1 b/swaggerci/app/export-surface.ps1 new file mode 100644 index 000000000000..be2a9213324b --- /dev/null +++ b/swaggerci/app/export-surface.ps1 @@ -0,0 +1,33 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$IncludeGeneralParameters, [switch]$UseExpandedFormat) +$ErrorActionPreference = 'Stop' + +$pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path +if(-not $Isolated) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +$dll = Join-Path $PSScriptRoot 'bin/Az.ContainerAppsApi.private.dll' +if(-not (Test-Path $dll)) { + Write-Error "Unable to find output assembly in '$binFolder'." +} +$null = Import-Module -Name $dll + +$moduleName = 'Az.ContainerAppsApi' +$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/app/exports/Get-AzContainerAppsApiAvailableWorkloadProfile.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiAvailableWorkloadProfile.ps1 new file mode 100644 index 000000000000..9c26c1d85c8f --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiAvailableWorkloadProfile.ps1 @@ -0,0 +1,196 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all available workload profiles for a location. +.Description +Get all available workload profiles for a location. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiavailableworkloadprofile +#> +function Get-AzContainerAppsApiAvailableWorkloadProfile { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of Azure region. + ${Location}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiAvailableWorkloadProfile_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiAvailableWorkloadProfile_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiBillingMeter.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiBillingMeter.ps1 new file mode 100644 index 000000000000..c0b4179fc37c --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiBillingMeter.ps1 @@ -0,0 +1,196 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all billingMeters for a location. +.Description +Get all billingMeters for a location. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapibillingmeter +#> +function Get-AzContainerAppsApiBillingMeter { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of Azure region. + ${Location}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiBillingMeter_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiBillingMeter_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiCertificate.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiCertificate.ps1 new file mode 100644 index 000000000000..3a6b32f18c47 --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiCertificate.ps1 @@ -0,0 +1,214 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the specified Certificate. +.Description +Get the specified Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicertificate +#> +function Get-AzContainerAppsApiCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('CertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiCertificate_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiCertificate_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiCertificate_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironment.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironment.ps1 new file mode 100644 index 000000000000..525021dc2145 --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironment.ps1 @@ -0,0 +1,209 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the properties of an connectedEnvironment. +.Description +Get the properties of an connectedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironment +#> +function Get-AzContainerAppsApiConnectedEnvironment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ConnectedEnvironmentName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the connectedEnvironment. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironment_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironment_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironment_List'; + List1 = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironment_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.ps1 new file mode 100644 index 000000000000..52560a4ea4e6 --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.ps1 @@ -0,0 +1,177 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List secrets for a dapr component +.Description +List secrets for a dapr component +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironmentdaprcomponentsecret +#> +function Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the connected environment. + ${ConnectedEnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.ps1 new file mode 100644 index 000000000000..a5e32c773845 --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.ps1 @@ -0,0 +1,213 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the specified Certificate. +.Description +Get the specified Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironmentscertificate +#> +function Get-AzContainerAppsApiConnectedEnvironmentsCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${CertificateName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Connected Environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsCertificate_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsCertificate_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsCertificate_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.ps1 new file mode 100644 index 000000000000..7d013f3d2f2a --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.ps1 @@ -0,0 +1,213 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a dapr component. +.Description +Get a dapr component. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironmentsdaprcomponent +#> +function Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the connected environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentsStorage.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentsStorage.ps1 new file mode 100644 index 000000000000..9a26a1833a9b --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiConnectedEnvironmentsStorage.ps1 @@ -0,0 +1,213 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get storage for a connectedEnvironment. +.Description +Get storage for a connectedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironmentsstorage +#> +function Get-AzContainerAppsApiConnectedEnvironmentsStorage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the storage. + ${StorageName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsStorage_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsStorage_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsStorage_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiContainerApp.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiContainerApp.ps1 new file mode 100644 index 000000000000..6128322274cb --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiContainerApp.ps1 @@ -0,0 +1,216 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the properties of a Container App. +.Description +Get the properties of a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerapp +#> +function Get-AzContainerAppsApiContainerApp { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ContainerAppName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='GetViaIdentity')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerApp_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerApp_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerApp_List'; + List1 = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerApp_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppAuthConfig.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppAuthConfig.ps1 new file mode 100644 index 000000000000..8f59c0944967 --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppAuthConfig.ps1 @@ -0,0 +1,171 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the Container App AuthConfigs in a given resource group. +.Description +Get the Container App AuthConfigs in a given resource group. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappauthconfig +#> +function Get-AzContainerAppsApiContainerAppAuthConfig { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppAuthConfig_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppAuthToken.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppAuthToken.ps1 new file mode 100644 index 000000000000..65bafa5d74db --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppAuthToken.ps1 @@ -0,0 +1,209 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get auth token for a container app +.Description +Get auth token for a container app +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappauthtoken +#> +function Get-AzContainerAppsApiContainerAppAuthToken { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppAuthToken_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppAuthToken_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.ps1 new file mode 100644 index 000000000000..31cedfe27123 --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.ps1 @@ -0,0 +1,177 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Analyzes a custom hostname for a Container App +.Description +Analyzes a custom hostname for a Container App +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappcustomhostnameanalysis +#> +function Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Query')] + [System.String] + # Custom hostname. + ${CustomHostname}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppDiagnosticDetector.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppDiagnosticDetector.ps1 new file mode 100644 index 000000000000..22723109c839 --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppDiagnosticDetector.ps1 @@ -0,0 +1,213 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a diagnostics result of a Container App. +.Description +Get a diagnostics result of a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappdiagnosticdetector +#> +function Get-AzContainerAppsApiContainerAppDiagnosticDetector { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Detector. + ${DetectorName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticDetector_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticDetector_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticDetector_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppDiagnosticRevision.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppDiagnosticRevision.ps1 new file mode 100644 index 000000000000..c7ece91ebabc --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppDiagnosticRevision.ps1 @@ -0,0 +1,219 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a revision of a Container App. +.Description +Get a revision of a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappdiagnosticrevision +#> +function Get-AzContainerAppsApiContainerAppDiagnosticRevision { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Revision. + ${RevisionName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Query')] + [System.String] + # The filter to apply on the operation. + ${Filter}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticRevision_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticRevision_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticRevision_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppDiagnosticRoot.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppDiagnosticRoot.ps1 new file mode 100644 index 000000000000..860529dce18e --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppDiagnosticRoot.ps1 @@ -0,0 +1,209 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the properties of a Container App. +.Description +Get the properties of a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappdiagnosticroot +#> +function Get-AzContainerAppsApiContainerAppDiagnosticRoot { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticRoot_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticRoot_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppRevision.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppRevision.ps1 new file mode 100644 index 000000000000..c7f678de0abe --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppRevision.ps1 @@ -0,0 +1,219 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a revision of a Container App. +.Description +Get a revision of a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerapprevision +#> +function Get-AzContainerAppsApiContainerAppRevision { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Revision. + ${RevisionName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Query')] + [System.String] + # The filter to apply on the operation. + ${Filter}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppRevision_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppRevision_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppRevision_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppRevisionReplica.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppRevisionReplica.ps1 new file mode 100644 index 000000000000..8f53c53e326d --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppRevisionReplica.ps1 @@ -0,0 +1,220 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a replica for a Container App Revision. +.Description +Get a replica for a Container App Revision. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerapprevisionreplica +#> +function Get-AzContainerAppsApiContainerAppRevisionReplica { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Revision Replica. + ${ReplicaName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Revision. + ${RevisionName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppRevisionReplica_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppRevisionReplica_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppRevisionReplica_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppSecret.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppSecret.ps1 new file mode 100644 index 000000000000..395a997ddc11 --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppSecret.ps1 @@ -0,0 +1,171 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List secrets for a container app +.Description +List secrets for a container app +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappsecret +#> +function Get-AzContainerAppsApiContainerAppSecret { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppSecret_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppSourceControl.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppSourceControl.ps1 new file mode 100644 index 000000000000..90eb8523657e --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppSourceControl.ps1 @@ -0,0 +1,171 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the Container App SourceControls in a given resource group. +.Description +Get the Container App SourceControls in a given resource group. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappsourcecontrol +#> +function Get-AzContainerAppsApiContainerAppSourceControl { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppSourceControl_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppsAuthConfig.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppsAuthConfig.ps1 new file mode 100644 index 000000000000..615e9053dd7a --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppsAuthConfig.ps1 @@ -0,0 +1,209 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a AuthConfig of a Container App. +.Description +Get a AuthConfig of a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappsauthconfig +#> +function Get-AzContainerAppsApiContainerAppsAuthConfig { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App AuthConfig. + ${AuthConfigName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppsAuthConfig_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppsAuthConfig_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppsSourceControl.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppsSourceControl.ps1 new file mode 100644 index 000000000000..b836b3431e9a --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiContainerAppsSourceControl.ps1 @@ -0,0 +1,209 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a SourceControl of a Container App. +.Description +Get a SourceControl of a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappssourcecontrol +#> +function Get-AzContainerAppsApiContainerAppsSourceControl { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App SourceControl. + ${SourceControlName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppsSourceControl_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppsSourceControl_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiDaprComponent.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiDaprComponent.ps1 new file mode 100644 index 000000000000..2e658fcf3f0b --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiDaprComponent.ps1 @@ -0,0 +1,213 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a dapr component. +.Description +Get a dapr component. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapidaprcomponent +#> +function Get-AzContainerAppsApiDaprComponent { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiDaprComponent_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiDaprComponent_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiDaprComponent_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiDaprComponentSecret.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiDaprComponentSecret.ps1 new file mode 100644 index 000000000000..e1b08457ac13 --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiDaprComponentSecret.ps1 @@ -0,0 +1,177 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List secrets for a dapr component +.Description +List secrets for a dapr component +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapidaprcomponentsecret +#> +function Get-AzContainerAppsApiDaprComponentSecret { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiDaprComponentSecret_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiManagedCertificate.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiManagedCertificate.ps1 new file mode 100644 index 000000000000..e0654f8fd12e --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiManagedCertificate.ps1 @@ -0,0 +1,214 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the specified Managed Certificate. +.Description +Get the specified Managed Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedcertificate +#> +function Get-AzContainerAppsApiManagedCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ManagedCertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Certificate. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedCertificate_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedCertificate_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedCertificate_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironment.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironment.ps1 new file mode 100644 index 000000000000..334f9aa7098a --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironment.ps1 @@ -0,0 +1,208 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the properties of a Managed Environment used to host container apps. +.Description +Get the properties of a Managed Environment used to host container apps. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironment +#> +function Get-AzContainerAppsApiManagedEnvironment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironment_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironment_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironment_List'; + List1 = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironment_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentAuthToken.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentAuthToken.ps1 new file mode 100644 index 000000000000..91f897ad8b42 --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentAuthToken.ps1 @@ -0,0 +1,203 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Checks if resource name is available. +.Description +Checks if resource name is available. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentauthtoken +#> +function Get-AzContainerAppsApiManagedEnvironmentAuthToken { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentAuthToken_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentAuthToken_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.ps1 new file mode 100644 index 000000000000..1059d0df23b9 --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.ps1 @@ -0,0 +1,215 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the diagnostics data for a Managed Environment used to host container apps. +.Description +Get the diagnostics data for a Managed Environment used to host container apps. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentdiagnosticdetector +#> +function Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics], [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment detector. + ${DetectorName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.ps1 new file mode 100644 index 000000000000..e7bb140753b6 --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.ps1 @@ -0,0 +1,203 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the properties of a Managed Environment used to host container apps. +.Description +Get the properties of a Managed Environment used to host container apps. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentdiagnosticroot +#> +function Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.ps1 new file mode 100644 index 000000000000..e96a5f0436ee --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.ps1 @@ -0,0 +1,171 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all workload Profile States for a Premium Managed Environment. +.Description +Get all workload Profile States for a Premium Managed Environment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentworkloadprofilestate +#> +function Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentsStorage.ps1 b/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentsStorage.ps1 new file mode 100644 index 000000000000..e8d94c1753a0 --- /dev/null +++ b/swaggerci/app/exports/Get-AzContainerAppsApiManagedEnvironmentsStorage.ps1 @@ -0,0 +1,213 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get storage for a managedEnvironment. +.Description +Get storage for a managedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentsstorage +#> +function Get-AzContainerAppsApiManagedEnvironmentsStorage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the storage. + ${StorageName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentsStorage_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentsStorage_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentsStorage_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Initialize-AzContainerAppsApiContainerAppRevision.ps1 b/swaggerci/app/exports/Initialize-AzContainerAppsApiContainerAppRevision.ps1 new file mode 100644 index 000000000000..a6cc7af27ab8 --- /dev/null +++ b/swaggerci/app/exports/Initialize-AzContainerAppsApiContainerAppRevision.ps1 @@ -0,0 +1,215 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Activates a revision for a Container App +.Description +Activates a revision for a Container App +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/initialize-azcontainerappsapicontainerapprevision +#> +function Initialize-AzContainerAppsApiContainerAppRevision { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Activate', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Activate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Activate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Activate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Revision. + ${RevisionName}, + + [Parameter(ParameterSetName='Activate')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ActivateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Activate = 'Az.ContainerAppsApi.private\Initialize-AzContainerAppsApiContainerAppRevision_Activate'; + ActivateViaIdentity = 'Az.ContainerAppsApi.private\Initialize-AzContainerAppsApiContainerAppRevision_ActivateViaIdentity'; + } + if (('Activate') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.ps1 b/swaggerci/app/exports/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.ps1 new file mode 100644 index 000000000000..231789a6f969 --- /dev/null +++ b/swaggerci/app/exports/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.ps1 @@ -0,0 +1,215 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deactivates a revision for a Container App +.Description +Deactivates a revision for a Container App +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/invoke-azcontainerappsapideactivatecontainerapprevision +#> +function Invoke-AzContainerAppsApiDeactivateContainerAppRevision { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Deactivate', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Deactivate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Deactivate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Deactivate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Revision. + ${RevisionName}, + + [Parameter(ParameterSetName='Deactivate')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeactivateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Deactivate = 'Az.ContainerAppsApi.private\Invoke-AzContainerAppsApiDeactivateContainerAppRevision_Deactivate'; + DeactivateViaIdentity = 'Az.ContainerAppsApi.private\Invoke-AzContainerAppsApiDeactivateContainerAppRevision_DeactivateViaIdentity'; + } + if (('Deactivate') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/New-AzContainerAppsApiCertificate.ps1 b/swaggerci/app/exports/New-AzContainerAppsApiCertificate.ps1 new file mode 100644 index 000000000000..e7b00b960cb5 --- /dev/null +++ b/swaggerci/app/exports/New-AzContainerAppsApiCertificate.ps1 @@ -0,0 +1,203 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or Update a Certificate. +.Description +Create or Update a Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapicertificate +#> +function New-AzContainerAppsApiCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(Mandatory)] + [Alias('CertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for Value (PFX or PEM blob) + ${InputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Certificate password. + ${Password}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiCertificate_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironment.ps1 b/swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironment.ps1 new file mode 100644 index 000000000000..7feffefd254f --- /dev/null +++ b/swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironment.ps1 @@ -0,0 +1,240 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Creates or updates an connectedEnvironment. +.Description +Creates or updates an connectedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapiconnectedenvironment +#> +function New-AzContainerAppsApiConnectedEnvironment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ConnectedEnvironmentName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the connectedEnvironment. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for CustomDomainConfigurationCertificatePassword (Certificate password) + ${CustomDomainConfigurationCertificatePasswordInputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob) + ${CustomDomainConfigurationCertificateValueInputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Dns suffix for the environment domain + ${CustomDomainConfigurationDnsSuffix}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Application Insights connection string used by Dapr to export Service to Service communication telemetry + ${DaprAiConnectionString}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The name of the extended location. + ${ExtendedLocationName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes] + # The type of the extended location. + ${ExtendedLocationType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Static IP of the connectedEnvironment + ${StaticIP}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiConnectedEnvironment_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironmentCertificate.ps1 b/swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironmentCertificate.ps1 new file mode 100644 index 000000000000..9eb184a54dff --- /dev/null +++ b/swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironmentCertificate.ps1 @@ -0,0 +1,202 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or Update a Certificate. +.Description +Create or Update a Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapiconnectedenvironmentcertificate +#> +function New-AzContainerAppsApiConnectedEnvironmentCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${CertificateName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Connected Environment. + ${ConnectedEnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for Value (PFX or PEM blob) + ${InputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Certificate password. + ${Password}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiConnectedEnvironmentCertificate_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.ps1 b/swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.ps1 new file mode 100644 index 000000000000..3bd58c756973 --- /dev/null +++ b/swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.ps1 @@ -0,0 +1,243 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Creates or updates a Dapr Component in a connected environment. +.Description +Creates or updates a Dapr Component in a connected environment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +METADATA : Component metadata + [Name ]: Metadata property name. + [SecretRef ]: Name of the Dapr Component secret from which to pull the metadata property value. + [Value ]: Metadata property value. + +SECRET : Collection of secrets used by a Dapr component + [Name ]: Secret Name. + [Value ]: Secret Value. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapiconnectedenvironmentdaprcomponent +#> +function New-AzContainerAppsApiConnectedEnvironmentDaprComponent { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the connected environment. + ${ConnectedEnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Component type + ${ComponentType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Boolean describing if the component errors are ignores + ${IgnoreError}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Initialization timeout + ${InitTimeout}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[]] + # Component metadata + # To construct, see NOTES section for METADATA properties and create a hash table. + ${Metadata}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String[]] + # Names of container apps that can use this Dapr component + ${Scope}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]] + # Collection of secrets used by a Dapr component + # To construct, see NOTES section for SECRET properties and create a hash table. + ${Secret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Name of a Dapr component to retrieve component secrets from + ${SecretStoreComponent}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Component version + ${Version}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiConnectedEnvironmentDaprComponent_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironmentStorage.ps1 b/swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironmentStorage.ps1 new file mode 100644 index 000000000000..bc76f7a1b4a3 --- /dev/null +++ b/swaggerci/app/exports/New-AzContainerAppsApiConnectedEnvironmentStorage.ps1 @@ -0,0 +1,202 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update storage for a connectedEnvironment. +.Description +Create or update storage for a connectedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapiconnectedenvironmentstorage +#> +function New-AzContainerAppsApiConnectedEnvironmentStorage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${ConnectedEnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the storage. + ${StorageName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode] + # Access mode for storage + ${AzureFileAccessMode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Storage account key for azure file. + ${AzureFileAccountKey}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Storage account name for azure file. + ${AzureFileAccountName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Azure file share name. + ${AzureFileShareName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiConnectedEnvironmentStorage_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/New-AzContainerAppsApiContainerApp.ps1 b/swaggerci/app/exports/New-AzContainerAppsApiContainerApp.ps1 new file mode 100644 index 000000000000..97daf2f7fd22 --- /dev/null +++ b/swaggerci/app/exports/New-AzContainerAppsApiContainerApp.ps1 @@ -0,0 +1,543 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update a Container App. +.Description +Create or update a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +CONFIGURATIONREGISTRY : Collection of private container registry credentials for containers used by the Container app + [Identity ]: A Managed Identity to use to authenticate with Azure Container Registry. For user-assigned identities, use the full user-assigned identity Resource ID. For system-assigned identities, use 'system' + [PasswordSecretRef ]: The name of the Secret that contains the registry login password + [Server ]: Container Registry Server + [Username ]: Container Registry Username + +CONFIGURATIONSECRET : Collection of secrets used by a Container app + [Name ]: Secret Name. + [Value ]: Secret Value. + +INGRESSCUSTOMDOMAIN : custom domain bindings for Container Apps' hostnames. + CertificateId : Resource Id of the Certificate to be bound to this hostname. Must exist in the Managed Environment. + Name : Hostname. + [BindingType ]: Custom Domain binding type. + +INGRESSIPSECURITYRESTRICTION : Rules to restrict incoming IP address. + Action : Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or ALL Deny + IPAddressRange : CIDR notation to match incoming IP address + Name : Name for the IP restriction rule. + [Description ]: Describe the IP restriction rule that is being sent to the container-app. This is an optional field. + +INGRESSTRAFFIC : Traffic weights for app's revisions + [Label ]: Associates a traffic label with a revision + [LatestRevision ]: Indicates that the traffic weight belongs to a latest stable revision + [RevisionName ]: Name of a revision + [Weight ]: Traffic weight assigned to a revision + +SCALERULE : Scaling rules. + [AzureQueueAuth ]: Authentication secrets for the queue scale rule. + [SecretRef ]: Name of the Container App secret from which to pull the auth params. + [TriggerParameter ]: Trigger Parameter that uses the secret + [AzureQueueLength ]: Queue length. + [AzureQueueName ]: Queue name. + [CustomAuth ]: Authentication secrets for the custom scale rule. + [CustomMetadata ]: Metadata properties to describe custom scale rule. + [(Any) ]: This indicates any property can be added to this object. + [CustomType ]: Type of the custom scale rule eg: azure-servicebus, redis etc. + [HttpAuth ]: Authentication secrets for the custom scale rule. + [HttpMetadata ]: Metadata properties to describe http scale rule. + [(Any) ]: This indicates any property can be added to this object. + [Name ]: Scale Rule Name + [TcpAuth ]: Authentication secrets for the tcp scale rule. + [TcpMetadata ]: Metadata properties to describe tcp scale rule. + [(Any) ]: This indicates any property can be added to this object. + +TEMPLATECONTAINER : List of container definitions for the Container App. + [Arg ]: Container start command arguments. + [Command ]: Container start command. + [Env ]: Container environment variables. + [Name ]: Environment variable name. + [SecretRef ]: Name of the Container App secret from which to pull the environment variable value. + [Value ]: Non-secret environment variable value. + [Image ]: Container image tag. + [Name ]: Custom container name. + [ResourceCpu ]: Required CPU in cores, e.g. 0.5 + [ResourceMemory ]: Required memory, e.g. "250Mb" + [VolumeMount ]: Container volume mounts. + [MountPath ]: Path within the container at which the volume should be mounted.Must not contain ':'. + [VolumeName ]: This must match the Name of a Volume. + [Probe ]: List of probes for the container. + [FailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. Maximum value is 10. + [HttpGetHost ]: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + [HttpGetHttpHeader ]: Custom headers to set in the request. HTTP allows repeated headers. + Name : The header field name + Value : The header field value + [HttpGetPath ]: Path to access on the HTTP server. + [HttpGetPort ]: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + [HttpGetScheme ]: Scheme to use for connecting to the host. Defaults to HTTP. + [InitialDelaySecond ]: Number of seconds after the container has started before liveness probes are initiated. Minimum value is 1. Maximum value is 60. + [PeriodSecond ]: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value is 240. + [SuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. Maximum value is 10. + [TcpSocketHost ]: Optional: Host name to connect to, defaults to the pod IP. + [TcpSocketPort ]: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + [TerminationGracePeriodSecond ]: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. Maximum value is 3600 seconds (1 hour) + [TimeoutSecond ]: Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 240. + [Type ]: The type of probe. + +TEMPLATEINITCONTAINER : List of specialized containers that run before app containers. + [Arg ]: Container start command arguments. + [Command ]: Container start command. + [Env ]: Container environment variables. + [Name ]: Environment variable name. + [SecretRef ]: Name of the Container App secret from which to pull the environment variable value. + [Value ]: Non-secret environment variable value. + [Image ]: Container image tag. + [Name ]: Custom container name. + [ResourceCpu ]: Required CPU in cores, e.g. 0.5 + [ResourceMemory ]: Required memory, e.g. "250Mb" + [VolumeMount ]: Container volume mounts. + [MountPath ]: Path within the container at which the volume should be mounted.Must not contain ':'. + [VolumeName ]: This must match the Name of a Volume. + +TEMPLATEVOLUME : List of volume definitions for the Container App. + [Name ]: Volume name. + [StorageName ]: Name of storage resource. No need to provide for EmptyDir. + [StorageType ]: Storage type for the volume. If not provided, use EmptyDir. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapicontainerapp +#> +function New-AzContainerAppsApiContainerApp { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ContainerAppName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode] + # ActiveRevisionsMode controls how active revisions are handled for the Container app:Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + # Revision weights can not be used in this mode. + # If no value if provided, this is the default. + ${ConfigurationActiveRevisionsMode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Optional. + # Max inactive revisions a Container App can have. + ${ConfigurationMaxInactiveRevision}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[]] + # Collection of private container registry credentials for containers used by the Container app + # To construct, see NOTES section for CONFIGURATIONREGISTRY properties and create a hash table. + ${ConfigurationRegistry}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]] + # Collection of secrets used by a Container app + # To construct, see NOTES section for CONFIGURATIONSECRET properties and create a hash table. + ${ConfigurationSecret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Dapr application identifier + ${DaprAppId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Tells Dapr which port your application is listening on + ${DaprAppPort}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol] + # Tells Dapr which protocol your application is using. + # Valid options are http and grpc. + # Default is http + ${DaprAppProtocol}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Enables API logging for the Dapr sidecar + ${DaprEnableApiLogging}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Boolean indicating if the Dapr side car is enabled + ${DaprEnabled}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. + # Default is 4 MB. + ${DaprHttpMaxRequestSize}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. + # Default is 65KB. + ${DaprHttpReadBufferSize}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel] + # Sets the log level for the Dapr sidecar. + # Allowed values are debug, info, warn, error. + # Default is info. + ${DaprLogLevel}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Resource ID of environment. + ${EnvironmentId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The name of the extended location. + ${ExtendedLocationName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes] + # The type of the extended location. + ${ExtendedLocationType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType] + # Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The set of user assigned identities associated with the resource. + # The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + # The dictionary values can be empty objects ({}) in requests. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Bool indicating if HTTP connections to is allowed. + # If set to false HTTP connections are automatically redirected to HTTPS connections + ${IngressAllowInsecure}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[]] + # custom domain bindings for Container Apps' hostnames. + # To construct, see NOTES section for INGRESSCUSTOMDOMAIN properties and create a hash table. + ${IngressCustomDomain}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Exposed Port in containers for TCP traffic from ingress + ${IngressExposedPort}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Bool indicating if app exposes an external http endpoint + ${IngressExternal}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[]] + # Rules to restrict incoming IP address. + # To construct, see NOTES section for INGRESSIPSECURITYRESTRICTION properties and create a hash table. + ${IngressIPSecurityRestriction}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Target Port in containers for traffic from ingress + ${IngressTargetPort}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[]] + # Traffic weights for app's revisions + # To construct, see NOTES section for INGRESSTRAFFIC properties and create a hash table. + ${IngressTraffic}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod] + # Ingress transport protocol + ${IngressTransport}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Deprecated. + # Resource ID of the Container App's environment. + ${ManagedEnvironmentId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Optional. + # Maximum number of container replicas. + # Defaults to 10 if not set. + ${ScaleMaxReplica}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Optional. + # Minimum number of container replicas. + ${ScaleMinReplica}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]] + # Scaling rules. + # To construct, see NOTES section for SCALERULE properties and create a hash table. + ${ScaleRule}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[]] + # List of container definitions for the Container App. + # To construct, see NOTES section for TEMPLATECONTAINER properties and create a hash table. + ${TemplateContainer}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[]] + # List of specialized containers that run before app containers. + # To construct, see NOTES section for TEMPLATEINITCONTAINER properties and create a hash table. + ${TemplateInitContainer}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # User friendly suffix that is appended to the revision name + ${TemplateRevisionSuffix}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[]] + # List of volume definitions for the Container App. + # To construct, see NOTES section for TEMPLATEVOLUME properties and create a hash table. + ${TemplateVolume}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Workload profile type to pin for container app execution. + ${WorkloadProfileType}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiContainerApp_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/New-AzContainerAppsApiContainerAppAuthConfig.ps1 b/swaggerci/app/exports/New-AzContainerAppsApiContainerAppAuthConfig.ps1 new file mode 100644 index 000000000000..1bfc5ef0d9eb --- /dev/null +++ b/swaggerci/app/exports/New-AzContainerAppsApiContainerAppAuthConfig.ps1 @@ -0,0 +1,339 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update the AuthConfig for a Container App. +.Description +Create or update the AuthConfig for a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +IDENTITYPROVIDER : The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + [AllowedPrincipalGroup ]: The list of the allowed groups. + [AllowedPrincipalIdentity ]: The list of the allowed identities. + [AppleEnabled ]: false if the Apple provider should not be enabled despite the set registration; otherwise, true. + [AppleLoginScope ]: A list of the scopes that should be requested while authenticating. + [AppleRegistrationClientId ]: The Client ID of the app used for login. + [AppleRegistrationClientSecretSettingName ]: The app setting name that contains the client secret. + [AzureActiveDirectoryEnabled ]: false if the Azure Active Directory provider should not be enabled despite the set registration; otherwise, true. + [AzureActiveDirectoryIsAutoProvisioned ]: Gets a value indicating whether the Azure AD configuration was auto-provisioned using 1st party tooling. This is an internal flag primarily intended to support the Azure Management Portal. Users should not read or write to this property. + [AzureActiveDirectoryRegistrationClientId ]: The Client ID of this relying party application, known as the client_id. This setting is required for enabling OpenID Connection authentication with Azure Active Directory or other 3rd party OpenID Connect providers. More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html + [AzureActiveDirectoryRegistrationClientSecretSettingName ]: The app setting name that contains the client secret of the relying party application. + [AzureActiveDirectoryValidationAllowedAudience ]: The list of audiences that can make successful authentication/authorization requests. + [AzureStaticWebAppEnabled ]: false if the Azure Static Web Apps provider should not be enabled despite the set registration; otherwise, true. + [AzureStaticWebAppsRegistrationClientId ]: The Client ID of the app used for login. + [CustomOpenIdConnectProvider ]: The map of the name of the alias of each custom Open ID Connect provider to the configuration settings of the custom Open ID Connect provider. + [(Any) ]: This indicates any property can be added to this object. + [DefaultAuthorizationPolicyAllowedApplication ]: The configuration settings of the Azure Active Directory allowed applications. + [FacebookEnabled ]: false if the Facebook provider should not be enabled despite the set registration; otherwise, true. + [FacebookGraphApiVersion ]: The version of the Facebook api to be used while logging in. + [FacebookLoginScope ]: A list of the scopes that should be requested while authenticating. + [GitHubEnabled ]: false if the GitHub provider should not be enabled despite the set registration; otherwise, true. + [GitHubLoginScope ]: A list of the scopes that should be requested while authenticating. + [GitHubRegistrationClientId ]: The Client ID of the app used for login. + [GitHubRegistrationClientSecretSettingName ]: The app setting name that contains the client secret. + [GoogleEnabled ]: false if the Google provider should not be enabled despite the set registration; otherwise, true. + [GoogleLoginScope ]: A list of the scopes that should be requested while authenticating. + [GoogleRegistrationClientId ]: The Client ID of the app used for login. + [GoogleRegistrationClientSecretSettingName ]: The app setting name that contains the client secret. + [GoogleValidationAllowedAudience ]: The configuration settings of the allowed list of audiences from which to validate the JWT token. + [JwtClaimCheckAllowedClientApplication ]: The list of the allowed client applications. + [JwtClaimCheckAllowedGroup ]: The list of the allowed groups. + [LoginDisableWwwAuthenticate ]: true if the www-authenticate provider should be omitted from the request; otherwise, false. + [LoginParameter ]: Login parameters to send to the OpenID Connect authorization endpoint when a user logs in. Each parameter must be in the form "key=value". + [RegistrationAppId ]: The App ID of the app used for login. + [RegistrationAppSecretSettingName ]: The app setting name that contains the app secret. + [RegistrationClientSecretCertificateIssuer ]: An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property acts as a replacement for the Client Secret Certificate Thumbprint. It is also optional. + [RegistrationClientSecretCertificateSubjectAlternativeName ]: An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing purposes. This property acts as a replacement for the Client Secret Certificate Thumbprint. It is also optional. + [RegistrationClientSecretCertificateThumbprint ]: An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as a replacement for the Client Secret. It is also optional. + [RegistrationConsumerKey ]: The OAuth 1.0a consumer key of the Twitter application used for sign-in. This setting is required for enabling Twitter Sign-In. Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in + [RegistrationConsumerSecretSettingName ]: The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. + [RegistrationOpenIdIssuer ]: The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. This URI is a case-sensitive identifier for the token issuer. More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html + [TwitterEnabled ]: false if the Twitter provider should not be enabled despite the set registration; otherwise, true. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapicontainerappauthconfig +#> +function New-AzContainerAppsApiContainerAppAuthConfig { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App AuthConfig. + ${AuthConfigName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention] + # The convention used when determining the session cookie's expiration. + ${CookieExpirationConvention}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The time after the request is made when the session cookie should expire. + ${CookieExpirationTimeToExpiration}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention] + # The convention used to determine the url of the request made. + ${ForwardProxyConvention}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The name of the header containing the host of the request. + ${ForwardProxyCustomHostHeaderName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The name of the header containing the scheme of the request. + ${ForwardProxyCustomProtoHeaderName}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String[]] + # The paths for which unauthenticated flow would not be redirected to the login page. + ${GlobalValidationExcludedPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The default authentication provider to use when multiple providers are configured.This setting is only needed if multiple providers are configured and the unauthenticated clientaction is set to "RedirectToLoginPage". + ${GlobalValidationRedirectToProvider}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2] + # The action to take when an unauthenticated client attempts to access the app. + ${GlobalValidationUnauthenticatedClientAction}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, true. + ${HttpSettingRequireHttps}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders] + # The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + # To construct, see NOTES section for IDENTITYPROVIDER properties and create a hash table. + ${IdentityProvider}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String[]] + # External URLs that can be redirected to as part of logging in or logging out of the app. + # Note that the query string part of the URL is ignored.This is an advanced setting typically only needed by Windows Store application backends.Note that URLs within the current domain are always implicitly allowed. + ${LoginAllowedExternalRedirectUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # true if the fragments from the request are preserved after the login request is made; otherwise, false. + ${LoginPreserveUrlFragmentsForLogin}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The time after the request is made when the nonce should expire. + ${NonceExpirationInterval}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # false if the nonce should not be validated while completing the login flow; otherwise, true. + ${NonceValidateNonce}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # true if the Authentication / Authorization feature is enabled for the current app; otherwise, false. + ${PlatformEnabled}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The RuntimeVersion of the Authentication / Authorization feature in use for the current app.The setting in this value can control the behavior of certain features in the Authentication / Authorization module. + ${PlatformRuntimeVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The prefix that should precede all the authentication/authorization paths. + ${RouteApiPrefix}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The endpoint at which a logout request should be made. + ${RouteLogoutEndpoint}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiContainerAppAuthConfig_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/New-AzContainerAppsApiContainerAppSourceControl.ps1 b/swaggerci/app/exports/New-AzContainerAppsApiContainerAppSourceControl.ps1 new file mode 100644 index 000000000000..c8979b34e0e3 --- /dev/null +++ b/swaggerci/app/exports/New-AzContainerAppsApiContainerAppSourceControl.ps1 @@ -0,0 +1,279 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update the SourceControl for a Container App. +.Description +Create or update the SourceControl for a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapicontainerappsourcecontrol +#> +function New-AzContainerAppsApiContainerAppSourceControl { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App SourceControl. + ${SourceControlName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Client Id. + ${AzureCredentialsClientId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Client Secret. + ${AzureCredentialsClientSecret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Subscription Id. + ${AzureCredentialsSubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Tenant Id. + ${AzureCredentialsTenantId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The branch which will trigger the auto deployment + ${Branch}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Context path + ${GithubActionConfigurationContextPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Image name + ${GithubActionConfigurationImage}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Operation system + ${GithubActionConfigurationOS}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Code or Image + ${GithubActionConfigurationPublishType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Runtime stack + ${GithubActionConfigurationRuntimeStack}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Runtime version + ${GithubActionConfigurationRuntimeVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # registry secret. + ${RegistryInfoRegistryPassword}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # registry server Url. + ${RegistryInfoRegistryUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # registry username. + ${RegistryInfoRegistryUserName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The repo url which will be integrated to ContainerApp. + ${RepoUrl}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiContainerAppSourceControl_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/New-AzContainerAppsApiDaprComponent.ps1 b/swaggerci/app/exports/New-AzContainerAppsApiDaprComponent.ps1 new file mode 100644 index 000000000000..28e029283874 --- /dev/null +++ b/swaggerci/app/exports/New-AzContainerAppsApiDaprComponent.ps1 @@ -0,0 +1,243 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Creates or updates a Dapr Component in a Managed Environment. +.Description +Creates or updates a Dapr Component in a Managed Environment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +METADATA : Component metadata + [Name ]: Metadata property name. + [SecretRef ]: Name of the Dapr Component secret from which to pull the metadata property value. + [Value ]: Metadata property value. + +SECRET : Collection of secrets used by a Dapr component + [Name ]: Secret Name. + [Value ]: Secret Value. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapidaprcomponent +#> +function New-AzContainerAppsApiDaprComponent { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Component type + ${ComponentType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Boolean describing if the component errors are ignores + ${IgnoreError}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Initialization timeout + ${InitTimeout}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[]] + # Component metadata + # To construct, see NOTES section for METADATA properties and create a hash table. + ${Metadata}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String[]] + # Names of container apps that can use this Dapr component + ${Scope}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]] + # Collection of secrets used by a Dapr component + # To construct, see NOTES section for SECRET properties and create a hash table. + ${Secret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Name of a Dapr component to retrieve component secrets from + ${SecretStoreComponent}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Component version + ${Version}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiDaprComponent_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/New-AzContainerAppsApiManagedCertificate.ps1 b/swaggerci/app/exports/New-AzContainerAppsApiManagedCertificate.ps1 new file mode 100644 index 000000000000..7c4828220d63 --- /dev/null +++ b/swaggerci/app/exports/New-AzContainerAppsApiManagedCertificate.ps1 @@ -0,0 +1,222 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or Update a Managed Certificate. +.Description +Create or Update a Managed Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapimanagedcertificate +#> +function New-AzContainerAppsApiManagedCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(Mandatory)] + [Alias('ManagedCertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Certificate. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation] + # Selected type of domain control validation for managed certificates. + ${DomainControlValidation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Subject name of the certificate. + ${SubjectName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiManagedCertificate_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/New-AzContainerAppsApiManagedEnvironment.ps1 b/swaggerci/app/exports/New-AzContainerAppsApiManagedEnvironment.ps1 new file mode 100644 index 000000000000..34b4b5971a60 --- /dev/null +++ b/swaggerci/app/exports/New-AzContainerAppsApiManagedEnvironment.ps1 @@ -0,0 +1,331 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Creates or updates a Managed Environment used to host container apps. +.Description +Creates or updates a Managed Environment used to host container apps. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +WORKLOADPROFILE : Workload profiles configured for the Managed Environment. + MaximumCount : The maximum capacity. + MinimumCount : The minimum capacity. + Type : Workload profile type for the workloads to run on. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapimanagedenvironment +#> +function New-AzContainerAppsApiManagedEnvironment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Logs destination + ${AppLogConfigurationDestination}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for CustomDomainConfigurationCertificatePassword (Certificate password) + ${CustomDomainConfigurationCertificatePasswordInputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob) + ${CustomDomainConfigurationCertificateValueInputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Dns suffix for the environment domain + ${CustomDomainConfigurationDnsSuffix}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Application Insights connection string used by Dapr to export Service to Service communication telemetry + ${DaprAiConnectionString}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + ${DaprAiInstrumentationKey}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Log analytics customer id + ${LogAnalyticConfigurationCustomerId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Log analytics customer key + ${LogAnalyticConfigurationSharedKey}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType] + # Outbound type for the cluster + ${OutboundSettingOutBoundType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Virtual Appliance IP used as the Egress controller for the Environment + ${OutboundSettingVirtualNetworkApplianceIP}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName] + # Name of the Sku. + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # CIDR notation IP range assigned to the Docker bridge, network. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationDockerBridgeCidr}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Resource ID of a subnet for infrastructure components. + # This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationInfrastructureSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Boolean indicating the environment only has an internal load balancer. + # These environments do not have a public static IP resource. + # They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + ${VnetConfigurationInternal}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationPlatformReservedCidr}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + ${VnetConfigurationPlatformReservedDnsIP}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Resource ID of a subnet that Container App containers are injected into. + # This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationRuntimeSubnetId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[]] + # Workload profiles configured for the Managed Environment. + # To construct, see NOTES section for WORKLOADPROFILE properties and create a hash table. + ${WorkloadProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Whether or not this Managed Environment is zone-redundant. + ${ZoneRedundant}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiManagedEnvironment_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/New-AzContainerAppsApiManagedEnvironmentStorage.ps1 b/swaggerci/app/exports/New-AzContainerAppsApiManagedEnvironmentStorage.ps1 new file mode 100644 index 000000000000..3c3fb01b9b50 --- /dev/null +++ b/swaggerci/app/exports/New-AzContainerAppsApiManagedEnvironmentStorage.ps1 @@ -0,0 +1,202 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update storage for a managedEnvironment. +.Description +Create or update storage for a managedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapimanagedenvironmentstorage +#> +function New-AzContainerAppsApiManagedEnvironmentStorage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the storage. + ${StorageName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode] + # Access mode for storage + ${AzureFileAccessMode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Storage account key for azure file. + ${AzureFileAccountKey}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Storage account name for azure file. + ${AzureFileAccountName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Azure file share name. + ${AzureFileShareName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiManagedEnvironmentStorage_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/ProxyCmdletDefinitions.ps1 b/swaggerci/app/exports/ProxyCmdletDefinitions.ps1 new file mode 100644 index 000000000000..4a86e98b9d4e --- /dev/null +++ b/swaggerci/app/exports/ProxyCmdletDefinitions.ps1 @@ -0,0 +1,14188 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all available workload profiles for a location. +.Description +Get all available workload profiles for a location. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiavailableworkloadprofile +#> +function Get-AzContainerAppsApiAvailableWorkloadProfile { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of Azure region. + ${Location}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiAvailableWorkloadProfile_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiAvailableWorkloadProfile_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get all billingMeters for a location. +.Description +Get all billingMeters for a location. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapibillingmeter +#> +function Get-AzContainerAppsApiBillingMeter { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of Azure region. + ${Location}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiBillingMeter_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiBillingMeter_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the specified Certificate. +.Description +Get the specified Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicertificate +#> +function Get-AzContainerAppsApiCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('CertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiCertificate_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiCertificate_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiCertificate_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +List secrets for a dapr component +.Description +List secrets for a dapr component +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironmentdaprcomponentsecret +#> +function Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the connected environment. + ${ConnectedEnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the specified Certificate. +.Description +Get the specified Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironmentscertificate +#> +function Get-AzContainerAppsApiConnectedEnvironmentsCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${CertificateName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Connected Environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsCertificate_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsCertificate_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsCertificate_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a dapr component. +.Description +Get a dapr component. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironmentsdaprcomponent +#> +function Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the connected environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get storage for a connectedEnvironment. +.Description +Get storage for a connectedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironmentsstorage +#> +function Get-AzContainerAppsApiConnectedEnvironmentsStorage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the storage. + ${StorageName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsStorage_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsStorage_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironmentsStorage_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the properties of an connectedEnvironment. +.Description +Get the properties of an connectedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapiconnectedenvironment +#> +function Get-AzContainerAppsApiConnectedEnvironment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ConnectedEnvironmentName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the connectedEnvironment. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironment_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironment_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironment_List'; + List1 = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiConnectedEnvironment_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the Container App AuthConfigs in a given resource group. +.Description +Get the Container App AuthConfigs in a given resource group. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappauthconfig +#> +function Get-AzContainerAppsApiContainerAppAuthConfig { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppAuthConfig_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get auth token for a container app +.Description +Get auth token for a container app +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappauthtoken +#> +function Get-AzContainerAppsApiContainerAppAuthToken { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppAuthToken_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppAuthToken_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Analyzes a custom hostname for a Container App +.Description +Analyzes a custom hostname for a Container App +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappcustomhostnameanalysis +#> +function Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Query')] + [System.String] + # Custom hostname. + ${CustomHostname}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a diagnostics result of a Container App. +.Description +Get a diagnostics result of a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappdiagnosticdetector +#> +function Get-AzContainerAppsApiContainerAppDiagnosticDetector { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Detector. + ${DetectorName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticDetector_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticDetector_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticDetector_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a revision of a Container App. +.Description +Get a revision of a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappdiagnosticrevision +#> +function Get-AzContainerAppsApiContainerAppDiagnosticRevision { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Revision. + ${RevisionName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Query')] + [System.String] + # The filter to apply on the operation. + ${Filter}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticRevision_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticRevision_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticRevision_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the properties of a Container App. +.Description +Get the properties of a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappdiagnosticroot +#> +function Get-AzContainerAppsApiContainerAppDiagnosticRoot { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticRoot_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppDiagnosticRoot_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a replica for a Container App Revision. +.Description +Get a replica for a Container App Revision. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerapprevisionreplica +#> +function Get-AzContainerAppsApiContainerAppRevisionReplica { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Revision Replica. + ${ReplicaName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Revision. + ${RevisionName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppRevisionReplica_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppRevisionReplica_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppRevisionReplica_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a revision of a Container App. +.Description +Get a revision of a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerapprevision +#> +function Get-AzContainerAppsApiContainerAppRevision { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Revision. + ${RevisionName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Query')] + [System.String] + # The filter to apply on the operation. + ${Filter}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppRevision_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppRevision_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppRevision_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a AuthConfig of a Container App. +.Description +Get a AuthConfig of a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappsauthconfig +#> +function Get-AzContainerAppsApiContainerAppsAuthConfig { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App AuthConfig. + ${AuthConfigName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppsAuthConfig_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppsAuthConfig_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +List secrets for a container app +.Description +List secrets for a container app +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappsecret +#> +function Get-AzContainerAppsApiContainerAppSecret { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppSecret_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the Container App SourceControls in a given resource group. +.Description +Get the Container App SourceControls in a given resource group. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappsourcecontrol +#> +function Get-AzContainerAppsApiContainerAppSourceControl { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppSourceControl_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a SourceControl of a Container App. +.Description +Get a SourceControl of a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerappssourcecontrol +#> +function Get-AzContainerAppsApiContainerAppsSourceControl { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App SourceControl. + ${SourceControlName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppsSourceControl_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerAppsSourceControl_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the properties of a Container App. +.Description +Get the properties of a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapicontainerapp +#> +function Get-AzContainerAppsApiContainerApp { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ContainerAppName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='GetViaIdentity')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerApp_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerApp_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerApp_List'; + List1 = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiContainerApp_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +List secrets for a dapr component +.Description +List secrets for a dapr component +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapidaprcomponentsecret +#> +function Get-AzContainerAppsApiDaprComponentSecret { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiDaprComponentSecret_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a dapr component. +.Description +Get a dapr component. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapidaprcomponent +#> +function Get-AzContainerAppsApiDaprComponent { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiDaprComponent_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiDaprComponent_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiDaprComponent_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the specified Managed Certificate. +.Description +Get the specified Managed Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedcertificate +#> +function Get-AzContainerAppsApiManagedCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ManagedCertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Certificate. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedCertificate_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedCertificate_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedCertificate_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Checks if resource name is available. +.Description +Checks if resource name is available. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentauthtoken +#> +function Get-AzContainerAppsApiManagedEnvironmentAuthToken { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentAuthToken_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentAuthToken_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the diagnostics data for a Managed Environment used to host container apps. +.Description +Get the diagnostics data for a Managed Environment used to host container apps. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentdiagnosticdetector +#> +function Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics], [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment detector. + ${DetectorName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the properties of a Managed Environment used to host container apps. +.Description +Get the properties of a Managed Environment used to host container apps. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentdiagnosticroot +#> +function Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get storage for a managedEnvironment. +.Description +Get storage for a managedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentsstorage +#> +function Get-AzContainerAppsApiManagedEnvironmentsStorage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the storage. + ${StorageName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentsStorage_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentsStorage_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentsStorage_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get all workload Profile States for a Premium Managed Environment. +.Description +Get all workload Profile States for a Premium Managed Environment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironmentworkloadprofilestate +#> +function Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the properties of a Managed Environment used to host container apps. +.Description +Get the properties of a Managed Environment used to host container apps. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapimanagedenvironment +#> +function Get-AzContainerAppsApiManagedEnvironment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironment_Get'; + GetViaIdentity = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironment_GetViaIdentity'; + List = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironment_List'; + List1 = 'Az.ContainerAppsApi.private\Get-AzContainerAppsApiManagedEnvironment_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Activates a revision for a Container App +.Description +Activates a revision for a Container App +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/initialize-azcontainerappsapicontainerapprevision +#> +function Initialize-AzContainerAppsApiContainerAppRevision { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Activate', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Activate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Activate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Activate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Revision. + ${RevisionName}, + + [Parameter(ParameterSetName='Activate')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ActivateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Activate = 'Az.ContainerAppsApi.private\Initialize-AzContainerAppsApiContainerAppRevision_Activate'; + ActivateViaIdentity = 'Az.ContainerAppsApi.private\Initialize-AzContainerAppsApiContainerAppRevision_ActivateViaIdentity'; + } + if (('Activate') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Deactivates a revision for a Container App +.Description +Deactivates a revision for a Container App +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/invoke-azcontainerappsapideactivatecontainerapprevision +#> +function Invoke-AzContainerAppsApiDeactivateContainerAppRevision { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Deactivate', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Deactivate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Deactivate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Deactivate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Revision. + ${RevisionName}, + + [Parameter(ParameterSetName='Deactivate')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeactivateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Deactivate = 'Az.ContainerAppsApi.private\Invoke-AzContainerAppsApiDeactivateContainerAppRevision_Deactivate'; + DeactivateViaIdentity = 'Az.ContainerAppsApi.private\Invoke-AzContainerAppsApiDeactivateContainerAppRevision_DeactivateViaIdentity'; + } + if (('Deactivate') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or Update a Certificate. +.Description +Create or Update a Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapicertificate +#> +function New-AzContainerAppsApiCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(Mandatory)] + [Alias('CertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for Value (PFX or PEM blob) + ${InputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Certificate password. + ${Password}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiCertificate_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or Update a Certificate. +.Description +Create or Update a Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapiconnectedenvironmentcertificate +#> +function New-AzContainerAppsApiConnectedEnvironmentCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${CertificateName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Connected Environment. + ${ConnectedEnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for Value (PFX or PEM blob) + ${InputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Certificate password. + ${Password}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiConnectedEnvironmentCertificate_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Creates or updates a Dapr Component in a connected environment. +.Description +Creates or updates a Dapr Component in a connected environment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +METADATA : Component metadata + [Name ]: Metadata property name. + [SecretRef ]: Name of the Dapr Component secret from which to pull the metadata property value. + [Value ]: Metadata property value. + +SECRET : Collection of secrets used by a Dapr component + [Name ]: Secret Name. + [Value ]: Secret Value. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapiconnectedenvironmentdaprcomponent +#> +function New-AzContainerAppsApiConnectedEnvironmentDaprComponent { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the connected environment. + ${ConnectedEnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Component type + ${ComponentType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Boolean describing if the component errors are ignores + ${IgnoreError}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Initialization timeout + ${InitTimeout}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[]] + # Component metadata + # To construct, see NOTES section for METADATA properties and create a hash table. + ${Metadata}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String[]] + # Names of container apps that can use this Dapr component + ${Scope}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]] + # Collection of secrets used by a Dapr component + # To construct, see NOTES section for SECRET properties and create a hash table. + ${Secret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Name of a Dapr component to retrieve component secrets from + ${SecretStoreComponent}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Component version + ${Version}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiConnectedEnvironmentDaprComponent_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update storage for a connectedEnvironment. +.Description +Create or update storage for a connectedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapiconnectedenvironmentstorage +#> +function New-AzContainerAppsApiConnectedEnvironmentStorage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${ConnectedEnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the storage. + ${StorageName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode] + # Access mode for storage + ${AzureFileAccessMode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Storage account key for azure file. + ${AzureFileAccountKey}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Storage account name for azure file. + ${AzureFileAccountName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Azure file share name. + ${AzureFileShareName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiConnectedEnvironmentStorage_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Creates or updates an connectedEnvironment. +.Description +Creates or updates an connectedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapiconnectedenvironment +#> +function New-AzContainerAppsApiConnectedEnvironment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ConnectedEnvironmentName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the connectedEnvironment. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for CustomDomainConfigurationCertificatePassword (Certificate password) + ${CustomDomainConfigurationCertificatePasswordInputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob) + ${CustomDomainConfigurationCertificateValueInputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Dns suffix for the environment domain + ${CustomDomainConfigurationDnsSuffix}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Application Insights connection string used by Dapr to export Service to Service communication telemetry + ${DaprAiConnectionString}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The name of the extended location. + ${ExtendedLocationName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes] + # The type of the extended location. + ${ExtendedLocationType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Static IP of the connectedEnvironment + ${StaticIP}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiConnectedEnvironment_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update the AuthConfig for a Container App. +.Description +Create or update the AuthConfig for a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +IDENTITYPROVIDER : The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + [AllowedPrincipalGroup ]: The list of the allowed groups. + [AllowedPrincipalIdentity ]: The list of the allowed identities. + [AppleEnabled ]: false if the Apple provider should not be enabled despite the set registration; otherwise, true. + [AppleLoginScope ]: A list of the scopes that should be requested while authenticating. + [AppleRegistrationClientId ]: The Client ID of the app used for login. + [AppleRegistrationClientSecretSettingName ]: The app setting name that contains the client secret. + [AzureActiveDirectoryEnabled ]: false if the Azure Active Directory provider should not be enabled despite the set registration; otherwise, true. + [AzureActiveDirectoryIsAutoProvisioned ]: Gets a value indicating whether the Azure AD configuration was auto-provisioned using 1st party tooling. This is an internal flag primarily intended to support the Azure Management Portal. Users should not read or write to this property. + [AzureActiveDirectoryRegistrationClientId ]: The Client ID of this relying party application, known as the client_id. This setting is required for enabling OpenID Connection authentication with Azure Active Directory or other 3rd party OpenID Connect providers. More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html + [AzureActiveDirectoryRegistrationClientSecretSettingName ]: The app setting name that contains the client secret of the relying party application. + [AzureActiveDirectoryValidationAllowedAudience ]: The list of audiences that can make successful authentication/authorization requests. + [AzureStaticWebAppEnabled ]: false if the Azure Static Web Apps provider should not be enabled despite the set registration; otherwise, true. + [AzureStaticWebAppsRegistrationClientId ]: The Client ID of the app used for login. + [CustomOpenIdConnectProvider ]: The map of the name of the alias of each custom Open ID Connect provider to the configuration settings of the custom Open ID Connect provider. + [(Any) ]: This indicates any property can be added to this object. + [DefaultAuthorizationPolicyAllowedApplication ]: The configuration settings of the Azure Active Directory allowed applications. + [FacebookEnabled ]: false if the Facebook provider should not be enabled despite the set registration; otherwise, true. + [FacebookGraphApiVersion ]: The version of the Facebook api to be used while logging in. + [FacebookLoginScope ]: A list of the scopes that should be requested while authenticating. + [GitHubEnabled ]: false if the GitHub provider should not be enabled despite the set registration; otherwise, true. + [GitHubLoginScope ]: A list of the scopes that should be requested while authenticating. + [GitHubRegistrationClientId ]: The Client ID of the app used for login. + [GitHubRegistrationClientSecretSettingName ]: The app setting name that contains the client secret. + [GoogleEnabled ]: false if the Google provider should not be enabled despite the set registration; otherwise, true. + [GoogleLoginScope ]: A list of the scopes that should be requested while authenticating. + [GoogleRegistrationClientId ]: The Client ID of the app used for login. + [GoogleRegistrationClientSecretSettingName ]: The app setting name that contains the client secret. + [GoogleValidationAllowedAudience ]: The configuration settings of the allowed list of audiences from which to validate the JWT token. + [JwtClaimCheckAllowedClientApplication ]: The list of the allowed client applications. + [JwtClaimCheckAllowedGroup ]: The list of the allowed groups. + [LoginDisableWwwAuthenticate ]: true if the www-authenticate provider should be omitted from the request; otherwise, false. + [LoginParameter ]: Login parameters to send to the OpenID Connect authorization endpoint when a user logs in. Each parameter must be in the form "key=value". + [RegistrationAppId ]: The App ID of the app used for login. + [RegistrationAppSecretSettingName ]: The app setting name that contains the app secret. + [RegistrationClientSecretCertificateIssuer ]: An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property acts as a replacement for the Client Secret Certificate Thumbprint. It is also optional. + [RegistrationClientSecretCertificateSubjectAlternativeName ]: An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing purposes. This property acts as a replacement for the Client Secret Certificate Thumbprint. It is also optional. + [RegistrationClientSecretCertificateThumbprint ]: An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as a replacement for the Client Secret. It is also optional. + [RegistrationConsumerKey ]: The OAuth 1.0a consumer key of the Twitter application used for sign-in. This setting is required for enabling Twitter Sign-In. Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in + [RegistrationConsumerSecretSettingName ]: The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. + [RegistrationOpenIdIssuer ]: The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. This URI is a case-sensitive identifier for the token issuer. More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html + [TwitterEnabled ]: false if the Twitter provider should not be enabled despite the set registration; otherwise, true. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapicontainerappauthconfig +#> +function New-AzContainerAppsApiContainerAppAuthConfig { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App AuthConfig. + ${AuthConfigName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention] + # The convention used when determining the session cookie's expiration. + ${CookieExpirationConvention}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The time after the request is made when the session cookie should expire. + ${CookieExpirationTimeToExpiration}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention] + # The convention used to determine the url of the request made. + ${ForwardProxyConvention}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The name of the header containing the host of the request. + ${ForwardProxyCustomHostHeaderName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The name of the header containing the scheme of the request. + ${ForwardProxyCustomProtoHeaderName}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String[]] + # The paths for which unauthenticated flow would not be redirected to the login page. + ${GlobalValidationExcludedPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The default authentication provider to use when multiple providers are configured.This setting is only needed if multiple providers are configured and the unauthenticated clientaction is set to "RedirectToLoginPage". + ${GlobalValidationRedirectToProvider}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2] + # The action to take when an unauthenticated client attempts to access the app. + ${GlobalValidationUnauthenticatedClientAction}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, true. + ${HttpSettingRequireHttps}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders] + # The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + # To construct, see NOTES section for IDENTITYPROVIDER properties and create a hash table. + ${IdentityProvider}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String[]] + # External URLs that can be redirected to as part of logging in or logging out of the app. + # Note that the query string part of the URL is ignored.This is an advanced setting typically only needed by Windows Store application backends.Note that URLs within the current domain are always implicitly allowed. + ${LoginAllowedExternalRedirectUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # true if the fragments from the request are preserved after the login request is made; otherwise, false. + ${LoginPreserveUrlFragmentsForLogin}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The time after the request is made when the nonce should expire. + ${NonceExpirationInterval}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # false if the nonce should not be validated while completing the login flow; otherwise, true. + ${NonceValidateNonce}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # true if the Authentication / Authorization feature is enabled for the current app; otherwise, false. + ${PlatformEnabled}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The RuntimeVersion of the Authentication / Authorization feature in use for the current app.The setting in this value can control the behavior of certain features in the Authentication / Authorization module. + ${PlatformRuntimeVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The prefix that should precede all the authentication/authorization paths. + ${RouteApiPrefix}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The endpoint at which a logout request should be made. + ${RouteLogoutEndpoint}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiContainerAppAuthConfig_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update the SourceControl for a Container App. +.Description +Create or update the SourceControl for a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapicontainerappsourcecontrol +#> +function New-AzContainerAppsApiContainerAppSourceControl { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App SourceControl. + ${SourceControlName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Client Id. + ${AzureCredentialsClientId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Client Secret. + ${AzureCredentialsClientSecret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Subscription Id. + ${AzureCredentialsSubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Tenant Id. + ${AzureCredentialsTenantId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The branch which will trigger the auto deployment + ${Branch}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Context path + ${GithubActionConfigurationContextPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Image name + ${GithubActionConfigurationImage}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Operation system + ${GithubActionConfigurationOS}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Code or Image + ${GithubActionConfigurationPublishType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Runtime stack + ${GithubActionConfigurationRuntimeStack}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Runtime version + ${GithubActionConfigurationRuntimeVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # registry secret. + ${RegistryInfoRegistryPassword}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # registry server Url. + ${RegistryInfoRegistryUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # registry username. + ${RegistryInfoRegistryUserName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The repo url which will be integrated to ContainerApp. + ${RepoUrl}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiContainerAppSourceControl_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update a Container App. +.Description +Create or update a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +CONFIGURATIONREGISTRY : Collection of private container registry credentials for containers used by the Container app + [Identity ]: A Managed Identity to use to authenticate with Azure Container Registry. For user-assigned identities, use the full user-assigned identity Resource ID. For system-assigned identities, use 'system' + [PasswordSecretRef ]: The name of the Secret that contains the registry login password + [Server ]: Container Registry Server + [Username ]: Container Registry Username + +CONFIGURATIONSECRET : Collection of secrets used by a Container app + [Name ]: Secret Name. + [Value ]: Secret Value. + +INGRESSCUSTOMDOMAIN : custom domain bindings for Container Apps' hostnames. + CertificateId : Resource Id of the Certificate to be bound to this hostname. Must exist in the Managed Environment. + Name : Hostname. + [BindingType ]: Custom Domain binding type. + +INGRESSIPSECURITYRESTRICTION : Rules to restrict incoming IP address. + Action : Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or ALL Deny + IPAddressRange : CIDR notation to match incoming IP address + Name : Name for the IP restriction rule. + [Description ]: Describe the IP restriction rule that is being sent to the container-app. This is an optional field. + +INGRESSTRAFFIC : Traffic weights for app's revisions + [Label ]: Associates a traffic label with a revision + [LatestRevision ]: Indicates that the traffic weight belongs to a latest stable revision + [RevisionName ]: Name of a revision + [Weight ]: Traffic weight assigned to a revision + +SCALERULE : Scaling rules. + [AzureQueueAuth ]: Authentication secrets for the queue scale rule. + [SecretRef ]: Name of the Container App secret from which to pull the auth params. + [TriggerParameter ]: Trigger Parameter that uses the secret + [AzureQueueLength ]: Queue length. + [AzureQueueName ]: Queue name. + [CustomAuth ]: Authentication secrets for the custom scale rule. + [CustomMetadata ]: Metadata properties to describe custom scale rule. + [(Any) ]: This indicates any property can be added to this object. + [CustomType ]: Type of the custom scale rule eg: azure-servicebus, redis etc. + [HttpAuth ]: Authentication secrets for the custom scale rule. + [HttpMetadata ]: Metadata properties to describe http scale rule. + [(Any) ]: This indicates any property can be added to this object. + [Name ]: Scale Rule Name + [TcpAuth ]: Authentication secrets for the tcp scale rule. + [TcpMetadata ]: Metadata properties to describe tcp scale rule. + [(Any) ]: This indicates any property can be added to this object. + +TEMPLATECONTAINER : List of container definitions for the Container App. + [Arg ]: Container start command arguments. + [Command ]: Container start command. + [Env ]: Container environment variables. + [Name ]: Environment variable name. + [SecretRef ]: Name of the Container App secret from which to pull the environment variable value. + [Value ]: Non-secret environment variable value. + [Image ]: Container image tag. + [Name ]: Custom container name. + [ResourceCpu ]: Required CPU in cores, e.g. 0.5 + [ResourceMemory ]: Required memory, e.g. "250Mb" + [VolumeMount ]: Container volume mounts. + [MountPath ]: Path within the container at which the volume should be mounted.Must not contain ':'. + [VolumeName ]: This must match the Name of a Volume. + [Probe ]: List of probes for the container. + [FailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. Maximum value is 10. + [HttpGetHost ]: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + [HttpGetHttpHeader ]: Custom headers to set in the request. HTTP allows repeated headers. + Name : The header field name + Value : The header field value + [HttpGetPath ]: Path to access on the HTTP server. + [HttpGetPort ]: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + [HttpGetScheme ]: Scheme to use for connecting to the host. Defaults to HTTP. + [InitialDelaySecond ]: Number of seconds after the container has started before liveness probes are initiated. Minimum value is 1. Maximum value is 60. + [PeriodSecond ]: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value is 240. + [SuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. Maximum value is 10. + [TcpSocketHost ]: Optional: Host name to connect to, defaults to the pod IP. + [TcpSocketPort ]: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + [TerminationGracePeriodSecond ]: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. Maximum value is 3600 seconds (1 hour) + [TimeoutSecond ]: Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 240. + [Type ]: The type of probe. + +TEMPLATEINITCONTAINER : List of specialized containers that run before app containers. + [Arg ]: Container start command arguments. + [Command ]: Container start command. + [Env ]: Container environment variables. + [Name ]: Environment variable name. + [SecretRef ]: Name of the Container App secret from which to pull the environment variable value. + [Value ]: Non-secret environment variable value. + [Image ]: Container image tag. + [Name ]: Custom container name. + [ResourceCpu ]: Required CPU in cores, e.g. 0.5 + [ResourceMemory ]: Required memory, e.g. "250Mb" + [VolumeMount ]: Container volume mounts. + [MountPath ]: Path within the container at which the volume should be mounted.Must not contain ':'. + [VolumeName ]: This must match the Name of a Volume. + +TEMPLATEVOLUME : List of volume definitions for the Container App. + [Name ]: Volume name. + [StorageName ]: Name of storage resource. No need to provide for EmptyDir. + [StorageType ]: Storage type for the volume. If not provided, use EmptyDir. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapicontainerapp +#> +function New-AzContainerAppsApiContainerApp { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ContainerAppName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode] + # ActiveRevisionsMode controls how active revisions are handled for the Container app:Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + # Revision weights can not be used in this mode. + # If no value if provided, this is the default. + ${ConfigurationActiveRevisionsMode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Optional. + # Max inactive revisions a Container App can have. + ${ConfigurationMaxInactiveRevision}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[]] + # Collection of private container registry credentials for containers used by the Container app + # To construct, see NOTES section for CONFIGURATIONREGISTRY properties and create a hash table. + ${ConfigurationRegistry}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]] + # Collection of secrets used by a Container app + # To construct, see NOTES section for CONFIGURATIONSECRET properties and create a hash table. + ${ConfigurationSecret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Dapr application identifier + ${DaprAppId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Tells Dapr which port your application is listening on + ${DaprAppPort}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol] + # Tells Dapr which protocol your application is using. + # Valid options are http and grpc. + # Default is http + ${DaprAppProtocol}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Enables API logging for the Dapr sidecar + ${DaprEnableApiLogging}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Boolean indicating if the Dapr side car is enabled + ${DaprEnabled}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. + # Default is 4 MB. + ${DaprHttpMaxRequestSize}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. + # Default is 65KB. + ${DaprHttpReadBufferSize}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel] + # Sets the log level for the Dapr sidecar. + # Allowed values are debug, info, warn, error. + # Default is info. + ${DaprLogLevel}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Resource ID of environment. + ${EnvironmentId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The name of the extended location. + ${ExtendedLocationName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes] + # The type of the extended location. + ${ExtendedLocationType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType] + # Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The set of user assigned identities associated with the resource. + # The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + # The dictionary values can be empty objects ({}) in requests. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Bool indicating if HTTP connections to is allowed. + # If set to false HTTP connections are automatically redirected to HTTPS connections + ${IngressAllowInsecure}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[]] + # custom domain bindings for Container Apps' hostnames. + # To construct, see NOTES section for INGRESSCUSTOMDOMAIN properties and create a hash table. + ${IngressCustomDomain}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Exposed Port in containers for TCP traffic from ingress + ${IngressExposedPort}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Bool indicating if app exposes an external http endpoint + ${IngressExternal}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[]] + # Rules to restrict incoming IP address. + # To construct, see NOTES section for INGRESSIPSECURITYRESTRICTION properties and create a hash table. + ${IngressIPSecurityRestriction}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Target Port in containers for traffic from ingress + ${IngressTargetPort}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[]] + # Traffic weights for app's revisions + # To construct, see NOTES section for INGRESSTRAFFIC properties and create a hash table. + ${IngressTraffic}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod] + # Ingress transport protocol + ${IngressTransport}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Deprecated. + # Resource ID of the Container App's environment. + ${ManagedEnvironmentId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Optional. + # Maximum number of container replicas. + # Defaults to 10 if not set. + ${ScaleMaxReplica}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Optional. + # Minimum number of container replicas. + ${ScaleMinReplica}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]] + # Scaling rules. + # To construct, see NOTES section for SCALERULE properties and create a hash table. + ${ScaleRule}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[]] + # List of container definitions for the Container App. + # To construct, see NOTES section for TEMPLATECONTAINER properties and create a hash table. + ${TemplateContainer}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[]] + # List of specialized containers that run before app containers. + # To construct, see NOTES section for TEMPLATEINITCONTAINER properties and create a hash table. + ${TemplateInitContainer}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # User friendly suffix that is appended to the revision name + ${TemplateRevisionSuffix}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[]] + # List of volume definitions for the Container App. + # To construct, see NOTES section for TEMPLATEVOLUME properties and create a hash table. + ${TemplateVolume}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Workload profile type to pin for container app execution. + ${WorkloadProfileType}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiContainerApp_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Creates or updates a Dapr Component in a Managed Environment. +.Description +Creates or updates a Dapr Component in a Managed Environment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +METADATA : Component metadata + [Name ]: Metadata property name. + [SecretRef ]: Name of the Dapr Component secret from which to pull the metadata property value. + [Value ]: Metadata property value. + +SECRET : Collection of secrets used by a Dapr component + [Name ]: Secret Name. + [Value ]: Secret Value. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapidaprcomponent +#> +function New-AzContainerAppsApiDaprComponent { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Component type + ${ComponentType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Boolean describing if the component errors are ignores + ${IgnoreError}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Initialization timeout + ${InitTimeout}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[]] + # Component metadata + # To construct, see NOTES section for METADATA properties and create a hash table. + ${Metadata}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String[]] + # Names of container apps that can use this Dapr component + ${Scope}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]] + # Collection of secrets used by a Dapr component + # To construct, see NOTES section for SECRET properties and create a hash table. + ${Secret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Name of a Dapr component to retrieve component secrets from + ${SecretStoreComponent}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Component version + ${Version}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiDaprComponent_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or Update a Managed Certificate. +.Description +Create or Update a Managed Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapimanagedcertificate +#> +function New-AzContainerAppsApiManagedCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(Mandatory)] + [Alias('ManagedCertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Certificate. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation] + # Selected type of domain control validation for managed certificates. + ${DomainControlValidation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Subject name of the certificate. + ${SubjectName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiManagedCertificate_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update storage for a managedEnvironment. +.Description +Create or update storage for a managedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapimanagedenvironmentstorage +#> +function New-AzContainerAppsApiManagedEnvironmentStorage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the storage. + ${StorageName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode] + # Access mode for storage + ${AzureFileAccessMode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Storage account key for azure file. + ${AzureFileAccountKey}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Storage account name for azure file. + ${AzureFileAccountName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Azure file share name. + ${AzureFileShareName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiManagedEnvironmentStorage_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Creates or updates a Managed Environment used to host container apps. +.Description +Creates or updates a Managed Environment used to host container apps. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +WORKLOADPROFILE : Workload profiles configured for the Managed Environment. + MaximumCount : The maximum capacity. + MinimumCount : The minimum capacity. + Type : Workload profile type for the workloads to run on. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/new-azcontainerappsapimanagedenvironment +#> +function New-AzContainerAppsApiManagedEnvironment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Logs destination + ${AppLogConfigurationDestination}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for CustomDomainConfigurationCertificatePassword (Certificate password) + ${CustomDomainConfigurationCertificatePasswordInputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob) + ${CustomDomainConfigurationCertificateValueInputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Dns suffix for the environment domain + ${CustomDomainConfigurationDnsSuffix}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Application Insights connection string used by Dapr to export Service to Service communication telemetry + ${DaprAiConnectionString}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + ${DaprAiInstrumentationKey}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Log analytics customer id + ${LogAnalyticConfigurationCustomerId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Log analytics customer key + ${LogAnalyticConfigurationSharedKey}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType] + # Outbound type for the cluster + ${OutboundSettingOutBoundType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Virtual Appliance IP used as the Egress controller for the Environment + ${OutboundSettingVirtualNetworkApplianceIP}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName] + # Name of the Sku. + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # CIDR notation IP range assigned to the Docker bridge, network. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationDockerBridgeCidr}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Resource ID of a subnet for infrastructure components. + # This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationInfrastructureSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Boolean indicating the environment only has an internal load balancer. + # These environments do not have a public static IP resource. + # They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + ${VnetConfigurationInternal}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationPlatformReservedCidr}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + ${VnetConfigurationPlatformReservedDnsIP}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Resource ID of a subnet that Container App containers are injected into. + # This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationRuntimeSubnetId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[]] + # Workload profiles configured for the Managed Environment. + # To construct, see NOTES section for WORKLOADPROFILE properties and create a hash table. + ${WorkloadProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Whether or not this Managed Environment is zone-redundant. + ${ZoneRedundant}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.ContainerAppsApi.private\New-AzContainerAppsApiManagedEnvironment_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Deletes the specified Certificate. +.Description +Deletes the specified Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapicertificate +#> +function Remove-AzContainerAppsApiCertificate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('CertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiCertificate_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiCertificate_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Deletes the specified Certificate. +.Description +Deletes the specified Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapiconnectedenvironmentscertificate +#> +function Remove-AzContainerAppsApiConnectedEnvironmentsCertificate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${CertificateName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Connected Environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironmentsCertificate_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironmentsCertificate_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete a Dapr Component from a connected environment. +.Description +Delete a Dapr Component from a connected environment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapiconnectedenvironmentsdaprcomponent +#> +function Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the connected environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete storage for a connectedEnvironment. +.Description +Delete storage for a connectedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapiconnectedenvironmentsstorage +#> +function Remove-AzContainerAppsApiConnectedEnvironmentsStorage { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the storage. + ${StorageName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironmentsStorage_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironmentsStorage_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete an connectedEnvironment. +.Description +Delete an connectedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapiconnectedenvironment +#> +function Remove-AzContainerAppsApiConnectedEnvironment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ConnectedEnvironmentName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the connectedEnvironment. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironment_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironment_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete a Container App AuthConfig. +.Description +Delete a Container App AuthConfig. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapicontainerappsauthconfig +#> +function Remove-AzContainerAppsApiContainerAppsAuthConfig { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App AuthConfig. + ${AuthConfigName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiContainerAppsAuthConfig_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiContainerAppsAuthConfig_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete a Container App SourceControl. +.Description +Delete a Container App SourceControl. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapicontainerappssourcecontrol +#> +function Remove-AzContainerAppsApiContainerAppsSourceControl { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App SourceControl. + ${SourceControlName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiContainerAppsSourceControl_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiContainerAppsSourceControl_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete a Container App. +.Description +Delete a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapicontainerapp +#> +function Remove-AzContainerAppsApiContainerApp { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ContainerAppName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiContainerApp_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiContainerApp_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete a Dapr Component from a Managed Environment. +.Description +Delete a Dapr Component from a Managed Environment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapidaprcomponent +#> +function Remove-AzContainerAppsApiDaprComponent { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiDaprComponent_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiDaprComponent_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Deletes the specified Managed Certificate. +.Description +Deletes the specified Managed Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapimanagedcertificate +#> +function Remove-AzContainerAppsApiManagedCertificate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ManagedCertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Certificate. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiManagedCertificate_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiManagedCertificate_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete storage for a managedEnvironment. +.Description +Delete storage for a managedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapimanagedenvironmentsstorage +#> +function Remove-AzContainerAppsApiManagedEnvironmentsStorage { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the storage. + ${StorageName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiManagedEnvironmentsStorage_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiManagedEnvironmentsStorage_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete a Managed Environment if it does not have any container apps. +.Description +Delete a Managed Environment if it does not have any container apps. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapimanagedenvironment +#> +function Remove-AzContainerAppsApiManagedEnvironment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiManagedEnvironment_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiManagedEnvironment_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Restarts a revision for a Container App +.Description +Restarts a revision for a Container App +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/restart-azcontainerappsapicontainerapprevision +#> +function Restart-AzContainerAppsApiContainerAppRevision { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Restart', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Restart', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Restart', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Restart', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Revision. + ${RevisionName}, + + [Parameter(ParameterSetName='Restart')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RestartViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Restart = 'Az.ContainerAppsApi.private\Restart-AzContainerAppsApiContainerAppRevision_Restart'; + RestartViaIdentity = 'Az.ContainerAppsApi.private\Restart-AzContainerAppsApiContainerAppRevision_RestartViaIdentity'; + } + if (('Restart') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Checks if resource connectedEnvironmentName is available. +.Description +Checks if resource connectedEnvironmentName is available. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +CHECKNAMEAVAILABILITYREQUEST : The check availability request body. + [Name ]: The name of the resource for which availability needs to be checked. + [Type ]: The resource type. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/test-azcontainerappsapiconnectedenvironmentnameavailability +#> +function Test-AzContainerAppsApiConnectedEnvironmentNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest] + # The check availability request body. + # To construct, see NOTES section for CHECKNAMEAVAILABILITYREQUEST properties and create a hash table. + ${CheckNameAvailabilityRequest}, + + [Parameter(ParameterSetName='CheckExpanded')] + [Parameter(ParameterSetName='CheckViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The name of the resource for which availability needs to be checked. + ${Name}, + + [Parameter(ParameterSetName='CheckExpanded')] + [Parameter(ParameterSetName='CheckViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The resource type. + ${Type}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Check = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiConnectedEnvironmentNameAvailability_Check'; + CheckExpanded = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiConnectedEnvironmentNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Checks if resource name is available. +.Description +Checks if resource name is available. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +CHECKNAMEAVAILABILITYREQUEST : The check availability request body. + [Name ]: The name of the resource for which availability needs to be checked. + [Type ]: The resource type. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/test-azcontainerappsapinamespacenameavailability +#> +function Test-AzContainerAppsApiNamespaceNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest] + # The check availability request body. + # To construct, see NOTES section for CHECKNAMEAVAILABILITYREQUEST properties and create a hash table. + ${CheckNameAvailabilityRequest}, + + [Parameter(ParameterSetName='CheckExpanded')] + [Parameter(ParameterSetName='CheckViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The name of the resource for which availability needs to be checked. + ${Name}, + + [Parameter(ParameterSetName='CheckExpanded')] + [Parameter(ParameterSetName='CheckViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The resource type. + ${Type}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Check = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiNamespaceNameAvailability_Check'; + CheckExpanded = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiNamespaceNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiNamespaceNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiNamespaceNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Patches a certificate. +Currently only patching of tags is supported +.Description +Patches a certificate. +Currently only patching of tags is supported +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapicertificate +#> +function Update-AzContainerAppsApiCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('CertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags]))] + [System.Collections.Hashtable] + # Application-specific metadata in the form of key-value pairs. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiCertificate_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiCertificate_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Patches a certificate. +Currently only patching of tags is supported +.Description +Patches a certificate. +Currently only patching of tags is supported +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapiconnectedenvironmentscertificate +#> +function Update-AzContainerAppsApiConnectedEnvironmentsCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${CertificateName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Connected Environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags]))] + [System.Collections.Hashtable] + # Application-specific metadata in the form of key-value pairs. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiConnectedEnvironmentsCertificate_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiConnectedEnvironmentsCertificate_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Patches a Container App using JSON Merge Patch +.Description +Patches a Container App using JSON Merge Patch +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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. + +CONFIGURATIONREGISTRY : Collection of private container registry credentials for containers used by the Container app + [Identity ]: A Managed Identity to use to authenticate with Azure Container Registry. For user-assigned identities, use the full user-assigned identity Resource ID. For system-assigned identities, use 'system' + [PasswordSecretRef ]: The name of the Secret that contains the registry login password + [Server ]: Container Registry Server + [Username ]: Container Registry Username + +CONFIGURATIONSECRET : Collection of secrets used by a Container app + [Name ]: Secret Name. + [Value ]: Secret Value. + +INGRESSCUSTOMDOMAIN : custom domain bindings for Container Apps' hostnames. + CertificateId : Resource Id of the Certificate to be bound to this hostname. Must exist in the Managed Environment. + Name : Hostname. + [BindingType ]: Custom Domain binding type. + +INGRESSIPSECURITYRESTRICTION : Rules to restrict incoming IP address. + Action : Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or ALL Deny + IPAddressRange : CIDR notation to match incoming IP address + Name : Name for the IP restriction rule. + [Description ]: Describe the IP restriction rule that is being sent to the container-app. This is an optional field. + +INGRESSTRAFFIC : Traffic weights for app's revisions + [Label ]: Associates a traffic label with a revision + [LatestRevision ]: Indicates that the traffic weight belongs to a latest stable revision + [RevisionName ]: Name of a revision + [Weight ]: Traffic weight assigned to a revision + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. + +SCALERULE : Scaling rules. + [AzureQueueAuth ]: Authentication secrets for the queue scale rule. + [SecretRef ]: Name of the Container App secret from which to pull the auth params. + [TriggerParameter ]: Trigger Parameter that uses the secret + [AzureQueueLength ]: Queue length. + [AzureQueueName ]: Queue name. + [CustomAuth ]: Authentication secrets for the custom scale rule. + [CustomMetadata ]: Metadata properties to describe custom scale rule. + [(Any) ]: This indicates any property can be added to this object. + [CustomType ]: Type of the custom scale rule eg: azure-servicebus, redis etc. + [HttpAuth ]: Authentication secrets for the custom scale rule. + [HttpMetadata ]: Metadata properties to describe http scale rule. + [(Any) ]: This indicates any property can be added to this object. + [Name ]: Scale Rule Name + [TcpAuth ]: Authentication secrets for the tcp scale rule. + [TcpMetadata ]: Metadata properties to describe tcp scale rule. + [(Any) ]: This indicates any property can be added to this object. + +TEMPLATECONTAINER : List of container definitions for the Container App. + [Arg ]: Container start command arguments. + [Command ]: Container start command. + [Env ]: Container environment variables. + [Name ]: Environment variable name. + [SecretRef ]: Name of the Container App secret from which to pull the environment variable value. + [Value ]: Non-secret environment variable value. + [Image ]: Container image tag. + [Name ]: Custom container name. + [ResourceCpu ]: Required CPU in cores, e.g. 0.5 + [ResourceMemory ]: Required memory, e.g. "250Mb" + [VolumeMount ]: Container volume mounts. + [MountPath ]: Path within the container at which the volume should be mounted.Must not contain ':'. + [VolumeName ]: This must match the Name of a Volume. + [Probe ]: List of probes for the container. + [FailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. Maximum value is 10. + [HttpGetHost ]: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + [HttpGetHttpHeader ]: Custom headers to set in the request. HTTP allows repeated headers. + Name : The header field name + Value : The header field value + [HttpGetPath ]: Path to access on the HTTP server. + [HttpGetPort ]: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + [HttpGetScheme ]: Scheme to use for connecting to the host. Defaults to HTTP. + [InitialDelaySecond ]: Number of seconds after the container has started before liveness probes are initiated. Minimum value is 1. Maximum value is 60. + [PeriodSecond ]: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value is 240. + [SuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. Maximum value is 10. + [TcpSocketHost ]: Optional: Host name to connect to, defaults to the pod IP. + [TcpSocketPort ]: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + [TerminationGracePeriodSecond ]: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. Maximum value is 3600 seconds (1 hour) + [TimeoutSecond ]: Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 240. + [Type ]: The type of probe. + +TEMPLATEINITCONTAINER : List of specialized containers that run before app containers. + [Arg ]: Container start command arguments. + [Command ]: Container start command. + [Env ]: Container environment variables. + [Name ]: Environment variable name. + [SecretRef ]: Name of the Container App secret from which to pull the environment variable value. + [Value ]: Non-secret environment variable value. + [Image ]: Container image tag. + [Name ]: Custom container name. + [ResourceCpu ]: Required CPU in cores, e.g. 0.5 + [ResourceMemory ]: Required memory, e.g. "250Mb" + [VolumeMount ]: Container volume mounts. + [MountPath ]: Path within the container at which the volume should be mounted.Must not contain ':'. + [VolumeName ]: This must match the Name of a Volume. + +TEMPLATEVOLUME : List of volume definitions for the Container App. + [Name ]: Volume name. + [StorageName ]: Name of storage resource. No need to provide for EmptyDir. + [StorageType ]: Storage type for the volume. If not provided, use EmptyDir. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapicontainerapp +#> +function Update-AzContainerAppsApiContainerApp { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ContainerAppName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode] + # ActiveRevisionsMode controls how active revisions are handled for the Container app:Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + # Revision weights can not be used in this mode. + # If no value if provided, this is the default. + ${ConfigurationActiveRevisionsMode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Optional. + # Max inactive revisions a Container App can have. + ${ConfigurationMaxInactiveRevision}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[]] + # Collection of private container registry credentials for containers used by the Container app + # To construct, see NOTES section for CONFIGURATIONREGISTRY properties and create a hash table. + ${ConfigurationRegistry}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]] + # Collection of secrets used by a Container app + # To construct, see NOTES section for CONFIGURATIONSECRET properties and create a hash table. + ${ConfigurationSecret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Dapr application identifier + ${DaprAppId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Tells Dapr which port your application is listening on + ${DaprAppPort}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol] + # Tells Dapr which protocol your application is using. + # Valid options are http and grpc. + # Default is http + ${DaprAppProtocol}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Enables API logging for the Dapr sidecar + ${DaprEnableApiLogging}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Boolean indicating if the Dapr side car is enabled + ${DaprEnabled}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. + # Default is 4 MB. + ${DaprHttpMaxRequestSize}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. + # Default is 65KB. + ${DaprHttpReadBufferSize}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel] + # Sets the log level for the Dapr sidecar. + # Allowed values are debug, info, warn, error. + # Default is info. + ${DaprLogLevel}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Resource ID of environment. + ${EnvironmentId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The name of the extended location. + ${ExtendedLocationName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes] + # The type of the extended location. + ${ExtendedLocationType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType] + # Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The set of user assigned identities associated with the resource. + # The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + # The dictionary values can be empty objects ({}) in requests. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Bool indicating if HTTP connections to is allowed. + # If set to false HTTP connections are automatically redirected to HTTPS connections + ${IngressAllowInsecure}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[]] + # custom domain bindings for Container Apps' hostnames. + # To construct, see NOTES section for INGRESSCUSTOMDOMAIN properties and create a hash table. + ${IngressCustomDomain}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Exposed Port in containers for TCP traffic from ingress + ${IngressExposedPort}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Bool indicating if app exposes an external http endpoint + ${IngressExternal}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[]] + # Rules to restrict incoming IP address. + # To construct, see NOTES section for INGRESSIPSECURITYRESTRICTION properties and create a hash table. + ${IngressIPSecurityRestriction}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Target Port in containers for traffic from ingress + ${IngressTargetPort}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[]] + # Traffic weights for app's revisions + # To construct, see NOTES section for INGRESSTRAFFIC properties and create a hash table. + ${IngressTraffic}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod] + # Ingress transport protocol + ${IngressTransport}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Deprecated. + # Resource ID of the Container App's environment. + ${ManagedEnvironmentId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Optional. + # Maximum number of container replicas. + # Defaults to 10 if not set. + ${ScaleMaxReplica}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Optional. + # Minimum number of container replicas. + ${ScaleMinReplica}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]] + # Scaling rules. + # To construct, see NOTES section for SCALERULE properties and create a hash table. + ${ScaleRule}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[]] + # List of container definitions for the Container App. + # To construct, see NOTES section for TEMPLATECONTAINER properties and create a hash table. + ${TemplateContainer}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[]] + # List of specialized containers that run before app containers. + # To construct, see NOTES section for TEMPLATEINITCONTAINER properties and create a hash table. + ${TemplateInitContainer}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # User friendly suffix that is appended to the revision name + ${TemplateRevisionSuffix}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[]] + # List of volume definitions for the Container App. + # To construct, see NOTES section for TEMPLATEVOLUME properties and create a hash table. + ${TemplateVolume}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Workload profile type to pin for container app execution. + ${WorkloadProfileType}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiContainerApp_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiContainerApp_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Patches a managed certificate. +Oly patching of tags is supported +.Description +Patches a managed certificate. +Oly patching of tags is supported +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapimanagedcertificate +#> +function Update-AzContainerAppsApiManagedCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ManagedCertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Certificate. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags]))] + [System.Collections.Hashtable] + # Application-specific metadata in the form of key-value pairs. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiManagedCertificate_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiManagedCertificate_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Patches a Managed Environment using JSON Merge Patch +.Description +Patches a Managed Environment using JSON Merge Patch +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. + +WORKLOADPROFILE : Workload profiles configured for the Managed Environment. + MaximumCount : The maximum capacity. + MinimumCount : The minimum capacity. + Type : Workload profile type for the workloads to run on. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapimanagedenvironment +#> +function Update-AzContainerAppsApiManagedEnvironment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Logs destination + ${AppLogConfigurationDestination}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for CustomDomainConfigurationCertificatePassword (Certificate password) + ${CustomDomainConfigurationCertificatePasswordInputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob) + ${CustomDomainConfigurationCertificateValueInputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Dns suffix for the environment domain + ${CustomDomainConfigurationDnsSuffix}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Application Insights connection string used by Dapr to export Service to Service communication telemetry + ${DaprAiConnectionString}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + ${DaprAiInstrumentationKey}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Log analytics customer id + ${LogAnalyticConfigurationCustomerId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Log analytics customer key + ${LogAnalyticConfigurationSharedKey}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType] + # Outbound type for the cluster + ${OutboundSettingOutBoundType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Virtual Appliance IP used as the Egress controller for the Environment + ${OutboundSettingVirtualNetworkApplianceIP}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName] + # Name of the Sku. + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # CIDR notation IP range assigned to the Docker bridge, network. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationDockerBridgeCidr}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Resource ID of a subnet for infrastructure components. + # This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationInfrastructureSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Boolean indicating the environment only has an internal load balancer. + # These environments do not have a public static IP resource. + # They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + ${VnetConfigurationInternal}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationPlatformReservedCidr}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + ${VnetConfigurationPlatformReservedDnsIP}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Resource ID of a subnet that Container App containers are injected into. + # This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationRuntimeSubnetId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[]] + # Workload profiles configured for the Managed Environment. + # To construct, see NOTES section for WORKLOADPROFILE properties and create a hash table. + ${WorkloadProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Whether or not this Managed Environment is zone-redundant. + ${ZoneRedundant}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiManagedEnvironment_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiManagedEnvironment_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/README.md b/swaggerci/app/exports/README.md new file mode 100644 index 000000000000..5e8f778fc0c6 --- /dev/null +++ b/swaggerci/app/exports/README.md @@ -0,0 +1,20 @@ +# Exports +This directory contains the cmdlets *exported by* `Az.ContainerAppsApi`. No other cmdlets in this repository are directly exported. What that means is the `Az.ContainerAppsApi` module will run [Export-ModuleMember](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/export-modulemember) on the cmldets in this directory. The cmdlets in this directory are generated at **build-time**. Do not put any custom code, files, cmdlets, etc. into this directory. Please use `../custom` for all custom implementation. + +## Info +- Modifiable: no +- Generated: all +- Committed: no +- Packaged: yes + +## Details +The cmdlets generated here are created every time you run `build-module.ps1`. These cmdlets are a merge of all (excluding `InternalExport`) cmdlets from the private binary (`../bin/Az.ContainerAppsApi.private.dll`) and from the `../custom/Az.ContainerAppsApi.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.ContainerAppsApi.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/app/exports/Remove-AzContainerAppsApiCertificate.ps1 b/swaggerci/app/exports/Remove-AzContainerAppsApiCertificate.ps1 new file mode 100644 index 000000000000..9a1a1310a7a3 --- /dev/null +++ b/swaggerci/app/exports/Remove-AzContainerAppsApiCertificate.ps1 @@ -0,0 +1,216 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes the specified Certificate. +.Description +Deletes the specified Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapicertificate +#> +function Remove-AzContainerAppsApiCertificate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('CertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiCertificate_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiCertificate_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironment.ps1 b/swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironment.ps1 new file mode 100644 index 000000000000..893c9a36bac5 --- /dev/null +++ b/swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironment.ps1 @@ -0,0 +1,222 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete an connectedEnvironment. +.Description +Delete an connectedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapiconnectedenvironment +#> +function Remove-AzContainerAppsApiConnectedEnvironment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ConnectedEnvironmentName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the connectedEnvironment. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironment_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironment_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.ps1 b/swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.ps1 new file mode 100644 index 000000000000..30f5d4156df5 --- /dev/null +++ b/swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.ps1 @@ -0,0 +1,215 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes the specified Certificate. +.Description +Deletes the specified Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapiconnectedenvironmentscertificate +#> +function Remove-AzContainerAppsApiConnectedEnvironmentsCertificate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${CertificateName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Connected Environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironmentsCertificate_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironmentsCertificate_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.ps1 b/swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.ps1 new file mode 100644 index 000000000000..834775ddfea0 --- /dev/null +++ b/swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.ps1 @@ -0,0 +1,215 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete a Dapr Component from a connected environment. +.Description +Delete a Dapr Component from a connected environment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapiconnectedenvironmentsdaprcomponent +#> +function Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the connected environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.ps1 b/swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.ps1 new file mode 100644 index 000000000000..10523cddaac0 --- /dev/null +++ b/swaggerci/app/exports/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.ps1 @@ -0,0 +1,215 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete storage for a connectedEnvironment. +.Description +Delete storage for a connectedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapiconnectedenvironmentsstorage +#> +function Remove-AzContainerAppsApiConnectedEnvironmentsStorage { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the storage. + ${StorageName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironmentsStorage_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiConnectedEnvironmentsStorage_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Remove-AzContainerAppsApiContainerApp.ps1 b/swaggerci/app/exports/Remove-AzContainerAppsApiContainerApp.ps1 new file mode 100644 index 000000000000..037e69fab42b --- /dev/null +++ b/swaggerci/app/exports/Remove-AzContainerAppsApiContainerApp.ps1 @@ -0,0 +1,222 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete a Container App. +.Description +Delete a Container App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapicontainerapp +#> +function Remove-AzContainerAppsApiContainerApp { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ContainerAppName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiContainerApp_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiContainerApp_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Remove-AzContainerAppsApiContainerAppsAuthConfig.ps1 b/swaggerci/app/exports/Remove-AzContainerAppsApiContainerAppsAuthConfig.ps1 new file mode 100644 index 000000000000..5364c63fff05 --- /dev/null +++ b/swaggerci/app/exports/Remove-AzContainerAppsApiContainerAppsAuthConfig.ps1 @@ -0,0 +1,215 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete a Container App AuthConfig. +.Description +Delete a Container App AuthConfig. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapicontainerappsauthconfig +#> +function Remove-AzContainerAppsApiContainerAppsAuthConfig { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App AuthConfig. + ${AuthConfigName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiContainerAppsAuthConfig_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiContainerAppsAuthConfig_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Remove-AzContainerAppsApiContainerAppsSourceControl.ps1 b/swaggerci/app/exports/Remove-AzContainerAppsApiContainerAppsSourceControl.ps1 new file mode 100644 index 000000000000..b5d953e5aa9b --- /dev/null +++ b/swaggerci/app/exports/Remove-AzContainerAppsApiContainerAppsSourceControl.ps1 @@ -0,0 +1,227 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete a Container App SourceControl. +.Description +Delete a Container App SourceControl. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapicontainerappssourcecontrol +#> +function Remove-AzContainerAppsApiContainerAppsSourceControl { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App SourceControl. + ${SourceControlName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiContainerAppsSourceControl_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiContainerAppsSourceControl_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Remove-AzContainerAppsApiDaprComponent.ps1 b/swaggerci/app/exports/Remove-AzContainerAppsApiDaprComponent.ps1 new file mode 100644 index 000000000000..b127e6290b8a --- /dev/null +++ b/swaggerci/app/exports/Remove-AzContainerAppsApiDaprComponent.ps1 @@ -0,0 +1,215 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete a Dapr Component from a Managed Environment. +.Description +Delete a Dapr Component from a Managed Environment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapidaprcomponent +#> +function Remove-AzContainerAppsApiDaprComponent { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Dapr Component. + ${ComponentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiDaprComponent_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiDaprComponent_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Remove-AzContainerAppsApiManagedCertificate.ps1 b/swaggerci/app/exports/Remove-AzContainerAppsApiManagedCertificate.ps1 new file mode 100644 index 000000000000..15fa6136bb63 --- /dev/null +++ b/swaggerci/app/exports/Remove-AzContainerAppsApiManagedCertificate.ps1 @@ -0,0 +1,216 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes the specified Managed Certificate. +.Description +Deletes the specified Managed Certificate. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapimanagedcertificate +#> +function Remove-AzContainerAppsApiManagedCertificate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ManagedCertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Certificate. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiManagedCertificate_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiManagedCertificate_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Remove-AzContainerAppsApiManagedEnvironment.ps1 b/swaggerci/app/exports/Remove-AzContainerAppsApiManagedEnvironment.ps1 new file mode 100644 index 000000000000..71907e0fd500 --- /dev/null +++ b/swaggerci/app/exports/Remove-AzContainerAppsApiManagedEnvironment.ps1 @@ -0,0 +1,221 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete a Managed Environment if it does not have any container apps. +.Description +Delete a Managed Environment if it does not have any container apps. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapimanagedenvironment +#> +function Remove-AzContainerAppsApiManagedEnvironment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiManagedEnvironment_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiManagedEnvironment_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Remove-AzContainerAppsApiManagedEnvironmentsStorage.ps1 b/swaggerci/app/exports/Remove-AzContainerAppsApiManagedEnvironmentsStorage.ps1 new file mode 100644 index 000000000000..76a5ab8f453e --- /dev/null +++ b/swaggerci/app/exports/Remove-AzContainerAppsApiManagedEnvironmentsStorage.ps1 @@ -0,0 +1,215 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete storage for a managedEnvironment. +.Description +Delete storage for a managedEnvironment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/remove-azcontainerappsapimanagedenvironmentsstorage +#> +function Remove-AzContainerAppsApiManagedEnvironmentsStorage { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the storage. + ${StorageName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiManagedEnvironmentsStorage_Delete'; + DeleteViaIdentity = 'Az.ContainerAppsApi.private\Remove-AzContainerAppsApiManagedEnvironmentsStorage_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Restart-AzContainerAppsApiContainerAppRevision.ps1 b/swaggerci/app/exports/Restart-AzContainerAppsApiContainerAppRevision.ps1 new file mode 100644 index 000000000000..a3b4f183408b --- /dev/null +++ b/swaggerci/app/exports/Restart-AzContainerAppsApiContainerAppRevision.ps1 @@ -0,0 +1,215 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Restarts a revision for a Container App +.Description +Restarts a revision for a Container App +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/restart-azcontainerappsapicontainerapprevision +#> +function Restart-AzContainerAppsApiContainerAppRevision { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Restart', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Restart', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${ContainerAppName}, + + [Parameter(ParameterSetName='Restart', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Restart', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App Revision. + ${RevisionName}, + + [Parameter(ParameterSetName='Restart')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RestartViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Restart = 'Az.ContainerAppsApi.private\Restart-AzContainerAppsApiContainerAppRevision_Restart'; + RestartViaIdentity = 'Az.ContainerAppsApi.private\Restart-AzContainerAppsApiContainerAppRevision_RestartViaIdentity'; + } + if (('Restart') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.ps1 b/swaggerci/app/exports/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.ps1 new file mode 100644 index 000000000000..8a6ea94046f8 --- /dev/null +++ b/swaggerci/app/exports/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.ps1 @@ -0,0 +1,237 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Checks if resource connectedEnvironmentName is available. +.Description +Checks if resource connectedEnvironmentName is available. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +CHECKNAMEAVAILABILITYREQUEST : The check availability request body. + [Name ]: The name of the resource for which availability needs to be checked. + [Type ]: The resource type. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/test-azcontainerappsapiconnectedenvironmentnameavailability +#> +function Test-AzContainerAppsApiConnectedEnvironmentNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest] + # The check availability request body. + # To construct, see NOTES section for CHECKNAMEAVAILABILITYREQUEST properties and create a hash table. + ${CheckNameAvailabilityRequest}, + + [Parameter(ParameterSetName='CheckExpanded')] + [Parameter(ParameterSetName='CheckViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The name of the resource for which availability needs to be checked. + ${Name}, + + [Parameter(ParameterSetName='CheckExpanded')] + [Parameter(ParameterSetName='CheckViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The resource type. + ${Type}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Check = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiConnectedEnvironmentNameAvailability_Check'; + CheckExpanded = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiConnectedEnvironmentNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Test-AzContainerAppsApiNamespaceNameAvailability.ps1 b/swaggerci/app/exports/Test-AzContainerAppsApiNamespaceNameAvailability.ps1 new file mode 100644 index 000000000000..28971e636181 --- /dev/null +++ b/swaggerci/app/exports/Test-AzContainerAppsApiNamespaceNameAvailability.ps1 @@ -0,0 +1,237 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Checks if resource name is available. +.Description +Checks if resource name is available. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +CHECKNAMEAVAILABILITYREQUEST : The check availability request body. + [Name ]: The name of the resource for which availability needs to be checked. + [Type ]: The resource type. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/test-azcontainerappsapinamespacenameavailability +#> +function Test-AzContainerAppsApiNamespaceNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # 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.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest] + # The check availability request body. + # To construct, see NOTES section for CHECKNAMEAVAILABILITYREQUEST properties and create a hash table. + ${CheckNameAvailabilityRequest}, + + [Parameter(ParameterSetName='CheckExpanded')] + [Parameter(ParameterSetName='CheckViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The name of the resource for which availability needs to be checked. + ${Name}, + + [Parameter(ParameterSetName='CheckExpanded')] + [Parameter(ParameterSetName='CheckViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The resource type. + ${Type}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Check = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiNamespaceNameAvailability_Check'; + CheckExpanded = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiNamespaceNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiNamespaceNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.ContainerAppsApi.private\Test-AzContainerAppsApiNamespaceNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Update-AzContainerAppsApiCertificate.ps1 b/swaggerci/app/exports/Update-AzContainerAppsApiCertificate.ps1 new file mode 100644 index 000000000000..328ee8002900 --- /dev/null +++ b/swaggerci/app/exports/Update-AzContainerAppsApiCertificate.ps1 @@ -0,0 +1,219 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Patches a certificate. +Currently only patching of tags is supported +.Description +Patches a certificate. +Currently only patching of tags is supported +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapicertificate +#> +function Update-AzContainerAppsApiCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('CertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags]))] + [System.Collections.Hashtable] + # Application-specific metadata in the form of key-value pairs. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiCertificate_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiCertificate_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.ps1 b/swaggerci/app/exports/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.ps1 new file mode 100644 index 000000000000..f195696fce7c --- /dev/null +++ b/swaggerci/app/exports/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.ps1 @@ -0,0 +1,218 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Patches a certificate. +Currently only patching of tags is supported +.Description +Patches a certificate. +Currently only patching of tags is supported +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapiconnectedenvironmentscertificate +#> +function Update-AzContainerAppsApiConnectedEnvironmentsCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Certificate. + ${CertificateName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Connected Environment. + ${ConnectedEnvironmentName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags]))] + [System.Collections.Hashtable] + # Application-specific metadata in the form of key-value pairs. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiConnectedEnvironmentsCertificate_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiConnectedEnvironmentsCertificate_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Update-AzContainerAppsApiContainerApp.ps1 b/swaggerci/app/exports/Update-AzContainerAppsApiContainerApp.ps1 new file mode 100644 index 000000000000..48ce2757aefa --- /dev/null +++ b/swaggerci/app/exports/Update-AzContainerAppsApiContainerApp.ps1 @@ -0,0 +1,571 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Patches a Container App using JSON Merge Patch +.Description +Patches a Container App using JSON Merge Patch +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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. + +CONFIGURATIONREGISTRY : Collection of private container registry credentials for containers used by the Container app + [Identity ]: A Managed Identity to use to authenticate with Azure Container Registry. For user-assigned identities, use the full user-assigned identity Resource ID. For system-assigned identities, use 'system' + [PasswordSecretRef ]: The name of the Secret that contains the registry login password + [Server ]: Container Registry Server + [Username ]: Container Registry Username + +CONFIGURATIONSECRET : Collection of secrets used by a Container app + [Name ]: Secret Name. + [Value ]: Secret Value. + +INGRESSCUSTOMDOMAIN : custom domain bindings for Container Apps' hostnames. + CertificateId : Resource Id of the Certificate to be bound to this hostname. Must exist in the Managed Environment. + Name : Hostname. + [BindingType ]: Custom Domain binding type. + +INGRESSIPSECURITYRESTRICTION : Rules to restrict incoming IP address. + Action : Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or ALL Deny + IPAddressRange : CIDR notation to match incoming IP address + Name : Name for the IP restriction rule. + [Description ]: Describe the IP restriction rule that is being sent to the container-app. This is an optional field. + +INGRESSTRAFFIC : Traffic weights for app's revisions + [Label ]: Associates a traffic label with a revision + [LatestRevision ]: Indicates that the traffic weight belongs to a latest stable revision + [RevisionName ]: Name of a revision + [Weight ]: Traffic weight assigned to a revision + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. + +SCALERULE : Scaling rules. + [AzureQueueAuth ]: Authentication secrets for the queue scale rule. + [SecretRef ]: Name of the Container App secret from which to pull the auth params. + [TriggerParameter ]: Trigger Parameter that uses the secret + [AzureQueueLength ]: Queue length. + [AzureQueueName ]: Queue name. + [CustomAuth ]: Authentication secrets for the custom scale rule. + [CustomMetadata ]: Metadata properties to describe custom scale rule. + [(Any) ]: This indicates any property can be added to this object. + [CustomType ]: Type of the custom scale rule eg: azure-servicebus, redis etc. + [HttpAuth ]: Authentication secrets for the custom scale rule. + [HttpMetadata ]: Metadata properties to describe http scale rule. + [(Any) ]: This indicates any property can be added to this object. + [Name ]: Scale Rule Name + [TcpAuth ]: Authentication secrets for the tcp scale rule. + [TcpMetadata ]: Metadata properties to describe tcp scale rule. + [(Any) ]: This indicates any property can be added to this object. + +TEMPLATECONTAINER : List of container definitions for the Container App. + [Arg ]: Container start command arguments. + [Command ]: Container start command. + [Env ]: Container environment variables. + [Name ]: Environment variable name. + [SecretRef ]: Name of the Container App secret from which to pull the environment variable value. + [Value ]: Non-secret environment variable value. + [Image ]: Container image tag. + [Name ]: Custom container name. + [ResourceCpu ]: Required CPU in cores, e.g. 0.5 + [ResourceMemory ]: Required memory, e.g. "250Mb" + [VolumeMount ]: Container volume mounts. + [MountPath ]: Path within the container at which the volume should be mounted.Must not contain ':'. + [VolumeName ]: This must match the Name of a Volume. + [Probe ]: List of probes for the container. + [FailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. Maximum value is 10. + [HttpGetHost ]: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + [HttpGetHttpHeader ]: Custom headers to set in the request. HTTP allows repeated headers. + Name : The header field name + Value : The header field value + [HttpGetPath ]: Path to access on the HTTP server. + [HttpGetPort ]: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + [HttpGetScheme ]: Scheme to use for connecting to the host. Defaults to HTTP. + [InitialDelaySecond ]: Number of seconds after the container has started before liveness probes are initiated. Minimum value is 1. Maximum value is 60. + [PeriodSecond ]: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value is 240. + [SuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. Maximum value is 10. + [TcpSocketHost ]: Optional: Host name to connect to, defaults to the pod IP. + [TcpSocketPort ]: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + [TerminationGracePeriodSecond ]: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. Maximum value is 3600 seconds (1 hour) + [TimeoutSecond ]: Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 240. + [Type ]: The type of probe. + +TEMPLATEINITCONTAINER : List of specialized containers that run before app containers. + [Arg ]: Container start command arguments. + [Command ]: Container start command. + [Env ]: Container environment variables. + [Name ]: Environment variable name. + [SecretRef ]: Name of the Container App secret from which to pull the environment variable value. + [Value ]: Non-secret environment variable value. + [Image ]: Container image tag. + [Name ]: Custom container name. + [ResourceCpu ]: Required CPU in cores, e.g. 0.5 + [ResourceMemory ]: Required memory, e.g. "250Mb" + [VolumeMount ]: Container volume mounts. + [MountPath ]: Path within the container at which the volume should be mounted.Must not contain ':'. + [VolumeName ]: This must match the Name of a Volume. + +TEMPLATEVOLUME : List of volume definitions for the Container App. + [Name ]: Volume name. + [StorageName ]: Name of storage resource. No need to provide for EmptyDir. + [StorageType ]: Storage type for the volume. If not provided, use EmptyDir. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapicontainerapp +#> +function Update-AzContainerAppsApiContainerApp { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ContainerAppName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Container App. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode] + # ActiveRevisionsMode controls how active revisions are handled for the Container app:Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + # Revision weights can not be used in this mode. + # If no value if provided, this is the default. + ${ConfigurationActiveRevisionsMode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Optional. + # Max inactive revisions a Container App can have. + ${ConfigurationMaxInactiveRevision}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[]] + # Collection of private container registry credentials for containers used by the Container app + # To construct, see NOTES section for CONFIGURATIONREGISTRY properties and create a hash table. + ${ConfigurationRegistry}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]] + # Collection of secrets used by a Container app + # To construct, see NOTES section for CONFIGURATIONSECRET properties and create a hash table. + ${ConfigurationSecret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Dapr application identifier + ${DaprAppId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Tells Dapr which port your application is listening on + ${DaprAppPort}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol] + # Tells Dapr which protocol your application is using. + # Valid options are http and grpc. + # Default is http + ${DaprAppProtocol}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Enables API logging for the Dapr sidecar + ${DaprEnableApiLogging}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Boolean indicating if the Dapr side car is enabled + ${DaprEnabled}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. + # Default is 4 MB. + ${DaprHttpMaxRequestSize}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. + # Default is 65KB. + ${DaprHttpReadBufferSize}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel] + # Sets the log level for the Dapr sidecar. + # Allowed values are debug, info, warn, error. + # Default is info. + ${DaprLogLevel}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Resource ID of environment. + ${EnvironmentId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The name of the extended location. + ${ExtendedLocationName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes] + # The type of the extended location. + ${ExtendedLocationType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType] + # Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The set of user assigned identities associated with the resource. + # The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + # The dictionary values can be empty objects ({}) in requests. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Bool indicating if HTTP connections to is allowed. + # If set to false HTTP connections are automatically redirected to HTTPS connections + ${IngressAllowInsecure}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[]] + # custom domain bindings for Container Apps' hostnames. + # To construct, see NOTES section for INGRESSCUSTOMDOMAIN properties and create a hash table. + ${IngressCustomDomain}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Exposed Port in containers for TCP traffic from ingress + ${IngressExposedPort}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Bool indicating if app exposes an external http endpoint + ${IngressExternal}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[]] + # Rules to restrict incoming IP address. + # To construct, see NOTES section for INGRESSIPSECURITYRESTRICTION properties and create a hash table. + ${IngressIPSecurityRestriction}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Target Port in containers for traffic from ingress + ${IngressTargetPort}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[]] + # Traffic weights for app's revisions + # To construct, see NOTES section for INGRESSTRAFFIC properties and create a hash table. + ${IngressTraffic}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod] + # Ingress transport protocol + ${IngressTransport}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Deprecated. + # Resource ID of the Container App's environment. + ${ManagedEnvironmentId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Optional. + # Maximum number of container replicas. + # Defaults to 10 if not set. + ${ScaleMaxReplica}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Int32] + # Optional. + # Minimum number of container replicas. + ${ScaleMinReplica}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]] + # Scaling rules. + # To construct, see NOTES section for SCALERULE properties and create a hash table. + ${ScaleRule}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[]] + # List of container definitions for the Container App. + # To construct, see NOTES section for TEMPLATECONTAINER properties and create a hash table. + ${TemplateContainer}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[]] + # List of specialized containers that run before app containers. + # To construct, see NOTES section for TEMPLATEINITCONTAINER properties and create a hash table. + ${TemplateInitContainer}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # User friendly suffix that is appended to the revision name + ${TemplateRevisionSuffix}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[]] + # List of volume definitions for the Container App. + # To construct, see NOTES section for TEMPLATEVOLUME properties and create a hash table. + ${TemplateVolume}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Workload profile type to pin for container app execution. + ${WorkloadProfileType}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiContainerApp_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiContainerApp_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Update-AzContainerAppsApiManagedCertificate.ps1 b/swaggerci/app/exports/Update-AzContainerAppsApiManagedCertificate.ps1 new file mode 100644 index 000000000000..ea9d002814e2 --- /dev/null +++ b/swaggerci/app/exports/Update-AzContainerAppsApiManagedCertificate.ps1 @@ -0,0 +1,219 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Patches a managed certificate. +Oly patching of tags is supported +.Description +Patches a managed certificate. +Oly patching of tags is supported +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapimanagedcertificate +#> +function Update-AzContainerAppsApiManagedCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ManagedCertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Managed Certificate. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags]))] + [System.Collections.Hashtable] + # Application-specific metadata in the form of key-value pairs. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiManagedCertificate_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiManagedCertificate_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/exports/Update-AzContainerAppsApiManagedEnvironment.ps1 b/swaggerci/app/exports/Update-AzContainerAppsApiManagedEnvironment.ps1 new file mode 100644 index 000000000000..3b7c4eb6fd9b --- /dev/null +++ b/swaggerci/app/exports/Update-AzContainerAppsApiManagedEnvironment.ps1 @@ -0,0 +1,359 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Patches a Managed Environment using JSON Merge Patch +.Description +Patches a Managed Environment using JSON Merge Patch +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity +.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 + [AuthConfigName ]: Name of the Container App AuthConfig. + [CertificateName ]: Name of the Certificate. + [ComponentName ]: Name of the Dapr Component. + [ConnectedEnvironmentName ]: Name of the connectedEnvironment. + [ContainerAppName ]: Name of the Container App. + [DetectorName ]: Name of the Container App Detector. + [EnvironmentName ]: Name of the Environment. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [ManagedCertificateName ]: Name of the Managed Certificate. + [ReplicaName ]: Name of the Container App Revision Replica. + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [RevisionName ]: Name of the Container App Revision. + [SourceControlName ]: Name of the Container App SourceControl. + [StorageName ]: Name of the storage. + [SubscriptionId ]: The ID of the target subscription. + +WORKLOADPROFILE : Workload profiles configured for the Managed Environment. + MaximumCount : The maximum capacity. + MinimumCount : The minimum capacity. + Type : Workload profile type for the workloads to run on. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/update-azcontainerappsapimanagedenvironment +#> +function Update-AzContainerAppsApiManagedEnvironment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # Name of the Environment. + ${EnvironmentName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Logs destination + ${AppLogConfigurationDestination}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for CustomDomainConfigurationCertificatePassword (Certificate password) + ${CustomDomainConfigurationCertificatePasswordInputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob) + ${CustomDomainConfigurationCertificateValueInputFile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Dns suffix for the environment domain + ${CustomDomainConfigurationDnsSuffix}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Application Insights connection string used by Dapr to export Service to Service communication telemetry + ${DaprAiConnectionString}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + ${DaprAiInstrumentationKey}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Log analytics customer id + ${LogAnalyticConfigurationCustomerId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Log analytics customer key + ${LogAnalyticConfigurationSharedKey}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType] + # Outbound type for the cluster + ${OutboundSettingOutBoundType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Virtual Appliance IP used as the Egress controller for the Environment + ${OutboundSettingVirtualNetworkApplianceIP}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName])] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName] + # Name of the Sku. + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # CIDR notation IP range assigned to the Docker bridge, network. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationDockerBridgeCidr}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Resource ID of a subnet for infrastructure components. + # This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationInfrastructureSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Boolean indicating the environment only has an internal load balancer. + # These environments do not have a public static IP resource. + # They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + ${VnetConfigurationInternal}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationPlatformReservedCidr}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + ${VnetConfigurationPlatformReservedDnsIP}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.String] + # Resource ID of a subnet that Container App containers are injected into. + # This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. + # Must not overlap with any other provided IP ranges. + ${VnetConfigurationRuntimeSubnetId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[]] + # Workload profiles configured for the Managed Environment. + # To construct, see NOTES section for WORKLOADPROFILE properties and create a hash table. + ${WorkloadProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Whether or not this Managed Environment is zone-redundant. + ${ZoneRedundant}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiManagedEnvironment_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.ContainerAppsApi.private\Update-AzContainerAppsApiManagedEnvironment_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/app/generate-help.ps1 b/swaggerci/app/generate-help.ps1 new file mode 100644 index 000000000000..252ac62b819e --- /dev/null +++ b/swaggerci/app/generate-help.ps1 @@ -0,0 +1,66 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated) +$ErrorActionPreference = 'Stop' + +$pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path +if(-not $Isolated) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +$exportsFolder = Join-Path $PSScriptRoot 'exports' +if(-not (Test-Path $exportsFolder)) { + Write-Error "Exports folder '$exportsFolder' was not found." +} + +$directories = Get-ChildItem -Directory -Path $exportsFolder +$hasProfiles = ($directories | Measure-Object).Count -gt 0 +if(-not $hasProfiles) { + $directories = Get-Item -Path $exportsFolder +} + +$docsFolder = Join-Path $PSScriptRoot 'docs' +if(Test-Path $docsFolder) { + $null = Get-ChildItem -Path $docsFolder -Recurse -Exclude 'README.md' | Remove-Item -Recurse -ErrorAction SilentlyContinue +} +$null = New-Item -ItemType Directory -Force -Path $docsFolder -ErrorAction SilentlyContinue +$examplesFolder = Join-Path $PSScriptRoot 'examples' + +$modulePsd1 = Get-Item -Path (Join-Path $PSScriptRoot './Az.ContainerAppsApi.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.ContainerAppsApi.private.dll') +$instance = [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/Module.cs b/swaggerci/app/generated/Module.cs new file mode 100644 index 000000000000..de9a4717e75c --- /dev/null +++ b/swaggerci/app/generated/Module.cs @@ -0,0 +1,181 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using SendAsyncStepDelegate = global::System.Func, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>; + using PipelineChangeDelegate = global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>; + using GetParameterDelegate = global::System.Func; + using ModuleLoadPipelineDelegate = global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>, global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>>; + using ArgumentCompleterDelegate = global::System.Func; + using GetTelemetryIdDelegate = global::System.Func; + using TelemetryDelegate = global::System.Action; + using NewRequestPipelineDelegate = global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>, global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>>; + using SignalDelegate = global::System.Func, global::System.Threading.Tasks.Task>; + using EventListenerDelegate = global::System.Func, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Management.Automation.InvocationInfo, string, string, string, global::System.Exception, global::System.Threading.Tasks.Task>; + using NextDelegate = global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>; + + /// A class that contains the module-common code and data. + public partial class Module + { + /// The currently selected profile. + public string Profile = global::System.String.Empty; + + public global::System.Net.Http.HttpClientHandler _handler = new global::System.Net.Http.HttpClientHandler(); + + /// the ISendAsync pipeline instance + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline _pipeline; + + /// the ISendAsync pipeline instance (when proxy is enabled) + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline _pipelineWithProxy; + + public bool _useProxy = false; + + public global::System.Net.WebProxy _webProxy = new global::System.Net.WebProxy(); + + /// Gets completion data for azure specific fields + public ArgumentCompleterDelegate ArgumentCompleter { get; set; } + + /// The instance of the Client API + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient ClientAPI { get; set; } + + /// A delegate that gets called for each signalled event + public EventListenerDelegate EventListener { get; set; } + + /// The delegate to call to get parameter data from a common module. + public GetParameterDelegate GetParameterValue { get; set; } + + /// The delegate to get the telemetry Id. + public GetTelemetryIdDelegate GetTelemetryId { get; set; } + + /// Backing field for property. + private static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module _instance; + + /// the singleton of this module class + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module Instance => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module._instance?? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module._instance = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module()); + + /// The Name of this module + public string Name => @"Az.ContainerAppsApi"; + + /// 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.ContainerAppsApi"; + + /// The delegate for creating a telemetry. + public TelemetryDelegate Telemetry { get; set; } + + /// The from the cmdlet + /// The HttpPipeline for the request + + partial void AfterCreatePipeline(global::System.Management.Automation.InvocationInfo invocationInfo, ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline pipeline); + + partial void CustomInit(); + + /// Creates an instance of the HttpPipeline for each call. + /// The from the cmdlet + /// the cmdlet's correlation id. + /// the cmdlet's process record correlation id. + /// the cmdlet's parameterset name. + /// a dict for extensible parameters + /// An instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline for the remote call. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline CreatePipeline(global::System.Management.Automation.InvocationInfo invocationInfo, string correlationId, string processRecordId, string parameterSetName = null, global::System.Collections.Generic.IDictionary extensibleParameters = null) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline pipeline = null; + BeforeCreatePipeline(invocationInfo, ref pipeline); + pipeline = (pipeline ?? (_useProxy ? _pipelineWithProxy : _pipeline)).Clone(); + AfterCreatePipeline(invocationInfo, ref pipeline); + pipeline.Append(new Runtime.CmdInfoHandler(processRecordId, invocationInfo, parameterSetName).SendAsync); + OnNewRequest?.Invoke( invocationInfo, correlationId,processRecordId, (step)=> { pipeline.Prepend(step); } , (step)=> { pipeline.Append(step); } ); + return pipeline; + } + + /// Gets parameters from a common module. + /// The from the cmdlet + /// the cmdlet's correlation id. + /// The name of the parameter to get the value for. + /// + /// The parameter value from the common module. (Note: this should be type converted on the way back) + /// + public object GetParameter(global::System.Management.Automation.InvocationInfo invocationInfo, string correlationId, string parameterName) => GetParameterValue?.Invoke( ResourceId, Name, invocationInfo, correlationId,parameterName ); + + /// Initialization steps performed after the module is loaded. + public void Init() + { + OnModuleLoad?.Invoke( ResourceId, Name ,(step)=> { _pipeline.Prepend(step); } , (step)=> { _pipeline.Append(step); } ); + OnModuleLoad?.Invoke( ResourceId, Name ,(step)=> { _pipelineWithProxy.Prepend(step); } , (step)=> { _pipelineWithProxy.Append(step); } ); + CustomInit(); + } + + /// Creates the module instance. + private Module() + { + // constructor + ClientAPI = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient(); + _handler.Proxy = _webProxy; + _pipeline = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline(new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpClientFactory(new global::System.Net.Http.HttpClient())); + _pipelineWithProxy = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline(new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpClientFactory(new global::System.Net.Http.HttpClient(_handler))); + } + + /// The HTTP Proxy to use. + /// The HTTP Proxy Credentials + /// True if the proxy should use default credentials + public void SetProxyConfiguration(global::System.Uri proxy, global::System.Management.Automation.PSCredential proxyCredential, bool proxyUseDefaultCredentials) + { + _useProxy = proxy != null; + if (proxy == null) + { + return; + } + // set the proxy configuration + _webProxy.Address = proxy; + _webProxy.BypassProxyOnLocal = false; + if (proxyUseDefaultCredentials) + { + _webProxy.Credentials = null; + _webProxy.UseDefaultCredentials = true; + } + else + { + _webProxy.UseDefaultCredentials = false; + _webProxy.Credentials = proxyCredential ?.GetNetworkCredential(); + } + } + + /// Called to dispatch events to the common module listener + /// The ID of the event + /// The cancellation token for the event + /// A delegate to get the detailed event data + /// The callback for the event dispatcher + /// The from the cmdlet + /// the cmdlet's parameterset name. + /// the cmdlet's correlation id. + /// the cmdlet's process record correlation id. + /// the exception that is being thrown (if available) + /// + /// A that will be complete when handling of the event is completed. + /// + public async global::System.Threading.Tasks.Task Signal(string id, global::System.Threading.CancellationToken token, global::System.Func getEventData, SignalDelegate signal, global::System.Management.Automation.InvocationInfo invocationInfo, string parameterSetName, string correlationId, string processRecordId, global::System.Exception exception) + { + using( NoSynchronizationContext ) + { + await EventListener?.Invoke(id,token,getEventData, signal, invocationInfo, parameterSetName, correlationId,processRecordId,exception); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/ContainerAppsApiClient.cs b/swaggerci/app/generated/api/ContainerAppsApiClient.cs new file mode 100644 index 000000000000..ea421b848ec3 --- /dev/null +++ b/swaggerci/app/generated/api/ContainerAppsApiClient.cs @@ -0,0 +1,16057 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Low-level API implementation for the ContainerApps API Client service. + /// + public partial class ContainerAppsApiClient + { + + /// Get all available workload profiles for a location. + /// The ID of the target subscription. + /// The name of Azure region. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task AvailableWorkloadProfilesGet(string subscriptionId, string location, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.App/locations/" + + global::System.Uri.EscapeDataString(location) + + "/availableManagedEnvironmentsWorkloadProfileTypes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AvailableWorkloadProfilesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all available workload profiles for a location. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task AvailableWorkloadProfilesGetViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/providers/Microsoft.App/locations/(?[^/]+)/availableManagedEnvironmentsWorkloadProfileTypes$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.App/locations/{location}/availableManagedEnvironmentsWorkloadProfileTypes'"); + } + + // 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.App/locations/" + + location + + "/availableManagedEnvironmentsWorkloadProfileTypes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AvailableWorkloadProfilesGet_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task AvailableWorkloadProfilesGet_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfilesCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The ID of the target subscription. + /// The name of Azure region. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task AvailableWorkloadProfilesGet_Validate(string subscriptionId, string location, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(location),location); + await eventListener.AssertMinimumLength(nameof(location),location,1); + } + } + + /// Get all billingMeters for a location. + /// The ID of the target subscription. + /// The name of Azure region. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task BillingMetersGet(string subscriptionId, string location, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.App/locations/" + + global::System.Uri.EscapeDataString(location) + + "/billingMeters" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BillingMetersGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all billingMeters for a location. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task BillingMetersGetViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/providers/Microsoft.App/locations/(?[^/]+)/billingMeters$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.App/locations/{location}/billingMeters'"); + } + + // 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.App/locations/" + + location + + "/billingMeters" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BillingMetersGet_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task BillingMetersGet_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BillingMeterCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The ID of the target subscription. + /// The name of Azure region. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task BillingMetersGet_Validate(string subscriptionId, string location, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(location),location); + await eventListener.AssertMinimumLength(nameof(location),location,1); + } + } + + /// Create or Update a Certificate. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Certificate. + /// Certificate to be created or updated + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to 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 environmentName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/certificates/" + + global::System.Uri.EscapeDataString(certificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CertificatesCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or Update a Certificate. + /// + /// Certificate to be created or updated + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to 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.ContainerAppsApi.Models.Api20221101Preview.ICertificate body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/certificates/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/certificates/{certificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var certificateName = _match.Groups["certificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/certificates/" + + certificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.ISendAsync pipeline to 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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Certificate.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Certificate. + /// Certificate to be created or updated + /// an 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 environmentName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(certificateName),certificateName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Deletes the specified Certificate. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Certificate. + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to 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 environmentName, string certificateName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/certificates/" + + global::System.Uri.EscapeDataString(certificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CertificatesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Deletes the specified Certificate. + /// + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to 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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/certificates/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/certificates/{certificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var certificateName = _match.Groups["certificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/certificates/" + + certificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.ISendAsync pipeline to 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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Certificate. + /// an 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 environmentName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(certificateName),certificateName); + } + } + + /// Get the specified Certificate. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Certificate. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to 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 environmentName, string certificateName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/certificates/" + + global::System.Uri.EscapeDataString(certificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CertificatesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the specified Certificate. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to 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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/certificates/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/certificates/{certificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var certificateName = _match.Groups["certificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/certificates/" + + certificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.ISendAsync pipeline to 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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Certificate.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Certificate. + /// an 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 environmentName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(certificateName),certificateName); + } + } + + /// Get the Certificates in a given managed environment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to 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 environmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/certificates" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CertificatesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Certificates in a given managed environment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to 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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/certificates$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/certificates'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/certificates" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.ISendAsync pipeline to 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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificateCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// an 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 environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + } + } + + /// Patches a certificate. Currently only patching of tags is supported + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Certificate. + /// Properties of a certificate that need to be updated + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task CertificatesUpdate(string subscriptionId, string resourceGroupName, string environmentName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/certificates/" + + global::System.Uri.EscapeDataString(certificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CertificatesUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Patches a certificate. Currently only patching of tags is supported + /// + /// Properties of a certificate that need to be updated + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task CertificatesUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/certificates/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/certificates/{certificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var certificateName = _match.Groups["certificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/certificates/" + + certificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CertificatesUpdate_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task CertificatesUpdate_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Certificate.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Certificate. + /// Properties of a certificate that need to be updated + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task CertificatesUpdate_Validate(string subscriptionId, string resourceGroupName, string environmentName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(certificateName),certificateName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Create or Update a Certificate. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Connected Environment. + /// Name of the Certificate. + /// Certificate to be created or updated + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesCreateOrUpdate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/certificates/" + + global::System.Uri.EscapeDataString(certificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsCertificatesCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or Update a Certificate. + /// + /// Certificate to be created or updated + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/certificates/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/certificates/{certificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + var certificateName = _match.Groups["certificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/certificates/" + + certificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsCertificatesCreateOrUpdate_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesCreateOrUpdate_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Certificate.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual + /// call, but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Connected Environment. + /// Name of the Certificate. + /// Certificate to be created or updated + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + await eventListener.AssertNotNull(nameof(certificateName),certificateName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Deletes the specified Certificate. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Connected Environment. + /// Name of the Certificate. + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesDelete(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string certificateName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/certificates/" + + global::System.Uri.EscapeDataString(certificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsCertificatesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Deletes the specified Certificate. + /// + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesDeleteViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/certificates/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/certificates/{certificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + var certificateName = _match.Groups["certificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/certificates/" + + certificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsCertificatesDelete_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesDelete_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Connected Environment. + /// Name of the Certificate. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesDelete_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + await eventListener.AssertNotNull(nameof(certificateName),certificateName); + } + } + + /// Get the specified Certificate. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Connected Environment. + /// Name of the Certificate. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesGet(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string certificateName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/certificates/" + + global::System.Uri.EscapeDataString(certificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsCertificatesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the specified Certificate. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesGetViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/certificates/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/certificates/{certificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + var certificateName = _match.Groups["certificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/certificates/" + + certificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsCertificatesGet_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesGet_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Certificate.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Connected Environment. + /// Name of the Certificate. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesGet_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + await eventListener.AssertNotNull(nameof(certificateName),certificateName); + } + } + + /// Get the Certificates in a given connected environment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Connected Environment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesList(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/certificates" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsCertificatesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Certificates in a given connected environment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesListViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/certificates$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/certificates'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/certificates" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsCertificatesList_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesList_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificateCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Connected Environment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesList_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + } + } + + /// Patches a certificate. Currently only patching of tags is supported + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Connected Environment. + /// Name of the Certificate. + /// Properties of a certificate that need to be updated + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesUpdate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/certificates/" + + global::System.Uri.EscapeDataString(certificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsCertificatesUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Patches a certificate. Currently only patching of tags is supported + /// + /// Properties of a certificate that need to be updated + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/certificates/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/certificates/{certificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + var certificateName = _match.Groups["certificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/certificates/" + + certificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsCertificatesUpdate_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesUpdate_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Certificate.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Connected Environment. + /// Name of the Certificate. + /// Properties of a certificate that need to be updated + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsCertificatesUpdate_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + await eventListener.AssertNotNull(nameof(certificateName),certificateName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Checks if resource connectedEnvironmentName is available. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// The check connectedEnvironmentName availability request. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsCheckNameAvailability(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/checkNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Checks if resource connectedEnvironmentName is available. + /// + /// The check connectedEnvironmentName availability request. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsCheckNameAvailabilityViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/checkNameAvailability$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/checkNameAvailability'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/checkNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsCheckNameAvailability_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsCheckNameAvailability_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.CheckNameAvailabilityResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// The check connectedEnvironmentName availability request. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsCheckNameAvailability_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Creates or updates an connectedEnvironment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connectedEnvironment. + /// Configuration details of the connectedEnvironment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsCreateOrUpdate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourcegroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Creates or updates an connectedEnvironment. + /// + /// Configuration details of the connectedEnvironment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourcegroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourcegroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsCreateOrUpdate_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsCreateOrUpdate_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironment.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connectedEnvironment. + /// Configuration details of the connectedEnvironment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Creates or updates a Dapr Component in a connected environment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connected environment. + /// Name of the Dapr Component. + /// Configuration details of the Dapr Component. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsCreateOrUpdate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string componentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/daprComponents/" + + global::System.Uri.EscapeDataString(componentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsDaprComponentsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Creates or updates a Dapr Component in a connected environment. + /// + /// Configuration details of the Dapr Component. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/daprComponents/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/daprComponents/{componentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + var componentName = _match.Groups["componentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/daprComponents/" + + componentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsDaprComponentsCreateOrUpdate_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsCreateOrUpdate_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponent.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual + /// call, but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connected environment. + /// Name of the Dapr Component. + /// Configuration details of the Dapr Component. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string componentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + await eventListener.AssertNotNull(nameof(componentName),componentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete a Dapr Component from a connected environment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connected environment. + /// Name of the Dapr Component. + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsDelete(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string componentName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/daprComponents/" + + global::System.Uri.EscapeDataString(componentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsDaprComponentsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete a Dapr Component from a connected environment. + /// + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsDeleteViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/daprComponents/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/daprComponents/{componentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + var componentName = _match.Groups["componentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/daprComponents/" + + componentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsDaprComponentsDelete_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsDelete_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connected environment. + /// Name of the Dapr Component. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsDelete_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string componentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + await eventListener.AssertNotNull(nameof(componentName),componentName); + } + } + + /// Get a dapr component. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connected environment. + /// Name of the Dapr Component. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsGet(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string componentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/daprComponents/" + + global::System.Uri.EscapeDataString(componentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsDaprComponentsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a dapr component. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsGetViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/daprComponents/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/daprComponents/{componentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + var componentName = _match.Groups["componentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/daprComponents/" + + componentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsDaprComponentsGet_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsGet_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponent.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connected environment. + /// Name of the Dapr Component. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsGet_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string componentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + await eventListener.AssertNotNull(nameof(componentName),componentName); + } + } + + /// Get the Dapr Components for a connected environment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connected environment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsList(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/daprComponents" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsDaprComponentsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List secrets for a dapr component + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connected environment. + /// Name of the Dapr Component. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsListSecrets(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string componentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/daprComponents/" + + global::System.Uri.EscapeDataString(componentName) + + "/listSecrets" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsDaprComponentsListSecrets_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List secrets for a dapr component + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsListSecretsViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/daprComponents/(?[^/]+)/listSecrets$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/daprComponents/{componentName}/listSecrets'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + var componentName = _match.Groups["componentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/daprComponents/" + + componentName + + "/listSecrets" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsDaprComponentsListSecrets_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsListSecrets_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprSecretsCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual + /// call, but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connected environment. + /// Name of the Dapr Component. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsListSecrets_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string componentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + await eventListener.AssertNotNull(nameof(componentName),componentName); + } + } + + /// Get the Dapr Components for a connected environment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsListViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/daprComponents$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/daprComponents'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/daprComponents" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsDaprComponentsList_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsList_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponentsCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connected environment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsDaprComponentsList_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + } + } + + /// Delete an connectedEnvironment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connectedEnvironment. + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsDelete(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourcegroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete an connectedEnvironment. + /// + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsDeleteViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourcegroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourcegroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsDelete_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsDelete_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connectedEnvironment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsDelete_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + } + } + + /// Get the properties of an connectedEnvironment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connectedEnvironment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsGet(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourcegroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the properties of an connectedEnvironment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsGetViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourcegroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourcegroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsGet_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsGet_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironment.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connectedEnvironment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsGet_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + } + } + + /// Get all connectedEnvironments in a resource group. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsListByResourceGroup(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all connectedEnvironments 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsListByResourceGroupViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments'"); + } + + // 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.App/connectedEnvironments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsListByResourceGroup_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsListByResourceGroup_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + } + } + + /// Get all connectedEnvironments for a subscription. + /// The ID of the target 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsListBySubscription(string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.App/connectedEnvironments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all connectedEnvironments for 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsListBySubscriptionViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/providers/Microsoft.App/connectedEnvironments$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.App/connectedEnvironments'"); + } + + // 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.App/connectedEnvironments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsListBySubscription_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsListBySubscription_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsListBySubscription_Validate(string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + } + } + + /// Create or update storage for a connectedEnvironment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Name of the storage. + /// Configuration details of storage. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesCreateOrUpdate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string storageName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/storages/" + + global::System.Uri.EscapeDataString(storageName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsStoragesCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update storage for a connectedEnvironment. + /// + /// Configuration details of storage. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/storages/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/storages/{storageName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + var storageName = _match.Groups["storageName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/storages/" + + storageName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsStoragesCreateOrUpdate_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesCreateOrUpdate_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentStorage.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Name of the storage. + /// Configuration details of storage. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string storageName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + await eventListener.AssertNotNull(nameof(storageName),storageName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete storage for a connectedEnvironment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Name of the storage. + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesDelete(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string storageName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/storages/" + + global::System.Uri.EscapeDataString(storageName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsStoragesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete storage for a connectedEnvironment. + /// + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesDeleteViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/storages/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/storages/{storageName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + var storageName = _match.Groups["storageName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/storages/" + + storageName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsStoragesDelete_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesDelete_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Name of the storage. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesDelete_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string storageName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + await eventListener.AssertNotNull(nameof(storageName),storageName); + } + } + + /// Get storage for a connectedEnvironment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Name of the storage. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesGet(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string storageName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/storages/" + + global::System.Uri.EscapeDataString(storageName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsStoragesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get storage for a connectedEnvironment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesGetViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/storages/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/storages/{storageName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + var storageName = _match.Groups["storageName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/storages/" + + storageName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsStoragesGet_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesGet_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentStorage.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Name of the storage. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesGet_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, string storageName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + await eventListener.AssertNotNull(nameof(storageName),storageName); + } + } + + /// Get all storages for a connectedEnvironment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesList(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "/storages" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsStoragesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all storages for a connectedEnvironment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesListViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)/storages$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/storages'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "/storages" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsStoragesList_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesList_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentStoragesCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsStoragesList_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + } + } + + /// Patches a Managed Environment. Only patching of tags is supported currently + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connectedEnvironment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsUpdate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourcegroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/connectedEnvironments/" + + global::System.Uri.EscapeDataString(connectedEnvironmentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Patches a Managed Environment. Only patching of tags is supported currently + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ConnectedEnvironmentsUpdateViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourcegroups/(?[^/]+)/providers/Microsoft.App/connectedEnvironments/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var connectedEnvironmentName = _match.Groups["connectedEnvironmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourcegroups/" + + resourceGroupName + + "/providers/Microsoft.App/connectedEnvironments/" + + connectedEnvironmentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConnectedEnvironmentsUpdate_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsUpdate_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironment.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the connectedEnvironment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ConnectedEnvironmentsUpdate_Validate(string subscriptionId, string resourceGroupName, string connectedEnvironmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(connectedEnvironmentName),connectedEnvironmentName); + } + } + + /// Create or update the AuthConfig for a Container App. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App AuthConfig. + /// Properties used to create a Container App AuthConfig + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsCreateOrUpdate(string subscriptionId, string resourceGroupName, string containerAppName, string authConfigName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/authConfigs/" + + global::System.Uri.EscapeDataString(authConfigName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsAuthConfigsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update the AuthConfig for a Container App. + /// + /// Properties used to create a Container App AuthConfig + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/authConfigs/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/authConfigs/{authConfigName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + var authConfigName = _match.Groups["authConfigName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/authConfigs/" + + authConfigName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsAuthConfigsCreateOrUpdate_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsCreateOrUpdate_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfig.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App AuthConfig. + /// Properties used to create a Container App AuthConfig + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string authConfigName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(authConfigName),authConfigName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete a Container App AuthConfig. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App AuthConfig. + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsDelete(string subscriptionId, string resourceGroupName, string containerAppName, string authConfigName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/authConfigs/" + + global::System.Uri.EscapeDataString(authConfigName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsAuthConfigsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete a Container App AuthConfig. + /// + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsDeleteViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/authConfigs/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/authConfigs/{authConfigName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + var authConfigName = _match.Groups["authConfigName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/authConfigs/" + + authConfigName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsAuthConfigsDelete_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsDelete_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App AuthConfig. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsDelete_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string authConfigName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(authConfigName),authConfigName); + } + } + + /// Get a AuthConfig of a Container App. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App AuthConfig. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsGet(string subscriptionId, string resourceGroupName, string containerAppName, string authConfigName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/authConfigs/" + + global::System.Uri.EscapeDataString(authConfigName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsAuthConfigsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a AuthConfig of a Container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsGetViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/authConfigs/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/authConfigs/{authConfigName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + var authConfigName = _match.Groups["authConfigName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/authConfigs/" + + authConfigName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsAuthConfigsGet_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsGet_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfig.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App AuthConfig. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsGet_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string authConfigName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(authConfigName),authConfigName); + } + } + + /// Get the Container App AuthConfigs in a given resource group. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsListByContainerApp(string subscriptionId, string resourceGroupName, string containerAppName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/authConfigs" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsAuthConfigsListByContainerApp_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Container App AuthConfigs in a given 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsListByContainerAppViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/authConfigs$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/authConfigs'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/authConfigs" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsAuthConfigsListByContainerApp_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsListByContainerApp_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfigCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsAuthConfigsListByContainerApp_Validate(string subscriptionId, string resourceGroupName, string containerAppName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + } + } + + /// Create or update a Container App. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Properties used to create a container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsCreateOrUpdate(string subscriptionId, string resourceGroupName, string containerAppName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update a Container App. + /// + /// Properties used to create a container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsCreateOrUpdate_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsCreateOrUpdate_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerApp.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Properties used to create a container app + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string containerAppName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete a Container App. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsDelete(string subscriptionId, string resourceGroupName, string containerAppName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete a Container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsDeleteViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsDelete_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsDelete_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsDelete_Validate(string subscriptionId, string resourceGroupName, string containerAppName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + } + } + + /// Get a diagnostics result of a Container App. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Detector. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsGetDetector(string subscriptionId, string resourceGroupName, string containerAppName, string detectorName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/detectors/" + + global::System.Uri.EscapeDataString(detectorName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsDiagnosticsGetDetector_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a diagnostics result of a Container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsGetDetectorViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/detectors/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/detectors/{detectorName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + var detectorName = _match.Groups["detectorName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/detectors/" + + detectorName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsDiagnosticsGetDetector_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsGetDetector_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Diagnostics.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Detector. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsGetDetector_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string detectorName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(detectorName),detectorName); + } + } + + /// Get a revision of a Container App. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Revision. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsGetRevision(string subscriptionId, string resourceGroupName, string containerAppName, string revisionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/detectorProperties/revisionsApi/revisions/" + + global::System.Uri.EscapeDataString(revisionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsDiagnosticsGetRevision_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a revision of a Container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsGetRevisionViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/detectorProperties/revisionsApi/revisions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/detectorProperties/revisionsApi/revisions/{revisionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + var revisionName = _match.Groups["revisionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/detectorProperties/revisionsApi/revisions/" + + revisionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsDiagnosticsGetRevision_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsGetRevision_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Revision.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Revision. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsGetRevision_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string revisionName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(revisionName),revisionName); + } + } + + /// Get the properties of a Container App. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsGetRoot(string subscriptionId, string resourceGroupName, string containerAppName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onNotFound, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/detectorProperties/rootApi/" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsDiagnosticsGetRoot_Call(request,onOk,onNotFound,onDefault,eventListener,sender); + } + } + + /// Get the properties of a Container App. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsGetRootViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onNotFound, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/detectorProperties/rootApi/$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/detectorProperties/rootApi/'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/detectorProperties/rootApi/" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsDiagnosticsGetRoot_Call(request,onOk,onNotFound,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsGetRoot_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onNotFound, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerApp.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.NotFound: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNotFound(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsGetRoot_Validate(string subscriptionId, string resourceGroupName, string containerAppName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + } + } + + /// Get the list of diagnostics for a given Container App. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App for which detector info is needed. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsListDetectors(string subscriptionId, string resourceGroupName, string containerAppName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/detectors" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsDiagnosticsListDetectors_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the list of diagnostics for a given Container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsListDetectorsViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/detectors$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/detectors'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/detectors" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsDiagnosticsListDetectors_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsListDetectors_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App for which detector info is needed. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsListDetectors_Validate(string subscriptionId, string resourceGroupName, string containerAppName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + } + } + + /// Get the Revisions for a given Container App. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App for which Revisions are needed. + /// The filter to apply on 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsListRevisions(string subscriptionId, string resourceGroupName, string containerAppName, string Filter, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/detectorProperties/revisionsApi/revisions/" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsDiagnosticsListRevisions_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Revisions for a given Container App. + /// + /// The filter to apply on 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsListRevisionsViaIdentity(global::System.String viaIdentity, string Filter, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/detectorProperties/revisionsApi/revisions/$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/detectorProperties/revisionsApi/revisions/'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/detectorProperties/revisionsApi/revisions/" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsDiagnosticsListRevisions_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsDiagnosticsListRevisions_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RevisionCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App for which Revisions are needed. + /// The filter to apply on 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 ContainerAppsDiagnosticsListRevisions_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string Filter, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// Get the properties of a Container App. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsGet(string subscriptionId, string resourceGroupName, string containerAppName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onNotFound, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsGet_Call(request,onOk,onNotFound,onDefault,eventListener,sender); + } + } + + /// Get auth token for a container app + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsGetAuthToken(string subscriptionId, string resourceGroupName, string containerAppName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onNotFound, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/getAuthtoken" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsGetAuthToken_Call(request,onOk,onNotFound,onDefault,eventListener,sender); + } + } + + /// Get auth token for a container app + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsGetAuthTokenViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onNotFound, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/getAuthtoken$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/getAuthtoken'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/getAuthtoken" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsGetAuthToken_Call(request,onOk,onNotFound,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsGetAuthToken_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onNotFound, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppAuthToken.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.NotFound: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNotFound(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsGetAuthToken_Validate(string subscriptionId, string resourceGroupName, string containerAppName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + } + } + + /// Get the properties of a Container App. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onNotFound, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsGet_Call(request,onOk,onNotFound,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onNotFound, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerApp.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.NotFound: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNotFound(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsGet_Validate(string subscriptionId, string resourceGroupName, string containerAppName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + } + } + + /// Get the Container Apps in a given resource group. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsListByResourceGroup(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Container Apps in a given 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsListByResourceGroupViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps'"); + } + + // 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.App/containerApps" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsListByResourceGroup_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsListByResourceGroup_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + } + } + + /// Get the Container Apps in a given subscription. + /// The ID of the target 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsListBySubscription(string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.App/containerApps" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Container Apps in a given 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsListBySubscriptionViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/providers/Microsoft.App/containerApps$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.App/containerApps'"); + } + + // 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.App/containerApps" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsListBySubscription_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsListBySubscription_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The ID of the target subscription. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsListBySubscription_Validate(string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + } + } + + /// Analyzes a custom hostname for a Container App + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Custom hostname. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsListCustomHostNameAnalysis(string subscriptionId, string resourceGroupName, string containerAppName, string customHostname, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/listCustomHostNameAnalysis" + + "?" + + (string.IsNullOrEmpty(customHostname) ? global::System.String.Empty : "customHostname=" + global::System.Uri.EscapeDataString(customHostname)) + + "&" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsListCustomHostNameAnalysis_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Analyzes a custom hostname for a Container App + /// + /// Custom hostname. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsListCustomHostNameAnalysisViaIdentity(global::System.String viaIdentity, string customHostname, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/listCustomHostNameAnalysis$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/listCustomHostNameAnalysis'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/listCustomHostNameAnalysis" + + "?" + + (string.IsNullOrEmpty(customHostname) ? global::System.String.Empty : "customHostname=" + global::System.Uri.EscapeDataString(customHostname)) + + "&" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsListCustomHostNameAnalysis_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsListCustomHostNameAnalysis_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Custom hostname. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsListCustomHostNameAnalysis_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string customHostname, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(customHostname),customHostname); + } + } + + /// List secrets for a container app + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsListSecrets(string subscriptionId, string resourceGroupName, string containerAppName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/listSecrets" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsListSecrets_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List secrets for a container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsListSecretsViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/listSecrets$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/listSecrets'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/listSecrets" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsListSecrets_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsListSecrets_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SecretsCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsListSecrets_Validate(string subscriptionId, string resourceGroupName, string containerAppName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + } + } + + /// Get a replica for a Container App Revision. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Revision. + /// Name of the Container App Revision Replica. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsRevisionReplicasGetReplica(string subscriptionId, string resourceGroupName, string containerAppName, string revisionName, string replicaName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/revisions/" + + global::System.Uri.EscapeDataString(revisionName) + + "/replicas/" + + global::System.Uri.EscapeDataString(replicaName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsRevisionReplicasGetReplica_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a replica for a Container App Revision. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsRevisionReplicasGetReplicaViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/revisions/(?[^/]+)/replicas/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}/replicas/{replicaName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + var revisionName = _match.Groups["revisionName"].Value; + var replicaName = _match.Groups["replicaName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/revisions/" + + revisionName + + "/replicas/" + + replicaName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsRevisionReplicasGetReplica_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsRevisionReplicasGetReplica_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Replica.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Revision. + /// Name of the Container App Revision Replica. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsRevisionReplicasGetReplica_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string revisionName, string replicaName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(revisionName),revisionName); + await eventListener.AssertNotNull(nameof(replicaName),replicaName); + } + } + + /// List replicas for a Container App Revision. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Revision. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsRevisionReplicasListReplicas(string subscriptionId, string resourceGroupName, string containerAppName, string revisionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/revisions/" + + global::System.Uri.EscapeDataString(revisionName) + + "/replicas" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsRevisionReplicasListReplicas_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List replicas for a Container App Revision. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsRevisionReplicasListReplicasViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/revisions/(?[^/]+)/replicas$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}/replicas'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + var revisionName = _match.Groups["revisionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/revisions/" + + revisionName + + "/replicas" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsRevisionReplicasListReplicas_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsRevisionReplicasListReplicas_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Revision. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsRevisionReplicasListReplicas_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string revisionName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(revisionName),revisionName); + } + } + + /// Activates a revision for a Container App + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Revision. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsRevisionsActivateRevision(string subscriptionId, string resourceGroupName, string containerAppName, string revisionName, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/revisions/" + + global::System.Uri.EscapeDataString(revisionName) + + "/activate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsRevisionsActivateRevision_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Activates a revision for a Container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsRevisionsActivateRevisionViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/revisions/(?[^/]+)/activate$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}/activate'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + var revisionName = _match.Groups["revisionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/revisions/" + + revisionName + + "/activate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsRevisionsActivateRevision_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsRevisionsActivateRevision_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Revision. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsRevisionsActivateRevision_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string revisionName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(revisionName),revisionName); + } + } + + /// Deactivates a revision for a Container App + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Revision. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsRevisionsDeactivateRevision(string subscriptionId, string resourceGroupName, string containerAppName, string revisionName, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/revisions/" + + global::System.Uri.EscapeDataString(revisionName) + + "/deactivate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsRevisionsDeactivateRevision_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Deactivates a revision for a Container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsRevisionsDeactivateRevisionViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/revisions/(?[^/]+)/deactivate$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}/deactivate'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + var revisionName = _match.Groups["revisionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/revisions/" + + revisionName + + "/deactivate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsRevisionsDeactivateRevision_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsRevisionsDeactivateRevision_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Revision. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsRevisionsDeactivateRevision_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string revisionName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(revisionName),revisionName); + } + } + + /// Get a revision of a Container App. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Revision. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsRevisionsGetRevision(string subscriptionId, string resourceGroupName, string containerAppName, string revisionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/revisions/" + + global::System.Uri.EscapeDataString(revisionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsRevisionsGetRevision_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a revision of a Container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsRevisionsGetRevisionViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/revisions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + var revisionName = _match.Groups["revisionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/revisions/" + + revisionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsRevisionsGetRevision_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsRevisionsGetRevision_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Revision.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Revision. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsRevisionsGetRevision_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string revisionName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(revisionName),revisionName); + } + } + + /// Get the Revisions for a given Container App. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App for which Revisions are needed. + /// The filter to apply on 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsRevisionsListRevisions(string subscriptionId, string resourceGroupName, string containerAppName, string Filter, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/revisions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsRevisionsListRevisions_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Revisions for a given Container App. + /// + /// The filter to apply on 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsRevisionsListRevisionsViaIdentity(global::System.String viaIdentity, string Filter, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/revisions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/revisions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsRevisionsListRevisions_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsRevisionsListRevisions_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RevisionCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App for which Revisions are needed. + /// The filter to apply on 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 ContainerAppsRevisionsListRevisions_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string Filter, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// Restarts a revision for a Container App + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Revision. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsRevisionsRestartRevision(string subscriptionId, string resourceGroupName, string containerAppName, string revisionName, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/revisions/" + + global::System.Uri.EscapeDataString(revisionName) + + "/restart" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsRevisionsRestartRevision_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Restarts a revision for a Container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsRevisionsRestartRevisionViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/revisions/(?[^/]+)/restart$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}/restart'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + var revisionName = _match.Groups["revisionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/revisions/" + + revisionName + + "/restart" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsRevisionsRestartRevision_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsRevisionsRestartRevision_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App Revision. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsRevisionsRestartRevision_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string revisionName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(revisionName),revisionName); + } + } + + /// Create or update the SourceControl for a Container App. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App SourceControl. + /// Properties used to create a Container App SourceControl + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsSourceControlsCreateOrUpdate(string subscriptionId, string resourceGroupName, string containerAppName, string sourceControlName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/sourcecontrols/" + + global::System.Uri.EscapeDataString(sourceControlName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsSourceControlsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update the SourceControl for a Container App. + /// + /// Properties used to create a Container App SourceControl + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsSourceControlsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/sourcecontrols/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/sourcecontrols/{sourceControlName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + var sourceControlName = _match.Groups["sourceControlName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/sourcecontrols/" + + sourceControlName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsSourceControlsCreateOrUpdate_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsSourceControlsCreateOrUpdate_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControl.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App SourceControl. + /// Properties used to create a Container App SourceControl + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsSourceControlsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string sourceControlName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(sourceControlName),sourceControlName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete a Container App SourceControl. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App SourceControl. + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsSourceControlsDelete(string subscriptionId, string resourceGroupName, string containerAppName, string sourceControlName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/sourcecontrols/" + + global::System.Uri.EscapeDataString(sourceControlName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsSourceControlsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete a Container App SourceControl. + /// + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsSourceControlsDeleteViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/sourcecontrols/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/sourcecontrols/{sourceControlName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + var sourceControlName = _match.Groups["sourceControlName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/sourcecontrols/" + + sourceControlName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsSourceControlsDelete_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsSourceControlsDelete_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App SourceControl. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsSourceControlsDelete_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string sourceControlName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(sourceControlName),sourceControlName); + } + } + + /// Get a SourceControl of a Container App. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App SourceControl. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsSourceControlsGet(string subscriptionId, string resourceGroupName, string containerAppName, string sourceControlName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/sourcecontrols/" + + global::System.Uri.EscapeDataString(sourceControlName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsSourceControlsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a SourceControl of a Container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsSourceControlsGetViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/sourcecontrols/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/sourcecontrols/{sourceControlName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + var sourceControlName = _match.Groups["sourceControlName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/sourcecontrols/" + + sourceControlName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsSourceControlsGet_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsSourceControlsGet_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControl.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Name of the Container App SourceControl. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsSourceControlsGet_Validate(string subscriptionId, string resourceGroupName, string containerAppName, string sourceControlName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(sourceControlName),sourceControlName); + } + } + + /// Get the Container App SourceControls in a given resource group. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsSourceControlsListByContainerApp(string subscriptionId, string resourceGroupName, string containerAppName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "/sourcecontrols" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsSourceControlsListByContainerApp_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Container App SourceControls in a given 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsSourceControlsListByContainerAppViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)/sourcecontrols$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/sourcecontrols'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "/sourcecontrols" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsSourceControlsListByContainerApp_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsSourceControlsListByContainerApp_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControlCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsSourceControlsListByContainerApp_Validate(string subscriptionId, string resourceGroupName, string containerAppName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + } + } + + /// Patches a Container App using JSON Merge Patch + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Properties of a Container App that need to be updated + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsUpdate(string subscriptionId, string resourceGroupName, string containerAppName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp body, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/containerApps/" + + global::System.Uri.EscapeDataString(containerAppName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// Patches a Container App using JSON Merge Patch + /// + /// Properties of a Container App that need to be updated + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ContainerAppsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp body, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/containerApps/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var containerAppName = _match.Groups["containerAppName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/containerApps/" + + containerAppName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ContainerAppsUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Container App. + /// Properties of a Container App that need to be updated + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ContainerAppsUpdate_Validate(string subscriptionId, string resourceGroupName, string containerAppName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(containerAppName),containerAppName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Creates or updates a Dapr Component in a Managed Environment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Dapr Component. + /// Configuration details of the Dapr Component. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DaprComponentsCreateOrUpdate(string subscriptionId, string resourceGroupName, string environmentName, string componentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/daprComponents/" + + global::System.Uri.EscapeDataString(componentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DaprComponentsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Creates or updates a Dapr Component in a Managed Environment. + /// + /// Configuration details of the Dapr Component. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DaprComponentsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/daprComponents/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/daprComponents/{componentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var componentName = _match.Groups["componentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/daprComponents/" + + componentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DaprComponentsCreateOrUpdate_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DaprComponentsCreateOrUpdate_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponent.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Dapr Component. + /// Configuration details of the Dapr Component. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DaprComponentsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string environmentName, string componentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(componentName),componentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete a Dapr Component from a Managed Environment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Dapr Component. + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DaprComponentsDelete(string subscriptionId, string resourceGroupName, string environmentName, string componentName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/daprComponents/" + + global::System.Uri.EscapeDataString(componentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DaprComponentsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete a Dapr Component from a Managed Environment. + /// + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DaprComponentsDeleteViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/daprComponents/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/daprComponents/{componentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var componentName = _match.Groups["componentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/daprComponents/" + + componentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DaprComponentsDelete_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DaprComponentsDelete_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Dapr Component. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DaprComponentsDelete_Validate(string subscriptionId, string resourceGroupName, string environmentName, string componentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(componentName),componentName); + } + } + + /// Get a dapr component. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Dapr Component. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DaprComponentsGet(string subscriptionId, string resourceGroupName, string environmentName, string componentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/daprComponents/" + + global::System.Uri.EscapeDataString(componentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DaprComponentsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a dapr component. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DaprComponentsGetViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/daprComponents/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/daprComponents/{componentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var componentName = _match.Groups["componentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/daprComponents/" + + componentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DaprComponentsGet_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DaprComponentsGet_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponent.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Dapr Component. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DaprComponentsGet_Validate(string subscriptionId, string resourceGroupName, string environmentName, string componentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(componentName),componentName); + } + } + + /// Get the Dapr Components for a managed environment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DaprComponentsList(string subscriptionId, string resourceGroupName, string environmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/daprComponents" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DaprComponentsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List secrets for a dapr component + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Dapr Component. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DaprComponentsListSecrets(string subscriptionId, string resourceGroupName, string environmentName, string componentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/daprComponents/" + + global::System.Uri.EscapeDataString(componentName) + + "/listSecrets" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DaprComponentsListSecrets_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List secrets for a dapr component + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DaprComponentsListSecretsViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/daprComponents/(?[^/]+)/listSecrets$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/daprComponents/{componentName}/listSecrets'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var componentName = _match.Groups["componentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/daprComponents/" + + componentName + + "/listSecrets" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DaprComponentsListSecrets_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DaprComponentsListSecrets_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprSecretsCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Dapr Component. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DaprComponentsListSecrets_Validate(string subscriptionId, string resourceGroupName, string environmentName, string componentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(componentName),componentName); + } + } + + /// Get the Dapr Components for a managed environment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DaprComponentsListViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/daprComponents$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/daprComponents'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/daprComponents" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DaprComponentsList_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DaprComponentsList_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponentsCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DaprComponentsList_Validate(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + } + } + + /// Create or Update a Managed Certificate. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Managed Certificate. + /// Managed Certificate to be created or updated + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 400 (BadRequest). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedCertificatesCreateOrUpdate(string subscriptionId, string resourceGroupName, string environmentName, string managedCertificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onBadRequest, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/managedCertificates/" + + global::System.Uri.EscapeDataString(managedCertificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedCertificatesCreateOrUpdate_Call(request,onOk,onBadRequest,onDefault,eventListener,sender); + } + } + + /// Create or Update a Managed Certificate. + /// + /// Managed Certificate to be created or updated + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 400 (BadRequest). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedCertificatesCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onBadRequest, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/managedCertificates/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/managedCertificates/{managedCertificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var managedCertificateName = _match.Groups["managedCertificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/managedCertificates/" + + managedCertificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedCertificatesCreateOrUpdate_Call(request,onOk,onBadRequest,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 400 (BadRequest). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedCertificatesCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onBadRequest, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificate.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.BadRequest: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onBadRequest(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Managed Certificate. + /// Managed Certificate to be created or updated + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedCertificatesCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string environmentName, string managedCertificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(managedCertificateName),managedCertificateName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Deletes the specified Managed Certificate. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Managed Certificate. + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedCertificatesDelete(string subscriptionId, string resourceGroupName, string environmentName, string managedCertificateName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/managedCertificates/" + + global::System.Uri.EscapeDataString(managedCertificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedCertificatesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Deletes the specified Managed Certificate. + /// + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedCertificatesDeleteViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/managedCertificates/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/managedCertificates/{managedCertificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var managedCertificateName = _match.Groups["managedCertificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/managedCertificates/" + + managedCertificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedCertificatesDelete_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedCertificatesDelete_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Managed Certificate. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedCertificatesDelete_Validate(string subscriptionId, string resourceGroupName, string environmentName, string managedCertificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(managedCertificateName),managedCertificateName); + } + } + + /// Get the specified Managed Certificate. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Managed Certificate. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedCertificatesGet(string subscriptionId, string resourceGroupName, string environmentName, string managedCertificateName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/managedCertificates/" + + global::System.Uri.EscapeDataString(managedCertificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedCertificatesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the specified Managed Certificate. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedCertificatesGetViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/managedCertificates/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/managedCertificates/{managedCertificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var managedCertificateName = _match.Groups["managedCertificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/managedCertificates/" + + managedCertificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedCertificatesGet_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedCertificatesGet_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificate.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Managed Certificate. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedCertificatesGet_Validate(string subscriptionId, string resourceGroupName, string environmentName, string managedCertificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(managedCertificateName),managedCertificateName); + } + } + + /// Get the Managed Certificates in a given managed environment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedCertificatesList(string subscriptionId, string resourceGroupName, string environmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/managedCertificates" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedCertificatesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Managed Certificates in a given managed environment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedCertificatesListViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/managedCertificates$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/managedCertificates'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/managedCertificates" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedCertificatesList_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedCertificatesList_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificateCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedCertificatesList_Validate(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + } + } + + /// Patches a managed certificate. Oly patching of tags is supported + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Managed Certificate. + /// Properties of a managed certificate that need to be updated + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedCertificatesUpdate(string subscriptionId, string resourceGroupName, string environmentName, string managedCertificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/managedCertificates/" + + global::System.Uri.EscapeDataString(managedCertificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedCertificatesUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Patches a managed certificate. Oly patching of tags is supported + /// + /// Properties of a managed certificate that need to be updated + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedCertificatesUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/managedCertificates/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/managedCertificates/{managedCertificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var managedCertificateName = _match.Groups["managedCertificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/managedCertificates/" + + managedCertificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedCertificatesUpdate_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedCertificatesUpdate_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificate.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// Name of the Managed Certificate. + /// Properties of a managed certificate that need to be updated + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedCertificatesUpdate_Validate(string subscriptionId, string resourceGroupName, string environmentName, string managedCertificateName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatch body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(managedCertificateName),managedCertificateName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Get the diagnostics data for a Managed Environment used to host container apps. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Name of the Managed Environment detector. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentDiagnosticsGetDetector(string subscriptionId, string resourceGroupName, string environmentName, string detectorName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/detectors/" + + global::System.Uri.EscapeDataString(detectorName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentDiagnosticsGetDetector_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the diagnostics data for a Managed Environment used to host container apps. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentDiagnosticsGetDetectorViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/detectors/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/detectors/{detectorName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var detectorName = _match.Groups["detectorName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/detectors/" + + detectorName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentDiagnosticsGetDetector_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentDiagnosticsGetDetector_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Diagnostics.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Name of the Managed Environment detector. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentDiagnosticsGetDetector_Validate(string subscriptionId, string resourceGroupName, string environmentName, string detectorName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(detectorName),detectorName); + } + } + + /// + /// Get the list of diagnostics for a Managed Environment used to host container apps. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentDiagnosticsListDetectors(string subscriptionId, string resourceGroupName, string environmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/detectors" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentDiagnosticsListDetectors_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Get the list of diagnostics for a Managed Environment used to host container apps. + /// + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentDiagnosticsListDetectorsViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/detectors$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/detectors'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/detectors" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentDiagnosticsListDetectors_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentDiagnosticsListDetectors_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentDiagnosticsListDetectors_Validate(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + } + } + + /// Creates or updates a Managed Environment used to host container apps. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Configuration details of the Environment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsCreateOrUpdate(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Creates or updates a Managed Environment used to host container apps. + /// + /// Configuration details of the Environment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsCreateOrUpdate_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsCreateOrUpdate_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironment.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Configuration details of the Environment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete a Managed Environment if it does not have any container apps. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsDelete(string subscriptionId, string resourceGroupName, string environmentName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete a Managed Environment if it does not have any container apps. + /// + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsDeleteViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsDelete_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsDelete_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsDelete_Validate(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + } + } + + /// Get the properties of a Managed Environment used to host container apps. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsDiagnosticsGetRoot(string subscriptionId, string resourceGroupName, string environmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/detectorProperties/rootApi/" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsDiagnosticsGetRoot_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the properties of a Managed Environment used to host container apps. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsDiagnosticsGetRootViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/detectorProperties/rootApi/$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/detectorProperties/rootApi/'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/detectorProperties/rootApi/" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsDiagnosticsGetRoot_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsDiagnosticsGetRoot_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironment.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsDiagnosticsGetRoot_Validate(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + } + } + + /// Get the properties of a Managed Environment used to host container apps. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsGet(string subscriptionId, string resourceGroupName, string environmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Checks if resource name is available. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsGetAuthToken(string subscriptionId, string resourceGroupName, string environmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/getAuthtoken" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsGetAuthToken_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Checks if resource name is available. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsGetAuthTokenViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/getAuthtoken$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/getAuthtoken'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/getAuthtoken" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsGetAuthToken_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsGetAuthToken_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentAuthToken.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsGetAuthToken_Validate(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + } + } + + /// Get the properties of a Managed Environment used to host container apps. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsGetViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsGet_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsGet_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironment.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsGet_Validate(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + } + } + + /// Get all the Managed Environments in a resource group. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsListByResourceGroup(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all the Managed Environments 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsListByResourceGroupViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments'"); + } + + // 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.App/managedEnvironments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsListByResourceGroup_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsListByResourceGroup_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentsCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + } + } + + /// Get all Managed Environments for a subscription. + /// The ID of the target 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsListBySubscription(string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.App/managedEnvironments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all Managed Environments for 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsListBySubscriptionViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/providers/Microsoft.App/managedEnvironments$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.App/managedEnvironments'"); + } + + // 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.App/managedEnvironments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsListBySubscription_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsListBySubscription_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentsCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The ID of the target subscription. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsListBySubscription_Validate(string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + } + } + + /// Get all workload Profile States for a Premium Managed Environment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsListWorkloadProfileStates(string subscriptionId, string resourceGroupName, string environmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/workloadProfileStates" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsListWorkloadProfileStates_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all workload Profile States for a Premium Managed Environment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsListWorkloadProfileStatesViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/workloadProfileStates$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/workloadProfileStates'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/workloadProfileStates" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsListWorkloadProfileStates_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsListWorkloadProfileStates_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStatesCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsListWorkloadProfileStates_Validate(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + } + } + + /// Create or update storage for a managedEnvironment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Name of the storage. + /// Configuration details of storage. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesCreateOrUpdate(string subscriptionId, string resourceGroupName, string environmentName, string storageName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/storages/" + + global::System.Uri.EscapeDataString(storageName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsStoragesCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update storage for a managedEnvironment. + /// + /// Configuration details of storage. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/storages/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/storages/{storageName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var storageName = _match.Groups["storageName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/storages/" + + storageName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsStoragesCreateOrUpdate_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesCreateOrUpdate_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentStorage.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Name of the storage. + /// Configuration details of storage. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string environmentName, string storageName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(storageName),storageName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete storage for a managedEnvironment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Name of the storage. + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesDelete(string subscriptionId, string resourceGroupName, string environmentName, string storageName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/storages/" + + global::System.Uri.EscapeDataString(storageName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsStoragesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete storage for a managedEnvironment. + /// + /// 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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesDeleteViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/storages/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/storages/{storageName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var storageName = _match.Groups["storageName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/storages/" + + storageName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsStoragesDelete_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesDelete_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Name of the storage. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesDelete_Validate(string subscriptionId, string resourceGroupName, string environmentName, string storageName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(storageName),storageName); + } + } + + /// Get storage for a managedEnvironment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Name of the storage. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesGet(string subscriptionId, string resourceGroupName, string environmentName, string storageName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/storages/" + + global::System.Uri.EscapeDataString(storageName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsStoragesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get storage for a managedEnvironment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesGetViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/storages/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/storages/{storageName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + var storageName = _match.Groups["storageName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/storages/" + + storageName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsStoragesGet_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesGet_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentStorage.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Name of the storage. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesGet_Validate(string subscriptionId, string resourceGroupName, string environmentName, string storageName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(storageName),storageName); + } + } + + /// Get all storages for a managedEnvironment. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesList(string subscriptionId, string resourceGroupName, string environmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/storages" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsStoragesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all storages for a managedEnvironment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesListViaIdentity(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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/storages$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/storages'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/storages" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsStoragesList_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesList_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentStoragesCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsStoragesList_Validate(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + } + } + + /// Patches a Managed Environment using JSON Merge Patch + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Configuration details of the Environment. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsUpdate(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment body, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// Patches a Managed Environment using JSON Merge Patch + /// + /// Configuration details of the Environment. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedEnvironmentsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment body, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedEnvironmentsUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Environment. + /// Configuration details of the Environment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedEnvironmentsUpdate_Validate(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Checks if resource name is available. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// The check name availability request. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task NamespacesCheckNameAvailability(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.App/managedEnvironments/" + + global::System.Uri.EscapeDataString(environmentName) + + "/checkNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.NamespacesCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Checks if resource name is available. + /// + /// The check name availability request. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task NamespacesCheckNameAvailabilityViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.App/managedEnvironments/(?[^/]+)/checkNameAvailability$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/checkNameAvailability'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var environmentName = _match.Groups["environmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.App/managedEnvironments/" + + environmentName + + "/checkNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.NamespacesCheckNameAvailability_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.ContainerAppsApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task NamespacesCheckNameAvailability_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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.CheckNameAvailabilityResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// Name of the Managed Environment. + /// The check name availability request. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task NamespacesCheckNameAvailability_Validate(string subscriptionId, string resourceGroupName, string environmentName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest body, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertMinimumLength(nameof(resourceGroupName),resourceGroupName,1); + await eventListener.AssertMaximumLength(nameof(resourceGroupName),resourceGroupName,90); + await eventListener.AssertNotNull(nameof(environmentName),environmentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Lists all of the available RP operations. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to 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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.App/operations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 RP operations. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync pipeline to 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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/providers/Microsoft.App/operations$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/providers/Microsoft.App/operations'"); + } + + // replace URI parameters with values from identity + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.App/operations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.ISendAsync pipeline to 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.ContainerAppsApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableOperations.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Any.PowerShell.cs b/swaggerci/app/generated/api/Models/Any.PowerShell.cs new file mode 100644 index 000000000000..768db076b012 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Any.PowerShell.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.IAny FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Any.TypeConverter.cs b/swaggerci/app/generated/api/Models/Any.TypeConverter.cs new file mode 100644 index 000000000000..d9e6126a2930 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Any.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AnyTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Any.cs b/swaggerci/app/generated/api/Models/Any.cs new file mode 100644 index 000000000000..ea0552c20167 --- /dev/null +++ b/swaggerci/app/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.ContainerAppsApi.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Any object + public partial class Any : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAnyInternal + { + + /// Creates an new instance. + public Any() + { + + } + } + /// Any object + public partial interface IAny : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + + } + /// Any object + internal partial interface IAnyInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Any.json.cs b/swaggerci/app/generated/api/Models/Any.json.cs new file mode 100644 index 000000000000..0c7623b21b00 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Any.json.cs @@ -0,0 +1,104 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Any(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.IAny. + /// + /// a to deserialize from. + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.PowerShell.cs new file mode 100644 index 000000000000..85daebe522e1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the Allowed Audiences validation flow. + [System.ComponentModel.TypeConverter(typeof(AllowedAudiencesValidationTypeConverter))] + public partial class AllowedAudiencesValidation + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AllowedAudiencesValidation(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AllowedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidationInternal)this).AllowedAudience = (string[]) content.GetValueForProperty("AllowedAudience",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidationInternal)this).AllowedAudience, __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 AllowedAudiencesValidation(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AllowedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidationInternal)this).AllowedAudience = (string[]) content.GetValueForProperty("AllowedAudience",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidationInternal)this).AllowedAudience, __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.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AllowedAudiencesValidation(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AllowedAudiencesValidation(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the Allowed Audiences validation flow. + [System.ComponentModel.TypeConverter(typeof(AllowedAudiencesValidationTypeConverter))] + public partial interface IAllowedAudiencesValidation + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.TypeConverter.cs new file mode 100644 index 000000000000..df8a18e2778b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AllowedAudiencesValidationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AllowedAudiencesValidation.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AllowedAudiencesValidation.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AllowedAudiencesValidation.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.cs new file mode 100644 index 000000000000..c3ba4920998f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.cs @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Allowed Audiences validation flow. + public partial class AllowedAudiencesValidation : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidationInternal + { + + /// Backing field for property. + private string[] _allowedAudience; + + /// + /// The configuration settings of the allowed list of audiences from which to validate the JWT token. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] AllowedAudience { get => this._allowedAudience; set => this._allowedAudience = value; } + + /// Creates an new instance. + public AllowedAudiencesValidation() + { + + } + } + /// The configuration settings of the Allowed Audiences validation flow. + public partial interface IAllowedAudiencesValidation : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// The configuration settings of the allowed list of audiences from which to validate the JWT token. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The configuration settings of the allowed list of audiences from which to validate the JWT token.", + SerializedName = @"allowedAudiences", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedAudience { get; set; } + + } + /// The configuration settings of the Allowed Audiences validation flow. + internal partial interface IAllowedAudiencesValidationInternal + + { + /// + /// The configuration settings of the allowed list of audiences from which to validate the JWT token. + /// + string[] AllowedAudience { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.json.cs new file mode 100644 index 000000000000..c6cdb9162e69 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedAudiencesValidation.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Allowed Audiences validation flow. + public partial class AllowedAudiencesValidation + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AllowedAudiencesValidation(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_allowedAudience = If( json?.PropertyT("allowedAudiences"), out var __jsonAllowedAudiences) ? If( __jsonAllowedAudiences as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : AllowedAudience;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AllowedAudiencesValidation(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._allowedAudience) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._allowedAudience ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("allowedAudiences",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.PowerShell.cs new file mode 100644 index 000000000000..c8897ac49336 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the Azure Active Directory allowed principals. + [System.ComponentModel.TypeConverter(typeof(AllowedPrincipalsTypeConverter))] + public partial class AllowedPrincipals + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AllowedPrincipals(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Group")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipalsInternal)this).Group = (string[]) content.GetValueForProperty("Group",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipalsInternal)this).Group, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipalsInternal)this).Identity = (string[]) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipalsInternal)this).Identity, __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 AllowedPrincipals(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Group")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipalsInternal)this).Group = (string[]) content.GetValueForProperty("Group",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipalsInternal)this).Group, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipalsInternal)this).Identity = (string[]) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipalsInternal)this).Identity, __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.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AllowedPrincipals(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AllowedPrincipals(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the Azure Active Directory allowed principals. + [System.ComponentModel.TypeConverter(typeof(AllowedPrincipalsTypeConverter))] + public partial interface IAllowedPrincipals + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.TypeConverter.cs new file mode 100644 index 000000000000..c5d3b0f2f04c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AllowedPrincipalsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AllowedPrincipals.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AllowedPrincipals.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AllowedPrincipals.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.cs new file mode 100644 index 000000000000..0bb34cf20389 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Azure Active Directory allowed principals. + public partial class AllowedPrincipals : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipalsInternal + { + + /// Backing field for property. + private string[] _group; + + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] Group { get => this._group; set => this._group = value; } + + /// Backing field for property. + private string[] _identity; + + /// The list of the allowed identities. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] Identity { get => this._identity; set => this._identity = value; } + + /// Creates an new instance. + public AllowedPrincipals() + { + + } + } + /// The configuration settings of the Azure Active Directory allowed principals. + public partial interface IAllowedPrincipals : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed groups.", + SerializedName = @"groups", + PossibleTypes = new [] { typeof(string) })] + string[] Group { get; set; } + /// The list of the allowed identities. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed identities.", + SerializedName = @"identities", + PossibleTypes = new [] { typeof(string) })] + string[] Identity { get; set; } + + } + /// The configuration settings of the Azure Active Directory allowed principals. + internal partial interface IAllowedPrincipalsInternal + + { + /// The list of the allowed groups. + string[] Group { get; set; } + /// The list of the allowed identities. + string[] Identity { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.json.cs new file mode 100644 index 000000000000..b11739aa6f14 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AllowedPrincipals.json.cs @@ -0,0 +1,126 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Azure Active Directory allowed principals. + public partial class AllowedPrincipals + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AllowedPrincipals(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_group = If( json?.PropertyT("groups"), out var __jsonGroups) ? If( __jsonGroups as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Group;} + {_identity = If( json?.PropertyT("identities"), out var __jsonIdentities) ? If( __jsonIdentities as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : Identity;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AllowedPrincipals(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._group) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._group ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("groups",__w); + } + if (null != this._identity) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._identity ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("identities",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.PowerShell.cs new file mode 100644 index 000000000000..b0d99abbce62 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.PowerShell.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Configuration of application logs + [System.ComponentModel.TypeConverter(typeof(AppLogsConfigurationTypeConverter))] + public partial class AppLogsConfiguration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AppLogsConfiguration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("LogAnalyticsConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).LogAnalyticsConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration) content.GetValueForProperty("LogAnalyticsConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).LogAnalyticsConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LogAnalyticsConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("Destination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).Destination = (string) content.GetValueForProperty("Destination",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).Destination, global::System.Convert.ToString); + } + if (content.Contains("LogAnalyticConfigurationCustomerId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).LogAnalyticConfigurationCustomerId = (string) content.GetValueForProperty("LogAnalyticConfigurationCustomerId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).LogAnalyticConfigurationCustomerId, global::System.Convert.ToString); + } + if (content.Contains("LogAnalyticConfigurationSharedKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).LogAnalyticConfigurationSharedKey = (string) content.GetValueForProperty("LogAnalyticConfigurationSharedKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).LogAnalyticConfigurationSharedKey, 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 AppLogsConfiguration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("LogAnalyticsConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).LogAnalyticsConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration) content.GetValueForProperty("LogAnalyticsConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).LogAnalyticsConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LogAnalyticsConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("Destination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).Destination = (string) content.GetValueForProperty("Destination",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).Destination, global::System.Convert.ToString); + } + if (content.Contains("LogAnalyticConfigurationCustomerId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).LogAnalyticConfigurationCustomerId = (string) content.GetValueForProperty("LogAnalyticConfigurationCustomerId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).LogAnalyticConfigurationCustomerId, global::System.Convert.ToString); + } + if (content.Contains("LogAnalyticConfigurationSharedKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).LogAnalyticConfigurationSharedKey = (string) content.GetValueForProperty("LogAnalyticConfigurationSharedKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)this).LogAnalyticConfigurationSharedKey, 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.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AppLogsConfiguration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AppLogsConfiguration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Configuration of application logs + [System.ComponentModel.TypeConverter(typeof(AppLogsConfigurationTypeConverter))] + public partial interface IAppLogsConfiguration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.TypeConverter.cs new file mode 100644 index 000000000000..574f693b1159 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AppLogsConfigurationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AppLogsConfiguration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AppLogsConfiguration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AppLogsConfiguration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.cs new file mode 100644 index 000000000000..cf64ce8f941a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.cs @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Configuration of application logs + public partial class AppLogsConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal + { + + /// Backing field for property. + private string _destination; + + /// Logs destination + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Destination { get => this._destination; set => this._destination = value; } + + /// Log analytics customer id + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string LogAnalyticConfigurationCustomerId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfigurationInternal)LogAnalyticsConfiguration).CustomerId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfigurationInternal)LogAnalyticsConfiguration).CustomerId = value ?? null; } + + /// Log analytics customer key + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string LogAnalyticConfigurationSharedKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfigurationInternal)LogAnalyticsConfiguration).SharedKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfigurationInternal)LogAnalyticsConfiguration).SharedKey = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration _logAnalyticsConfiguration; + + /// Log Analytics configuration + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration LogAnalyticsConfiguration { get => (this._logAnalyticsConfiguration = this._logAnalyticsConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LogAnalyticsConfiguration()); set => this._logAnalyticsConfiguration = value; } + + /// Internal Acessors for LogAnalyticsConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal.LogAnalyticsConfiguration { get => (this._logAnalyticsConfiguration = this._logAnalyticsConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LogAnalyticsConfiguration()); set { {_logAnalyticsConfiguration = value;} } } + + /// Creates an new instance. + public AppLogsConfiguration() + { + + } + } + /// Configuration of application logs + public partial interface IAppLogsConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Logs destination + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Logs destination", + SerializedName = @"destination", + PossibleTypes = new [] { typeof(string) })] + string Destination { get; set; } + /// Log analytics customer id + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log analytics customer id", + SerializedName = @"customerId", + PossibleTypes = new [] { typeof(string) })] + string LogAnalyticConfigurationCustomerId { get; set; } + /// Log analytics customer key + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log analytics customer key", + SerializedName = @"sharedKey", + PossibleTypes = new [] { typeof(string) })] + string LogAnalyticConfigurationSharedKey { get; set; } + + } + /// Configuration of application logs + internal partial interface IAppLogsConfigurationInternal + + { + /// Logs destination + string Destination { get; set; } + /// Log analytics customer id + string LogAnalyticConfigurationCustomerId { get; set; } + /// Log analytics customer key + string LogAnalyticConfigurationSharedKey { get; set; } + /// Log Analytics configuration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration LogAnalyticsConfiguration { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.json.cs new file mode 100644 index 000000000000..f25a85958d3a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AppLogsConfiguration.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Configuration of application logs + public partial class AppLogsConfiguration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AppLogsConfiguration(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_logAnalyticsConfiguration = If( json?.PropertyT("logAnalyticsConfiguration"), out var __jsonLogAnalyticsConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LogAnalyticsConfiguration.FromJson(__jsonLogAnalyticsConfiguration) : LogAnalyticsConfiguration;} + {_destination = If( json?.PropertyT("destination"), out var __jsonDestination) ? (string)__jsonDestination : (string)Destination;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AppLogsConfiguration(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._logAnalyticsConfiguration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._logAnalyticsConfiguration.ToJson(null,serializationMode) : null, "logAnalyticsConfiguration" ,container.Add ); + AddIf( null != (((object)this._destination)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._destination.ToString()) : null, "destination" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.PowerShell.cs new file mode 100644 index 000000000000..8e4d4914eb87 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.PowerShell.cs @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The configuration settings of the app registration for providers that have app ids and app secrets + /// + [System.ComponentModel.TypeConverter(typeof(AppRegistrationTypeConverter))] + public partial class AppRegistration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AppRegistration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistrationInternal)this).AppId = (string) content.GetValueForProperty("AppId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistrationInternal)this).AppId, global::System.Convert.ToString); + } + if (content.Contains("AppSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistrationInternal)this).AppSecretSettingName = (string) content.GetValueForProperty("AppSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistrationInternal)this).AppSecretSettingName, 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 AppRegistration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistrationInternal)this).AppId = (string) content.GetValueForProperty("AppId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistrationInternal)this).AppId, global::System.Convert.ToString); + } + if (content.Contains("AppSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistrationInternal)this).AppSecretSettingName = (string) content.GetValueForProperty("AppSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistrationInternal)this).AppSecretSettingName, 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.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AppRegistration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AppRegistration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the app registration for providers that have app ids and app secrets + [System.ComponentModel.TypeConverter(typeof(AppRegistrationTypeConverter))] + public partial interface IAppRegistration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.TypeConverter.cs new file mode 100644 index 000000000000..444cce58f844 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AppRegistrationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AppRegistration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AppRegistration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AppRegistration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.cs new file mode 100644 index 000000000000..2ef5f4f5b040 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.cs @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the app registration for providers that have app ids and app secrets + /// + public partial class AppRegistration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistrationInternal + { + + /// Backing field for property. + private string _appId; + + /// The App ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string AppId { get => this._appId; set => this._appId = value; } + + /// Backing field for property. + private string _appSecretSettingName; + + /// The app setting name that contains the app secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string AppSecretSettingName { get => this._appSecretSettingName; set => this._appSecretSettingName = value; } + + /// Creates an new instance. + public AppRegistration() + { + + } + } + /// The configuration settings of the app registration for providers that have app ids and app secrets + public partial interface IAppRegistration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The App ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The App ID of the app used for login.", + SerializedName = @"appId", + PossibleTypes = new [] { typeof(string) })] + string AppId { get; set; } + /// The app setting name that contains the app secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the app secret.", + SerializedName = @"appSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string AppSecretSettingName { get; set; } + + } + /// The configuration settings of the app registration for providers that have app ids and app secrets + internal partial interface IAppRegistrationInternal + + { + /// The App ID of the app used for login. + string AppId { get; set; } + /// The app setting name that contains the app secret. + string AppSecretSettingName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.json.cs new file mode 100644 index 000000000000..826254b5eaec --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AppRegistration.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the app registration for providers that have app ids and app secrets + /// + public partial class AppRegistration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AppRegistration(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_appId = If( json?.PropertyT("appId"), out var __jsonAppId) ? (string)__jsonAppId : (string)AppId;} + {_appSecretSettingName = If( json?.PropertyT("appSecretSettingName"), out var __jsonAppSecretSettingName) ? (string)__jsonAppSecretSettingName : (string)AppSecretSettingName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AppRegistration(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._appId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._appId.ToString()) : null, "appId" ,container.Add ); + AddIf( null != (((object)this._appSecretSettingName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._appSecretSettingName.ToString()) : null, "appSecretSettingName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Apple.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Apple.PowerShell.cs new file mode 100644 index 000000000000..40641eb0983c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Apple.PowerShell.cs @@ -0,0 +1,184 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the Apple provider. + [System.ComponentModel.TypeConverter(typeof(AppleTypeConverter))] + public partial class Apple + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 Apple(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppleRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).LoginScope = (string[]) content.GetValueForProperty("LoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).LoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).RegistrationClientId = (string) content.GetValueForProperty("RegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).RegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).RegistrationClientSecretSettingName = (string) content.GetValueForProperty("RegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).RegistrationClientSecretSettingName, 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 Apple(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppleRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).LoginScope = (string[]) content.GetValueForProperty("LoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).LoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).RegistrationClientId = (string) content.GetValueForProperty("RegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).RegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).RegistrationClientSecretSettingName = (string) content.GetValueForProperty("RegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)this).RegistrationClientSecretSettingName, 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.ContainerAppsApi.Models.Api20221101Preview.IApple DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Apple(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IApple DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Apple(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IApple FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the Apple provider. + [System.ComponentModel.TypeConverter(typeof(AppleTypeConverter))] + public partial interface IApple + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Apple.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Apple.TypeConverter.cs new file mode 100644 index 000000000000..e77f82e0c9f7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Apple.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AppleTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IApple ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IApple).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Apple.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Apple.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Apple.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Apple.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Apple.cs new file mode 100644 index 000000000000..f2041cd26074 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Apple.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Apple provider. + public partial class Apple : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IApple, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal + { + + /// Backing field for property. + private bool? _enabled; + + /// + /// false if the Apple provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Enabled { get => this._enabled; set => this._enabled = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes _login; + + /// The configuration settings of the login flow. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Login { get => (this._login = this._login ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopes()); set => this._login = value; } + + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] LoginScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopesInternal)Login).Scope; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopesInternal)Login).Scope = value ?? null /* arrayOf */; } + + /// Internal Acessors for Login + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal.Login { get => (this._login = this._login ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopes()); set { {_login = value;} } } + + /// Internal Acessors for Registration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal.Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppleRegistration()); set { {_registration = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration _registration; + + /// The configuration settings of the Apple registration. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppleRegistration()); set => this._registration = value; } + + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistrationInternal)Registration).ClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistrationInternal)Registration).ClientId = value ?? null; } + + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientSecretSettingName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistrationInternal)Registration).ClientSecretSettingName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistrationInternal)Registration).ClientSecretSettingName = value ?? null; } + + /// Creates an new instance. + public Apple() + { + + } + } + /// The configuration settings of the Apple provider. + public partial interface IApple : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// false if the Apple provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the Apple provider should not be enabled despite the set registration; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? Enabled { get; set; } + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of the scopes that should be requested while authenticating.", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] LoginScope { get; set; } + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Client ID of the app used for login.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientId { get; set; } + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the client secret.", + SerializedName = @"clientSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientSecretSettingName { get; set; } + + } + /// The configuration settings of the Apple provider. + internal partial interface IAppleInternal + + { + /// + /// false if the Apple provider should not be enabled despite the set registration; otherwise, true. + /// + bool? Enabled { get; set; } + /// The configuration settings of the login flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Login { get; set; } + /// A list of the scopes that should be requested while authenticating. + string[] LoginScope { get; set; } + /// The configuration settings of the Apple registration. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration Registration { get; set; } + /// The Client ID of the app used for login. + string RegistrationClientId { get; set; } + /// The app setting name that contains the client secret. + string RegistrationClientSecretSettingName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Apple.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Apple.json.cs new file mode 100644 index 000000000000..a51fc3982168 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Apple.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Apple provider. + public partial class Apple + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Apple(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_registration = If( json?.PropertyT("registration"), out var __jsonRegistration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppleRegistration.FromJson(__jsonRegistration) : Registration;} + {_login = If( json?.PropertyT("login"), out var __jsonLogin) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopes.FromJson(__jsonLogin) : Login;} + {_enabled = If( json?.PropertyT("enabled"), out var __jsonEnabled) ? (bool?)__jsonEnabled : Enabled;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IApple. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IApple. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IApple FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Apple(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._registration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._registration.ToJson(null,serializationMode) : null, "registration" ,container.Add ); + AddIf( null != this._login ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._login.ToJson(null,serializationMode) : null, "login" ,container.Add ); + AddIf( null != this._enabled ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/AppleRegistration.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.PowerShell.cs new file mode 100644 index 000000000000..bc769e79d8a0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the registration for the Apple provider + [System.ComponentModel.TypeConverter(typeof(AppleRegistrationTypeConverter))] + public partial class AppleRegistration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AppleRegistration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistrationInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistrationInternal)this).ClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistrationInternal)this).ClientSecretSettingName = (string) content.GetValueForProperty("ClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistrationInternal)this).ClientSecretSettingName, 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 AppleRegistration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistrationInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistrationInternal)this).ClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistrationInternal)this).ClientSecretSettingName = (string) content.GetValueForProperty("ClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistrationInternal)this).ClientSecretSettingName, 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.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AppleRegistration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AppleRegistration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the registration for the Apple provider + [System.ComponentModel.TypeConverter(typeof(AppleRegistrationTypeConverter))] + public partial interface IAppleRegistration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.TypeConverter.cs new file mode 100644 index 000000000000..7e7de883c1f9 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AppleRegistrationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AppleRegistration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AppleRegistration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AppleRegistration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.cs new file mode 100644 index 000000000000..1f202c1a149d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the registration for the Apple provider + public partial class AppleRegistration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistrationInternal + { + + /// Backing field for property. + private string _clientId; + + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientId { get => this._clientId; set => this._clientId = value; } + + /// Backing field for property. + private string _clientSecretSettingName; + + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientSecretSettingName { get => this._clientSecretSettingName; set => this._clientSecretSettingName = value; } + + /// Creates an new instance. + public AppleRegistration() + { + + } + } + /// The configuration settings of the registration for the Apple provider + public partial interface IAppleRegistration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Client ID of the app used for login.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string ClientId { get; set; } + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the client secret.", + SerializedName = @"clientSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string ClientSecretSettingName { get; set; } + + } + /// The configuration settings of the registration for the Apple provider + internal partial interface IAppleRegistrationInternal + + { + /// The Client ID of the app used for login. + string ClientId { get; set; } + /// The app setting name that contains the client secret. + string ClientSecretSettingName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.json.cs new file mode 100644 index 000000000000..18ad9533cf76 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AppleRegistration.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the registration for the Apple provider + public partial class AppleRegistration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AppleRegistration(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_clientId = If( json?.PropertyT("clientId"), out var __jsonClientId) ? (string)__jsonClientId : (string)ClientId;} + {_clientSecretSettingName = If( json?.PropertyT("clientSecretSettingName"), out var __jsonClientSecretSettingName) ? (string)__jsonClientSecretSettingName : (string)ClientSecretSettingName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AppleRegistration(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._clientId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientId.ToString()) : null, "clientId" ,container.Add ); + AddIf( null != (((object)this._clientSecretSettingName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientSecretSettingName.ToString()) : null, "clientSecretSettingName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.PowerShell.cs new file mode 100644 index 000000000000..bf13bc8fec2c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.PowerShell.cs @@ -0,0 +1,442 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// Configuration settings for the Azure ContainerApp Service Authentication / Authorization feature. + /// + [System.ComponentModel.TypeConverter(typeof(AuthConfigTypeConverter))] + public partial class AuthConfig + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AuthConfig(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfigPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("GlobalValidation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation) content.GetValueForProperty("GlobalValidation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GlobalValidationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginTypeConverter.ConvertFrom); + } + if (content.Contains("HttpSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSetting = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings) content.GetValueForProperty("HttpSetting",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSetting, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("IdentityProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).IdentityProvider = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders) content.GetValueForProperty("IdentityProvider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).IdentityProvider, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IdentityProvidersTypeConverter.ConvertFrom); + } + if (content.Contains("Platform")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).Platform = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform) content.GetValueForProperty("Platform",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).Platform, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthPlatformTypeConverter.ConvertFrom); + } + if (content.Contains("GlobalValidationExcludedPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidationExcludedPath = (string[]) content.GetValueForProperty("GlobalValidationExcludedPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidationExcludedPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("LoginRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginRoute = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes) content.GetValueForProperty("LoginRoute",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginRoute, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginRoutesTypeConverter.ConvertFrom); + } + if (content.Contains("LoginCookieExpiration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginCookieExpiration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration) content.GetValueForProperty("LoginCookieExpiration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginCookieExpiration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CookieExpirationTypeConverter.ConvertFrom); + } + if (content.Contains("LoginNonce")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginNonce = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce) content.GetValueForProperty("LoginNonce",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginNonce, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.NonceTypeConverter.ConvertFrom); + } + if (content.Contains("HttpSettingRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSettingRoute = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes) content.GetValueForProperty("HttpSettingRoute",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSettingRoute, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsRoutesTypeConverter.ConvertFrom); + } + if (content.Contains("HttpSettingForwardProxy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSettingForwardProxy = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy) content.GetValueForProperty("HttpSettingForwardProxy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSettingForwardProxy, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ForwardProxyTypeConverter.ConvertFrom); + } + if (content.Contains("PlatformEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).PlatformEnabled = (bool?) content.GetValueForProperty("PlatformEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).PlatformEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PlatformRuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).PlatformRuntimeVersion = (string) content.GetValueForProperty("PlatformRuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).PlatformRuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("GlobalValidationUnauthenticatedClientAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidationUnauthenticatedClientAction = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2?) content.GetValueForProperty("GlobalValidationUnauthenticatedClientAction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidationUnauthenticatedClientAction, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2.CreateFrom); + } + if (content.Contains("GlobalValidationRedirectToProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidationRedirectToProvider = (string) content.GetValueForProperty("GlobalValidationRedirectToProvider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidationRedirectToProvider, global::System.Convert.ToString); + } + if (content.Contains("LoginPreserveUrlFragmentsForLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginPreserveUrlFragmentsForLogin = (bool?) content.GetValueForProperty("LoginPreserveUrlFragmentsForLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginPreserveUrlFragmentsForLogin, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LoginAllowedExternalRedirectUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginAllowedExternalRedirectUrl = (string[]) content.GetValueForProperty("LoginAllowedExternalRedirectUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginAllowedExternalRedirectUrl, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CookieExpirationConvention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).CookieExpirationConvention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention?) content.GetValueForProperty("CookieExpirationConvention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).CookieExpirationConvention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention.CreateFrom); + } + if (content.Contains("RouteLogoutEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).RouteLogoutEndpoint = (string) content.GetValueForProperty("RouteLogoutEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).RouteLogoutEndpoint, global::System.Convert.ToString); + } + if (content.Contains("HttpSettingRequireHttps")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSettingRequireHttps = (bool?) content.GetValueForProperty("HttpSettingRequireHttps",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSettingRequireHttps, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ForwardProxyConvention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).ForwardProxyConvention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention?) content.GetValueForProperty("ForwardProxyConvention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).ForwardProxyConvention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention.CreateFrom); + } + if (content.Contains("RouteApiPrefix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).RouteApiPrefix = (string) content.GetValueForProperty("RouteApiPrefix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).RouteApiPrefix, global::System.Convert.ToString); + } + if (content.Contains("CookieExpirationTimeToExpiration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).CookieExpirationTimeToExpiration = (string) content.GetValueForProperty("CookieExpirationTimeToExpiration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).CookieExpirationTimeToExpiration, global::System.Convert.ToString); + } + if (content.Contains("NonceValidateNonce")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).NonceValidateNonce = (bool?) content.GetValueForProperty("NonceValidateNonce",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).NonceValidateNonce, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("NonceExpirationInterval")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).NonceExpirationInterval = (string) content.GetValueForProperty("NonceExpirationInterval",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).NonceExpirationInterval, global::System.Convert.ToString); + } + if (content.Contains("ForwardProxyCustomHostHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).ForwardProxyCustomHostHeaderName = (string) content.GetValueForProperty("ForwardProxyCustomHostHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).ForwardProxyCustomHostHeaderName, global::System.Convert.ToString); + } + if (content.Contains("ForwardProxyCustomProtoHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).ForwardProxyCustomProtoHeaderName = (string) content.GetValueForProperty("ForwardProxyCustomProtoHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).ForwardProxyCustomProtoHeaderName, 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 AuthConfig(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfigPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("GlobalValidation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation) content.GetValueForProperty("GlobalValidation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GlobalValidationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginTypeConverter.ConvertFrom); + } + if (content.Contains("HttpSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSetting = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings) content.GetValueForProperty("HttpSetting",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSetting, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("IdentityProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).IdentityProvider = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders) content.GetValueForProperty("IdentityProvider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).IdentityProvider, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IdentityProvidersTypeConverter.ConvertFrom); + } + if (content.Contains("Platform")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).Platform = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform) content.GetValueForProperty("Platform",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).Platform, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthPlatformTypeConverter.ConvertFrom); + } + if (content.Contains("GlobalValidationExcludedPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidationExcludedPath = (string[]) content.GetValueForProperty("GlobalValidationExcludedPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidationExcludedPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("LoginRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginRoute = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes) content.GetValueForProperty("LoginRoute",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginRoute, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginRoutesTypeConverter.ConvertFrom); + } + if (content.Contains("LoginCookieExpiration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginCookieExpiration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration) content.GetValueForProperty("LoginCookieExpiration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginCookieExpiration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CookieExpirationTypeConverter.ConvertFrom); + } + if (content.Contains("LoginNonce")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginNonce = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce) content.GetValueForProperty("LoginNonce",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginNonce, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.NonceTypeConverter.ConvertFrom); + } + if (content.Contains("HttpSettingRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSettingRoute = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes) content.GetValueForProperty("HttpSettingRoute",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSettingRoute, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsRoutesTypeConverter.ConvertFrom); + } + if (content.Contains("HttpSettingForwardProxy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSettingForwardProxy = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy) content.GetValueForProperty("HttpSettingForwardProxy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSettingForwardProxy, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ForwardProxyTypeConverter.ConvertFrom); + } + if (content.Contains("PlatformEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).PlatformEnabled = (bool?) content.GetValueForProperty("PlatformEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).PlatformEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PlatformRuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).PlatformRuntimeVersion = (string) content.GetValueForProperty("PlatformRuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).PlatformRuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("GlobalValidationUnauthenticatedClientAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidationUnauthenticatedClientAction = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2?) content.GetValueForProperty("GlobalValidationUnauthenticatedClientAction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidationUnauthenticatedClientAction, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2.CreateFrom); + } + if (content.Contains("GlobalValidationRedirectToProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidationRedirectToProvider = (string) content.GetValueForProperty("GlobalValidationRedirectToProvider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).GlobalValidationRedirectToProvider, global::System.Convert.ToString); + } + if (content.Contains("LoginPreserveUrlFragmentsForLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginPreserveUrlFragmentsForLogin = (bool?) content.GetValueForProperty("LoginPreserveUrlFragmentsForLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginPreserveUrlFragmentsForLogin, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LoginAllowedExternalRedirectUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginAllowedExternalRedirectUrl = (string[]) content.GetValueForProperty("LoginAllowedExternalRedirectUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).LoginAllowedExternalRedirectUrl, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CookieExpirationConvention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).CookieExpirationConvention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention?) content.GetValueForProperty("CookieExpirationConvention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).CookieExpirationConvention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention.CreateFrom); + } + if (content.Contains("RouteLogoutEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).RouteLogoutEndpoint = (string) content.GetValueForProperty("RouteLogoutEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).RouteLogoutEndpoint, global::System.Convert.ToString); + } + if (content.Contains("HttpSettingRequireHttps")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSettingRequireHttps = (bool?) content.GetValueForProperty("HttpSettingRequireHttps",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).HttpSettingRequireHttps, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ForwardProxyConvention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).ForwardProxyConvention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention?) content.GetValueForProperty("ForwardProxyConvention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).ForwardProxyConvention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention.CreateFrom); + } + if (content.Contains("RouteApiPrefix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).RouteApiPrefix = (string) content.GetValueForProperty("RouteApiPrefix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).RouteApiPrefix, global::System.Convert.ToString); + } + if (content.Contains("CookieExpirationTimeToExpiration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).CookieExpirationTimeToExpiration = (string) content.GetValueForProperty("CookieExpirationTimeToExpiration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).CookieExpirationTimeToExpiration, global::System.Convert.ToString); + } + if (content.Contains("NonceValidateNonce")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).NonceValidateNonce = (bool?) content.GetValueForProperty("NonceValidateNonce",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).NonceValidateNonce, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("NonceExpirationInterval")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).NonceExpirationInterval = (string) content.GetValueForProperty("NonceExpirationInterval",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).NonceExpirationInterval, global::System.Convert.ToString); + } + if (content.Contains("ForwardProxyCustomHostHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).ForwardProxyCustomHostHeaderName = (string) content.GetValueForProperty("ForwardProxyCustomHostHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).ForwardProxyCustomHostHeaderName, global::System.Convert.ToString); + } + if (content.Contains("ForwardProxyCustomProtoHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).ForwardProxyCustomProtoHeaderName = (string) content.GetValueForProperty("ForwardProxyCustomProtoHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal)this).ForwardProxyCustomProtoHeaderName, 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.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AuthConfig(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AuthConfig(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Configuration settings for the Azure ContainerApp Service Authentication / Authorization feature. + [System.ComponentModel.TypeConverter(typeof(AuthConfigTypeConverter))] + public partial interface IAuthConfig + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.TypeConverter.cs new file mode 100644 index 000000000000..3f3f3dc265d6 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AuthConfigTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AuthConfig.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AuthConfig.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AuthConfig.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.cs new file mode 100644 index 000000000000..46166d027db7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.cs @@ -0,0 +1,511 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Configuration settings for the Azure ContainerApp Service Authentication / Authorization feature. + /// + public partial class AuthConfig : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(); + + /// The convention used when determining the session cookie's expiration. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention? CookieExpirationConvention { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).CookieExpirationConvention; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).CookieExpirationConvention = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention)""); } + + /// The time after the request is made when the session cookie should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CookieExpirationTimeToExpiration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).CookieExpirationTimeToExpiration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).CookieExpirationTimeToExpiration = value ?? null; } + + /// The convention used to determine the url of the request made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention? ForwardProxyConvention { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).ForwardProxyConvention; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).ForwardProxyConvention = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention)""); } + + /// The name of the header containing the host of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ForwardProxyCustomHostHeaderName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).ForwardProxyCustomHostHeaderName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).ForwardProxyCustomHostHeaderName = value ?? null; } + + /// The name of the header containing the scheme of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ForwardProxyCustomProtoHeaderName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).ForwardProxyCustomProtoHeaderName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).ForwardProxyCustomProtoHeaderName = value ?? null; } + + /// + /// The paths for which unauthenticated flow would not be redirected to the login page. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] GlobalValidationExcludedPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).GlobalValidationExcludedPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).GlobalValidationExcludedPath = value ?? null /* arrayOf */; } + + /// + /// The default authentication provider to use when multiple providers are configured. + /// This setting is only needed if multiple providers are configured and the unauthenticated client + /// action is set to "RedirectToLoginPage". + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GlobalValidationRedirectToProvider { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).GlobalValidationRedirectToProvider; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).GlobalValidationRedirectToProvider = value ?? null; } + + /// The action to take when an unauthenticated client attempts to access the app. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2? GlobalValidationUnauthenticatedClientAction { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).GlobalValidationUnauthenticatedClientAction; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).GlobalValidationUnauthenticatedClientAction = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2)""); } + + /// + /// false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, + /// true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? HttpSettingRequireHttps { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).HttpSettingRequireHttps; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).HttpSettingRequireHttps = value ?? default(bool); } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; } + + /// + /// The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders IdentityProvider { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).IdentityProvider; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).IdentityProvider = value ?? null /* model class */; } + + /// + /// External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part + /// of the URL is ignored. + /// This is an advanced setting typically only needed by Windows Store application backends. + /// Note that URLs within the current domain are always implicitly allowed. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] LoginAllowedExternalRedirectUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).LoginAllowedExternalRedirectUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).LoginAllowedExternalRedirectUrl = value ?? null /* arrayOf */; } + + /// + /// true if the fragments from the request are preserved after the login request is made; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? LoginPreserveUrlFragmentsForLogin { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).LoginPreserveUrlFragmentsForLogin; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).LoginPreserveUrlFragmentsForLogin = value ?? default(bool); } + + /// Internal Acessors for GlobalValidation + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal.GlobalValidation { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).GlobalValidation; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).GlobalValidation = value; } + + /// Internal Acessors for HttpSetting + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal.HttpSetting { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).HttpSetting; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).HttpSetting = value; } + + /// Internal Acessors for HttpSettingForwardProxy + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal.HttpSettingForwardProxy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).HttpSettingForwardProxy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).HttpSettingForwardProxy = value; } + + /// Internal Acessors for HttpSettingRoute + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal.HttpSettingRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).HttpSettingRoute; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).HttpSettingRoute = value; } + + /// Internal Acessors for Login + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal.Login { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).Login; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).Login = value; } + + /// Internal Acessors for LoginCookieExpiration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal.LoginCookieExpiration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).LoginCookieExpiration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).LoginCookieExpiration = value; } + + /// Internal Acessors for LoginNonce + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal.LoginNonce { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).LoginNonce; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).LoginNonce = value; } + + /// Internal Acessors for LoginRoute + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal.LoginRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).LoginRoute; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).LoginRoute = value; } + + /// Internal Acessors for Platform + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal.Platform { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).Platform; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).Platform = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfigProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; } + + /// The time after the request is made when the nonce should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string NonceExpirationInterval { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).NonceExpirationInterval; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).NonceExpirationInterval = value ?? null; } + + /// + /// false if the nonce should not be validated while completing the login flow; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? NonceValidateNonce { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).NonceValidateNonce; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).NonceValidateNonce = value ?? default(bool); } + + /// + /// true if the Authentication / Authorization feature is enabled for the current app; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? PlatformEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).PlatformEnabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).PlatformEnabled = value ?? default(bool); } + + /// + /// The RuntimeVersion of the Authentication / Authorization feature in use for the current app. + /// The setting in this value can control the behavior of certain features in the Authentication / Authorization module. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string PlatformRuntimeVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).PlatformRuntimeVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).PlatformRuntimeVersion = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties _property; + + /// AuthConfig resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfigProperties()); set => this._property = value; } + + /// The prefix that should precede all the authentication/authorization paths. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RouteApiPrefix { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).RouteApiPrefix; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).RouteApiPrefix = value ?? null; } + + /// The endpoint at which a logout request should be made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RouteLogoutEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).RouteLogoutEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)Property).RouteLogoutEndpoint = value ?? null; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public AuthConfig() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Configuration settings for the Azure ContainerApp Service Authentication / Authorization feature. + public partial interface IAuthConfig : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource + { + /// The convention used when determining the session cookie's expiration. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The convention used when determining the session cookie's expiration.", + SerializedName = @"convention", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention? CookieExpirationConvention { get; set; } + /// The time after the request is made when the session cookie should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time after the request is made when the session cookie should expire.", + SerializedName = @"timeToExpiration", + PossibleTypes = new [] { typeof(string) })] + string CookieExpirationTimeToExpiration { get; set; } + /// The convention used to determine the url of the request made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The convention used to determine the url of the request made.", + SerializedName = @"convention", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention? ForwardProxyConvention { get; set; } + /// The name of the header containing the host of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the header containing the host of the request.", + SerializedName = @"customHostHeaderName", + PossibleTypes = new [] { typeof(string) })] + string ForwardProxyCustomHostHeaderName { get; set; } + /// The name of the header containing the scheme of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the header containing the scheme of the request.", + SerializedName = @"customProtoHeaderName", + PossibleTypes = new [] { typeof(string) })] + string ForwardProxyCustomProtoHeaderName { get; set; } + /// + /// The paths for which unauthenticated flow would not be redirected to the login page. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The paths for which unauthenticated flow would not be redirected to the login page.", + SerializedName = @"excludedPaths", + PossibleTypes = new [] { typeof(string) })] + string[] GlobalValidationExcludedPath { get; set; } + /// + /// The default authentication provider to use when multiple providers are configured. + /// This setting is only needed if multiple providers are configured and the unauthenticated client + /// action is set to "RedirectToLoginPage". + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default authentication provider to use when multiple providers are configured. + This setting is only needed if multiple providers are configured and the unauthenticated client + action is set to ""RedirectToLoginPage"".", + SerializedName = @"redirectToProvider", + PossibleTypes = new [] { typeof(string) })] + string GlobalValidationRedirectToProvider { get; set; } + /// The action to take when an unauthenticated client attempts to access the app. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The action to take when an unauthenticated client attempts to access the app.", + SerializedName = @"unauthenticatedClientAction", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2? GlobalValidationUnauthenticatedClientAction { get; set; } + /// + /// false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, + /// true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, true.", + SerializedName = @"requireHttps", + PossibleTypes = new [] { typeof(bool) })] + bool? HttpSettingRequireHttps { get; set; } + /// + /// The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization.", + SerializedName = @"identityProviders", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders IdentityProvider { get; set; } + /// + /// External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part + /// of the URL is ignored. + /// This is an advanced setting typically only needed by Windows Store application backends. + /// Note that URLs within the current domain are always implicitly allowed. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part of the URL is ignored. + This is an advanced setting typically only needed by Windows Store application backends. + Note that URLs within the current domain are always implicitly allowed.", + SerializedName = @"allowedExternalRedirectUrls", + PossibleTypes = new [] { typeof(string) })] + string[] LoginAllowedExternalRedirectUrl { get; set; } + /// + /// true if the fragments from the request are preserved after the login request is made; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"true if the fragments from the request are preserved after the login request is made; otherwise, false.", + SerializedName = @"preserveUrlFragmentsForLogins", + PossibleTypes = new [] { typeof(bool) })] + bool? LoginPreserveUrlFragmentsForLogin { get; set; } + /// The time after the request is made when the nonce should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time after the request is made when the nonce should expire.", + SerializedName = @"nonceExpirationInterval", + PossibleTypes = new [] { typeof(string) })] + string NonceExpirationInterval { get; set; } + /// + /// false if the nonce should not be validated while completing the login flow; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the nonce should not be validated while completing the login flow; otherwise, true.", + SerializedName = @"validateNonce", + PossibleTypes = new [] { typeof(bool) })] + bool? NonceValidateNonce { get; set; } + /// + /// true if the Authentication / Authorization feature is enabled for the current app; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"true if the Authentication / Authorization feature is enabled for the current app; otherwise, false.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? PlatformEnabled { get; set; } + /// + /// The RuntimeVersion of the Authentication / Authorization feature in use for the current app. + /// The setting in this value can control the behavior of certain features in the Authentication / Authorization module. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The RuntimeVersion of the Authentication / Authorization feature in use for the current app. + The setting in this value can control the behavior of certain features in the Authentication / Authorization module.", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(string) })] + string PlatformRuntimeVersion { get; set; } + /// The prefix that should precede all the authentication/authorization paths. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The prefix that should precede all the authentication/authorization paths.", + SerializedName = @"apiPrefix", + PossibleTypes = new [] { typeof(string) })] + string RouteApiPrefix { get; set; } + /// The endpoint at which a logout request should be made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint at which a logout request should be made.", + SerializedName = @"logoutEndpoint", + PossibleTypes = new [] { typeof(string) })] + string RouteLogoutEndpoint { get; set; } + + } + /// Configuration settings for the Azure ContainerApp Service Authentication / Authorization feature. + internal partial interface IAuthConfigInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal + { + /// The convention used when determining the session cookie's expiration. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention? CookieExpirationConvention { get; set; } + /// The time after the request is made when the session cookie should expire. + string CookieExpirationTimeToExpiration { get; set; } + /// The convention used to determine the url of the request made. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention? ForwardProxyConvention { get; set; } + /// The name of the header containing the host of the request. + string ForwardProxyCustomHostHeaderName { get; set; } + /// The name of the header containing the scheme of the request. + string ForwardProxyCustomProtoHeaderName { get; set; } + /// + /// The configuration settings that determines the validation flow of users using Service Authentication/Authorization. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation GlobalValidation { get; set; } + /// + /// The paths for which unauthenticated flow would not be redirected to the login page. + /// + string[] GlobalValidationExcludedPath { get; set; } + /// + /// The default authentication provider to use when multiple providers are configured. + /// This setting is only needed if multiple providers are configured and the unauthenticated client + /// action is set to "RedirectToLoginPage". + /// + string GlobalValidationRedirectToProvider { get; set; } + /// The action to take when an unauthenticated client attempts to access the app. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2? GlobalValidationUnauthenticatedClientAction { get; set; } + /// + /// The configuration settings of the HTTP requests for authentication and authorization requests made against ContainerApp + /// Service Authentication/Authorization. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings HttpSetting { get; set; } + /// The configuration settings of a forward proxy used to make the requests. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy HttpSettingForwardProxy { get; set; } + /// + /// false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, + /// true. + /// + bool? HttpSettingRequireHttps { get; set; } + /// The configuration settings of the paths HTTP requests. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes HttpSettingRoute { get; set; } + /// + /// The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders IdentityProvider { get; set; } + /// + /// The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin Login { get; set; } + /// + /// External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part + /// of the URL is ignored. + /// This is an advanced setting typically only needed by Windows Store application backends. + /// Note that URLs within the current domain are always implicitly allowed. + /// + string[] LoginAllowedExternalRedirectUrl { get; set; } + /// The configuration settings of the session cookie's expiration. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration LoginCookieExpiration { get; set; } + /// The configuration settings of the nonce used in the login flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce LoginNonce { get; set; } + /// + /// true if the fragments from the request are preserved after the login request is made; otherwise, false. + /// + bool? LoginPreserveUrlFragmentsForLogin { get; set; } + /// The routes that specify the endpoints used for login and logout requests. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes LoginRoute { get; set; } + /// The time after the request is made when the nonce should expire. + string NonceExpirationInterval { get; set; } + /// + /// false if the nonce should not be validated while completing the login flow; otherwise, true. + /// + bool? NonceValidateNonce { get; set; } + /// + /// The configuration settings of the platform of ContainerApp Service Authentication/Authorization. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform Platform { get; set; } + /// + /// true if the Authentication / Authorization feature is enabled for the current app; otherwise, false. + /// + bool? PlatformEnabled { get; set; } + /// + /// The RuntimeVersion of the Authentication / Authorization feature in use for the current app. + /// The setting in this value can control the behavior of certain features in the Authentication / Authorization module. + /// + string PlatformRuntimeVersion { get; set; } + /// AuthConfig resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties Property { get; set; } + /// The prefix that should precede all the authentication/authorization paths. + string RouteApiPrefix { get; set; } + /// The endpoint at which a logout request should be made. + string RouteLogoutEndpoint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.json.cs new file mode 100644 index 000000000000..d14fc1008e7e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfig.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Configuration settings for the Azure ContainerApp Service Authentication / Authorization feature. + /// + public partial class AuthConfig + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AuthConfig(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfigProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AuthConfig(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.PowerShell.cs new file mode 100644 index 000000000000..a8d54cb7df39 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// AuthConfig collection ARM resource. + [System.ComponentModel.TypeConverter(typeof(AuthConfigCollectionTypeConverter))] + public partial class AuthConfigCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AuthConfigCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfigTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollectionInternal)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 AuthConfigCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfigTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollectionInternal)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.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AuthConfigCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AuthConfigCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// AuthConfig collection ARM resource. + [System.ComponentModel.TypeConverter(typeof(AuthConfigCollectionTypeConverter))] + public partial interface IAuthConfigCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.TypeConverter.cs new file mode 100644 index 000000000000..f6ffe93f62c6 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AuthConfigCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AuthConfigCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AuthConfigCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AuthConfigCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.cs new file mode 100644 index 000000000000..bf64acb80464 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// AuthConfig collection ARM resource. + public partial class AuthConfigCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollectionInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollectionInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig[] _value; + + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public AuthConfigCollection() + { + + } + } + /// AuthConfig collection ARM resource. + public partial interface IAuthConfigCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to next page of resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig[] Value { get; set; } + + } + /// AuthConfig collection ARM resource. + internal partial interface IAuthConfigCollectionInternal + + { + /// Link to next page of resources. + string NextLink { get; set; } + /// Collection of resources. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.json.cs new file mode 100644 index 000000000000..d022d876662a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigCollection.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// AuthConfig collection ARM resource. + public partial class AuthConfigCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AuthConfigCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfig.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.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AuthConfigCollection(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.PowerShell.cs new file mode 100644 index 000000000000..6d1927c0920b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.PowerShell.cs @@ -0,0 +1,354 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// AuthConfig resource specific properties + [System.ComponentModel.TypeConverter(typeof(AuthConfigPropertiesTypeConverter))] + public partial class AuthConfigProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AuthConfigProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Platform")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).Platform = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform) content.GetValueForProperty("Platform",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).Platform, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthPlatformTypeConverter.ConvertFrom); + } + if (content.Contains("GlobalValidation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation) content.GetValueForProperty("GlobalValidation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GlobalValidationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginTypeConverter.ConvertFrom); + } + if (content.Contains("HttpSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSetting = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings) content.GetValueForProperty("HttpSetting",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSetting, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("IdentityProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).IdentityProvider = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders) content.GetValueForProperty("IdentityProvider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).IdentityProvider, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IdentityProvidersTypeConverter.ConvertFrom); + } + if (content.Contains("GlobalValidationExcludedPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidationExcludedPath = (string[]) content.GetValueForProperty("GlobalValidationExcludedPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidationExcludedPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("LoginRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginRoute = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes) content.GetValueForProperty("LoginRoute",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginRoute, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginRoutesTypeConverter.ConvertFrom); + } + if (content.Contains("LoginCookieExpiration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginCookieExpiration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration) content.GetValueForProperty("LoginCookieExpiration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginCookieExpiration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CookieExpirationTypeConverter.ConvertFrom); + } + if (content.Contains("LoginNonce")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginNonce = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce) content.GetValueForProperty("LoginNonce",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginNonce, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.NonceTypeConverter.ConvertFrom); + } + if (content.Contains("HttpSettingRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSettingRoute = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes) content.GetValueForProperty("HttpSettingRoute",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSettingRoute, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsRoutesTypeConverter.ConvertFrom); + } + if (content.Contains("HttpSettingForwardProxy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSettingForwardProxy = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy) content.GetValueForProperty("HttpSettingForwardProxy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSettingForwardProxy, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ForwardProxyTypeConverter.ConvertFrom); + } + if (content.Contains("PlatformEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).PlatformEnabled = (bool?) content.GetValueForProperty("PlatformEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).PlatformEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PlatformRuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).PlatformRuntimeVersion = (string) content.GetValueForProperty("PlatformRuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).PlatformRuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("GlobalValidationUnauthenticatedClientAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidationUnauthenticatedClientAction = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2?) content.GetValueForProperty("GlobalValidationUnauthenticatedClientAction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidationUnauthenticatedClientAction, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2.CreateFrom); + } + if (content.Contains("GlobalValidationRedirectToProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidationRedirectToProvider = (string) content.GetValueForProperty("GlobalValidationRedirectToProvider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidationRedirectToProvider, global::System.Convert.ToString); + } + if (content.Contains("LoginPreserveUrlFragmentsForLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginPreserveUrlFragmentsForLogin = (bool?) content.GetValueForProperty("LoginPreserveUrlFragmentsForLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginPreserveUrlFragmentsForLogin, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LoginAllowedExternalRedirectUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginAllowedExternalRedirectUrl = (string[]) content.GetValueForProperty("LoginAllowedExternalRedirectUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginAllowedExternalRedirectUrl, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CookieExpirationConvention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).CookieExpirationConvention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention?) content.GetValueForProperty("CookieExpirationConvention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).CookieExpirationConvention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention.CreateFrom); + } + if (content.Contains("RouteLogoutEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).RouteLogoutEndpoint = (string) content.GetValueForProperty("RouteLogoutEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).RouteLogoutEndpoint, global::System.Convert.ToString); + } + if (content.Contains("HttpSettingRequireHttps")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSettingRequireHttps = (bool?) content.GetValueForProperty("HttpSettingRequireHttps",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSettingRequireHttps, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ForwardProxyConvention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).ForwardProxyConvention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention?) content.GetValueForProperty("ForwardProxyConvention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).ForwardProxyConvention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention.CreateFrom); + } + if (content.Contains("RouteApiPrefix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).RouteApiPrefix = (string) content.GetValueForProperty("RouteApiPrefix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).RouteApiPrefix, global::System.Convert.ToString); + } + if (content.Contains("CookieExpirationTimeToExpiration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).CookieExpirationTimeToExpiration = (string) content.GetValueForProperty("CookieExpirationTimeToExpiration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).CookieExpirationTimeToExpiration, global::System.Convert.ToString); + } + if (content.Contains("NonceValidateNonce")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).NonceValidateNonce = (bool?) content.GetValueForProperty("NonceValidateNonce",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).NonceValidateNonce, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("NonceExpirationInterval")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).NonceExpirationInterval = (string) content.GetValueForProperty("NonceExpirationInterval",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).NonceExpirationInterval, global::System.Convert.ToString); + } + if (content.Contains("ForwardProxyCustomHostHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).ForwardProxyCustomHostHeaderName = (string) content.GetValueForProperty("ForwardProxyCustomHostHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).ForwardProxyCustomHostHeaderName, global::System.Convert.ToString); + } + if (content.Contains("ForwardProxyCustomProtoHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).ForwardProxyCustomProtoHeaderName = (string) content.GetValueForProperty("ForwardProxyCustomProtoHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).ForwardProxyCustomProtoHeaderName, 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 AuthConfigProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Platform")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).Platform = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform) content.GetValueForProperty("Platform",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).Platform, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthPlatformTypeConverter.ConvertFrom); + } + if (content.Contains("GlobalValidation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation) content.GetValueForProperty("GlobalValidation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GlobalValidationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginTypeConverter.ConvertFrom); + } + if (content.Contains("HttpSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSetting = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings) content.GetValueForProperty("HttpSetting",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSetting, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("IdentityProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).IdentityProvider = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders) content.GetValueForProperty("IdentityProvider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).IdentityProvider, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IdentityProvidersTypeConverter.ConvertFrom); + } + if (content.Contains("GlobalValidationExcludedPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidationExcludedPath = (string[]) content.GetValueForProperty("GlobalValidationExcludedPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidationExcludedPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("LoginRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginRoute = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes) content.GetValueForProperty("LoginRoute",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginRoute, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginRoutesTypeConverter.ConvertFrom); + } + if (content.Contains("LoginCookieExpiration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginCookieExpiration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration) content.GetValueForProperty("LoginCookieExpiration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginCookieExpiration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CookieExpirationTypeConverter.ConvertFrom); + } + if (content.Contains("LoginNonce")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginNonce = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce) content.GetValueForProperty("LoginNonce",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginNonce, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.NonceTypeConverter.ConvertFrom); + } + if (content.Contains("HttpSettingRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSettingRoute = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes) content.GetValueForProperty("HttpSettingRoute",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSettingRoute, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsRoutesTypeConverter.ConvertFrom); + } + if (content.Contains("HttpSettingForwardProxy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSettingForwardProxy = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy) content.GetValueForProperty("HttpSettingForwardProxy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSettingForwardProxy, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ForwardProxyTypeConverter.ConvertFrom); + } + if (content.Contains("PlatformEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).PlatformEnabled = (bool?) content.GetValueForProperty("PlatformEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).PlatformEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PlatformRuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).PlatformRuntimeVersion = (string) content.GetValueForProperty("PlatformRuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).PlatformRuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("GlobalValidationUnauthenticatedClientAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidationUnauthenticatedClientAction = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2?) content.GetValueForProperty("GlobalValidationUnauthenticatedClientAction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidationUnauthenticatedClientAction, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2.CreateFrom); + } + if (content.Contains("GlobalValidationRedirectToProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidationRedirectToProvider = (string) content.GetValueForProperty("GlobalValidationRedirectToProvider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).GlobalValidationRedirectToProvider, global::System.Convert.ToString); + } + if (content.Contains("LoginPreserveUrlFragmentsForLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginPreserveUrlFragmentsForLogin = (bool?) content.GetValueForProperty("LoginPreserveUrlFragmentsForLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginPreserveUrlFragmentsForLogin, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LoginAllowedExternalRedirectUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginAllowedExternalRedirectUrl = (string[]) content.GetValueForProperty("LoginAllowedExternalRedirectUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).LoginAllowedExternalRedirectUrl, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CookieExpirationConvention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).CookieExpirationConvention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention?) content.GetValueForProperty("CookieExpirationConvention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).CookieExpirationConvention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention.CreateFrom); + } + if (content.Contains("RouteLogoutEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).RouteLogoutEndpoint = (string) content.GetValueForProperty("RouteLogoutEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).RouteLogoutEndpoint, global::System.Convert.ToString); + } + if (content.Contains("HttpSettingRequireHttps")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSettingRequireHttps = (bool?) content.GetValueForProperty("HttpSettingRequireHttps",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).HttpSettingRequireHttps, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ForwardProxyConvention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).ForwardProxyConvention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention?) content.GetValueForProperty("ForwardProxyConvention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).ForwardProxyConvention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention.CreateFrom); + } + if (content.Contains("RouteApiPrefix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).RouteApiPrefix = (string) content.GetValueForProperty("RouteApiPrefix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).RouteApiPrefix, global::System.Convert.ToString); + } + if (content.Contains("CookieExpirationTimeToExpiration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).CookieExpirationTimeToExpiration = (string) content.GetValueForProperty("CookieExpirationTimeToExpiration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).CookieExpirationTimeToExpiration, global::System.Convert.ToString); + } + if (content.Contains("NonceValidateNonce")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).NonceValidateNonce = (bool?) content.GetValueForProperty("NonceValidateNonce",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).NonceValidateNonce, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("NonceExpirationInterval")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).NonceExpirationInterval = (string) content.GetValueForProperty("NonceExpirationInterval",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).NonceExpirationInterval, global::System.Convert.ToString); + } + if (content.Contains("ForwardProxyCustomHostHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).ForwardProxyCustomHostHeaderName = (string) content.GetValueForProperty("ForwardProxyCustomHostHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).ForwardProxyCustomHostHeaderName, global::System.Convert.ToString); + } + if (content.Contains("ForwardProxyCustomProtoHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).ForwardProxyCustomProtoHeaderName = (string) content.GetValueForProperty("ForwardProxyCustomProtoHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal)this).ForwardProxyCustomProtoHeaderName, 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.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AuthConfigProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AuthConfigProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// AuthConfig resource specific properties + [System.ComponentModel.TypeConverter(typeof(AuthConfigPropertiesTypeConverter))] + public partial interface IAuthConfigProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.TypeConverter.cs new file mode 100644 index 000000000000..6b0d53635673 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AuthConfigPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AuthConfigProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AuthConfigProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AuthConfigProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.cs new file mode 100644 index 000000000000..f6294a3408c0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.cs @@ -0,0 +1,460 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// AuthConfig resource specific properties + public partial class AuthConfigProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal + { + + /// The convention used when determining the session cookie's expiration. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention? CookieExpirationConvention { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).CookieExpirationConvention; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).CookieExpirationConvention = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention)""); } + + /// The time after the request is made when the session cookie should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CookieExpirationTimeToExpiration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).CookieExpirationTimeToExpiration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).CookieExpirationTimeToExpiration = value ?? null; } + + /// The convention used to determine the url of the request made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention? ForwardProxyConvention { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)HttpSetting).ForwardProxyConvention; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)HttpSetting).ForwardProxyConvention = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention)""); } + + /// The name of the header containing the host of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ForwardProxyCustomHostHeaderName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)HttpSetting).ForwardProxyCustomHostHeaderName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)HttpSetting).ForwardProxyCustomHostHeaderName = value ?? null; } + + /// The name of the header containing the scheme of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ForwardProxyCustomProtoHeaderName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)HttpSetting).ForwardProxyCustomProtoHeaderName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)HttpSetting).ForwardProxyCustomProtoHeaderName = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation _globalValidation; + + /// + /// The configuration settings that determines the validation flow of users using Service Authentication/Authorization. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation GlobalValidation { get => (this._globalValidation = this._globalValidation ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GlobalValidation()); set => this._globalValidation = value; } + + /// + /// The paths for which unauthenticated flow would not be redirected to the login page. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] GlobalValidationExcludedPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)GlobalValidation).ExcludedPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)GlobalValidation).ExcludedPath = value ?? null /* arrayOf */; } + + /// + /// The default authentication provider to use when multiple providers are configured. + /// This setting is only needed if multiple providers are configured and the unauthenticated client + /// action is set to "RedirectToLoginPage". + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GlobalValidationRedirectToProvider { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)GlobalValidation).RedirectToProvider; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)GlobalValidation).RedirectToProvider = value ?? null; } + + /// The action to take when an unauthenticated client attempts to access the app. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2? GlobalValidationUnauthenticatedClientAction { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)GlobalValidation).UnauthenticatedClientAction; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)GlobalValidation).UnauthenticatedClientAction = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings _httpSetting; + + /// + /// The configuration settings of the HTTP requests for authentication and authorization requests made against ContainerApp + /// Service Authentication/Authorization. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings HttpSetting { get => (this._httpSetting = this._httpSetting ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettings()); set => this._httpSetting = value; } + + /// + /// false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, + /// true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? HttpSettingRequireHttps { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)HttpSetting).RequireHttps; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)HttpSetting).RequireHttps = value ?? default(bool); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders _identityProvider; + + /// + /// The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders IdentityProvider { get => (this._identityProvider = this._identityProvider ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IdentityProviders()); set => this._identityProvider = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin _login; + + /// + /// The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin Login { get => (this._login = this._login ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Login()); set => this._login = value; } + + /// + /// External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part + /// of the URL is ignored. + /// This is an advanced setting typically only needed by Windows Store application backends. + /// Note that URLs within the current domain are always implicitly allowed. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] LoginAllowedExternalRedirectUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).AllowedExternalRedirectUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).AllowedExternalRedirectUrl = value ?? null /* arrayOf */; } + + /// + /// true if the fragments from the request are preserved after the login request is made; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? LoginPreserveUrlFragmentsForLogin { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).PreserveUrlFragmentsForLogin; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).PreserveUrlFragmentsForLogin = value ?? default(bool); } + + /// Internal Acessors for GlobalValidation + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal.GlobalValidation { get => (this._globalValidation = this._globalValidation ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GlobalValidation()); set { {_globalValidation = value;} } } + + /// Internal Acessors for HttpSetting + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal.HttpSetting { get => (this._httpSetting = this._httpSetting ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettings()); set { {_httpSetting = value;} } } + + /// Internal Acessors for HttpSettingForwardProxy + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal.HttpSettingForwardProxy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)HttpSetting).ForwardProxy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)HttpSetting).ForwardProxy = value; } + + /// Internal Acessors for HttpSettingRoute + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal.HttpSettingRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)HttpSetting).Route; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)HttpSetting).Route = value; } + + /// Internal Acessors for Login + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal.Login { get => (this._login = this._login ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Login()); set { {_login = value;} } } + + /// Internal Acessors for LoginCookieExpiration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal.LoginCookieExpiration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).CookieExpiration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).CookieExpiration = value; } + + /// Internal Acessors for LoginNonce + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal.LoginNonce { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).Nonce; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).Nonce = value; } + + /// Internal Acessors for LoginRoute + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal.LoginRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).Route; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).Route = value; } + + /// Internal Acessors for Platform + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigPropertiesInternal.Platform { get => (this._platform = this._platform ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthPlatform()); set { {_platform = value;} } } + + /// The time after the request is made when the nonce should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string NonceExpirationInterval { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).NonceExpirationInterval; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).NonceExpirationInterval = value ?? null; } + + /// + /// false if the nonce should not be validated while completing the login flow; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? NonceValidateNonce { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).NonceValidateNonce; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).NonceValidateNonce = value ?? default(bool); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform _platform; + + /// + /// The configuration settings of the platform of ContainerApp Service Authentication/Authorization. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform Platform { get => (this._platform = this._platform ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthPlatform()); set => this._platform = value; } + + /// + /// true if the Authentication / Authorization feature is enabled for the current app; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? PlatformEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatformInternal)Platform).Enabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatformInternal)Platform).Enabled = value ?? default(bool); } + + /// + /// The RuntimeVersion of the Authentication / Authorization feature in use for the current app. + /// The setting in this value can control the behavior of certain features in the Authentication / Authorization module. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string PlatformRuntimeVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatformInternal)Platform).RuntimeVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatformInternal)Platform).RuntimeVersion = value ?? null; } + + /// The prefix that should precede all the authentication/authorization paths. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RouteApiPrefix { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)HttpSetting).RouteApiPrefix; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)HttpSetting).RouteApiPrefix = value ?? null; } + + /// The endpoint at which a logout request should be made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RouteLogoutEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).RouteLogoutEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)Login).RouteLogoutEndpoint = value ?? null; } + + /// Creates an new instance. + public AuthConfigProperties() + { + + } + } + /// AuthConfig resource specific properties + public partial interface IAuthConfigProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The convention used when determining the session cookie's expiration. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The convention used when determining the session cookie's expiration.", + SerializedName = @"convention", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention? CookieExpirationConvention { get; set; } + /// The time after the request is made when the session cookie should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time after the request is made when the session cookie should expire.", + SerializedName = @"timeToExpiration", + PossibleTypes = new [] { typeof(string) })] + string CookieExpirationTimeToExpiration { get; set; } + /// The convention used to determine the url of the request made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The convention used to determine the url of the request made.", + SerializedName = @"convention", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention? ForwardProxyConvention { get; set; } + /// The name of the header containing the host of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the header containing the host of the request.", + SerializedName = @"customHostHeaderName", + PossibleTypes = new [] { typeof(string) })] + string ForwardProxyCustomHostHeaderName { get; set; } + /// The name of the header containing the scheme of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the header containing the scheme of the request.", + SerializedName = @"customProtoHeaderName", + PossibleTypes = new [] { typeof(string) })] + string ForwardProxyCustomProtoHeaderName { get; set; } + /// + /// The paths for which unauthenticated flow would not be redirected to the login page. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The paths for which unauthenticated flow would not be redirected to the login page.", + SerializedName = @"excludedPaths", + PossibleTypes = new [] { typeof(string) })] + string[] GlobalValidationExcludedPath { get; set; } + /// + /// The default authentication provider to use when multiple providers are configured. + /// This setting is only needed if multiple providers are configured and the unauthenticated client + /// action is set to "RedirectToLoginPage". + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default authentication provider to use when multiple providers are configured. + This setting is only needed if multiple providers are configured and the unauthenticated client + action is set to ""RedirectToLoginPage"".", + SerializedName = @"redirectToProvider", + PossibleTypes = new [] { typeof(string) })] + string GlobalValidationRedirectToProvider { get; set; } + /// The action to take when an unauthenticated client attempts to access the app. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The action to take when an unauthenticated client attempts to access the app.", + SerializedName = @"unauthenticatedClientAction", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2? GlobalValidationUnauthenticatedClientAction { get; set; } + /// + /// false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, + /// true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, true.", + SerializedName = @"requireHttps", + PossibleTypes = new [] { typeof(bool) })] + bool? HttpSettingRequireHttps { get; set; } + /// + /// The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization.", + SerializedName = @"identityProviders", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders IdentityProvider { get; set; } + /// + /// External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part + /// of the URL is ignored. + /// This is an advanced setting typically only needed by Windows Store application backends. + /// Note that URLs within the current domain are always implicitly allowed. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part of the URL is ignored. + This is an advanced setting typically only needed by Windows Store application backends. + Note that URLs within the current domain are always implicitly allowed.", + SerializedName = @"allowedExternalRedirectUrls", + PossibleTypes = new [] { typeof(string) })] + string[] LoginAllowedExternalRedirectUrl { get; set; } + /// + /// true if the fragments from the request are preserved after the login request is made; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"true if the fragments from the request are preserved after the login request is made; otherwise, false.", + SerializedName = @"preserveUrlFragmentsForLogins", + PossibleTypes = new [] { typeof(bool) })] + bool? LoginPreserveUrlFragmentsForLogin { get; set; } + /// The time after the request is made when the nonce should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time after the request is made when the nonce should expire.", + SerializedName = @"nonceExpirationInterval", + PossibleTypes = new [] { typeof(string) })] + string NonceExpirationInterval { get; set; } + /// + /// false if the nonce should not be validated while completing the login flow; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the nonce should not be validated while completing the login flow; otherwise, true.", + SerializedName = @"validateNonce", + PossibleTypes = new [] { typeof(bool) })] + bool? NonceValidateNonce { get; set; } + /// + /// true if the Authentication / Authorization feature is enabled for the current app; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"true if the Authentication / Authorization feature is enabled for the current app; otherwise, false.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? PlatformEnabled { get; set; } + /// + /// The RuntimeVersion of the Authentication / Authorization feature in use for the current app. + /// The setting in this value can control the behavior of certain features in the Authentication / Authorization module. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The RuntimeVersion of the Authentication / Authorization feature in use for the current app. + The setting in this value can control the behavior of certain features in the Authentication / Authorization module.", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(string) })] + string PlatformRuntimeVersion { get; set; } + /// The prefix that should precede all the authentication/authorization paths. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The prefix that should precede all the authentication/authorization paths.", + SerializedName = @"apiPrefix", + PossibleTypes = new [] { typeof(string) })] + string RouteApiPrefix { get; set; } + /// The endpoint at which a logout request should be made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint at which a logout request should be made.", + SerializedName = @"logoutEndpoint", + PossibleTypes = new [] { typeof(string) })] + string RouteLogoutEndpoint { get; set; } + + } + /// AuthConfig resource specific properties + internal partial interface IAuthConfigPropertiesInternal + + { + /// The convention used when determining the session cookie's expiration. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention? CookieExpirationConvention { get; set; } + /// The time after the request is made when the session cookie should expire. + string CookieExpirationTimeToExpiration { get; set; } + /// The convention used to determine the url of the request made. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention? ForwardProxyConvention { get; set; } + /// The name of the header containing the host of the request. + string ForwardProxyCustomHostHeaderName { get; set; } + /// The name of the header containing the scheme of the request. + string ForwardProxyCustomProtoHeaderName { get; set; } + /// + /// The configuration settings that determines the validation flow of users using Service Authentication/Authorization. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation GlobalValidation { get; set; } + /// + /// The paths for which unauthenticated flow would not be redirected to the login page. + /// + string[] GlobalValidationExcludedPath { get; set; } + /// + /// The default authentication provider to use when multiple providers are configured. + /// This setting is only needed if multiple providers are configured and the unauthenticated client + /// action is set to "RedirectToLoginPage". + /// + string GlobalValidationRedirectToProvider { get; set; } + /// The action to take when an unauthenticated client attempts to access the app. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2? GlobalValidationUnauthenticatedClientAction { get; set; } + /// + /// The configuration settings of the HTTP requests for authentication and authorization requests made against ContainerApp + /// Service Authentication/Authorization. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings HttpSetting { get; set; } + /// The configuration settings of a forward proxy used to make the requests. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy HttpSettingForwardProxy { get; set; } + /// + /// false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, + /// true. + /// + bool? HttpSettingRequireHttps { get; set; } + /// The configuration settings of the paths HTTP requests. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes HttpSettingRoute { get; set; } + /// + /// The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders IdentityProvider { get; set; } + /// + /// The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin Login { get; set; } + /// + /// External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part + /// of the URL is ignored. + /// This is an advanced setting typically only needed by Windows Store application backends. + /// Note that URLs within the current domain are always implicitly allowed. + /// + string[] LoginAllowedExternalRedirectUrl { get; set; } + /// The configuration settings of the session cookie's expiration. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration LoginCookieExpiration { get; set; } + /// The configuration settings of the nonce used in the login flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce LoginNonce { get; set; } + /// + /// true if the fragments from the request are preserved after the login request is made; otherwise, false. + /// + bool? LoginPreserveUrlFragmentsForLogin { get; set; } + /// The routes that specify the endpoints used for login and logout requests. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes LoginRoute { get; set; } + /// The time after the request is made when the nonce should expire. + string NonceExpirationInterval { get; set; } + /// + /// false if the nonce should not be validated while completing the login flow; otherwise, true. + /// + bool? NonceValidateNonce { get; set; } + /// + /// The configuration settings of the platform of ContainerApp Service Authentication/Authorization. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform Platform { get; set; } + /// + /// true if the Authentication / Authorization feature is enabled for the current app; otherwise, false. + /// + bool? PlatformEnabled { get; set; } + /// + /// The RuntimeVersion of the Authentication / Authorization feature in use for the current app. + /// The setting in this value can control the behavior of certain features in the Authentication / Authorization module. + /// + string PlatformRuntimeVersion { get; set; } + /// The prefix that should precede all the authentication/authorization paths. + string RouteApiPrefix { get; set; } + /// The endpoint at which a logout request should be made. + string RouteLogoutEndpoint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.json.cs new file mode 100644 index 000000000000..898779d7cbcf --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthConfigProperties.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// AuthConfig resource specific properties + public partial class AuthConfigProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AuthConfigProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_platform = If( json?.PropertyT("platform"), out var __jsonPlatform) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthPlatform.FromJson(__jsonPlatform) : Platform;} + {_globalValidation = If( json?.PropertyT("globalValidation"), out var __jsonGlobalValidation) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GlobalValidation.FromJson(__jsonGlobalValidation) : GlobalValidation;} + {_login = If( json?.PropertyT("login"), out var __jsonLogin) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Login.FromJson(__jsonLogin) : Login;} + {_httpSetting = If( json?.PropertyT("httpSettings"), out var __jsonHttpSettings) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettings.FromJson(__jsonHttpSettings) : HttpSetting;} + {_identityProvider = If( json?.PropertyT("identityProviders"), out var __jsonIdentityProviders) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IdentityProviders.FromJson(__jsonIdentityProviders) : IdentityProvider;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AuthConfigProperties(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._platform ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._platform.ToJson(null,serializationMode) : null, "platform" ,container.Add ); + AddIf( null != this._globalValidation ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._globalValidation.ToJson(null,serializationMode) : null, "globalValidation" ,container.Add ); + AddIf( null != this._login ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._login.ToJson(null,serializationMode) : null, "login" ,container.Add ); + AddIf( null != this._httpSetting ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._httpSetting.ToJson(null,serializationMode) : null, "httpSettings" ,container.Add ); + AddIf( null != this._identityProvider ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._identityProvider.ToJson(null,serializationMode) : null, "identityProviders" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.PowerShell.cs new file mode 100644 index 000000000000..14ccaa1778f6 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.PowerShell.cs @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The configuration settings of the platform of ContainerApp Service Authentication/Authorization. + /// + [System.ComponentModel.TypeConverter(typeof(AuthPlatformTypeConverter))] + public partial class AuthPlatform + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AuthPlatform(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatformInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatformInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatformInternal)this).RuntimeVersion = (string) content.GetValueForProperty("RuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatformInternal)this).RuntimeVersion, 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 AuthPlatform(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatformInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatformInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatformInternal)this).RuntimeVersion = (string) content.GetValueForProperty("RuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatformInternal)this).RuntimeVersion, 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.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AuthPlatform(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AuthPlatform(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the platform of ContainerApp Service Authentication/Authorization. + [System.ComponentModel.TypeConverter(typeof(AuthPlatformTypeConverter))] + public partial interface IAuthPlatform + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.TypeConverter.cs new file mode 100644 index 000000000000..943d88adf29f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AuthPlatformTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AuthPlatform.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AuthPlatform.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AuthPlatform.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.cs new file mode 100644 index 000000000000..4c4c326921d9 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.cs @@ -0,0 +1,86 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the platform of ContainerApp Service Authentication/Authorization. + /// + public partial class AuthPlatform : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatformInternal + { + + /// Backing field for property. + private bool? _enabled; + + /// + /// true if the Authentication / Authorization feature is enabled for the current app; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Enabled { get => this._enabled; set => this._enabled = value; } + + /// Backing field for property. + private string _runtimeVersion; + + /// + /// The RuntimeVersion of the Authentication / Authorization feature in use for the current app. + /// The setting in this value can control the behavior of certain features in the Authentication / Authorization module. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string RuntimeVersion { get => this._runtimeVersion; set => this._runtimeVersion = value; } + + /// Creates an new instance. + public AuthPlatform() + { + + } + } + /// The configuration settings of the platform of ContainerApp Service Authentication/Authorization. + public partial interface IAuthPlatform : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// true if the Authentication / Authorization feature is enabled for the current app; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"true if the Authentication / Authorization feature is enabled for the current app; otherwise, false.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? Enabled { get; set; } + /// + /// The RuntimeVersion of the Authentication / Authorization feature in use for the current app. + /// The setting in this value can control the behavior of certain features in the Authentication / Authorization module. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The RuntimeVersion of the Authentication / Authorization feature in use for the current app. + The setting in this value can control the behavior of certain features in the Authentication / Authorization module.", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(string) })] + string RuntimeVersion { get; set; } + + } + /// The configuration settings of the platform of ContainerApp Service Authentication/Authorization. + internal partial interface IAuthPlatformInternal + + { + /// + /// true if the Authentication / Authorization feature is enabled for the current app; otherwise, false. + /// + bool? Enabled { get; set; } + /// + /// The RuntimeVersion of the Authentication / Authorization feature in use for the current app. + /// The setting in this value can control the behavior of certain features in the Authentication / Authorization module. + /// + string RuntimeVersion { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.json.cs new file mode 100644 index 000000000000..f7f769eb884d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AuthPlatform.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the platform of ContainerApp Service Authentication/Authorization. + /// + public partial class AuthPlatform + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AuthPlatform(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_enabled = If( json?.PropertyT("enabled"), out var __jsonEnabled) ? (bool?)__jsonEnabled : Enabled;} + {_runtimeVersion = If( json?.PropertyT("runtimeVersion"), out var __jsonRuntimeVersion) ? (string)__jsonRuntimeVersion : (string)RuntimeVersion;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthPlatform FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AuthPlatform(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._enabled ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._enabled) : null, "enabled" ,container.Add ); + AddIf( null != (((object)this._runtimeVersion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/AvailableOperations.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableOperations.PowerShell.cs new file mode 100644 index 000000000000..ad9445431534 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableOperations.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Available operations of the service + [System.ComponentModel.TypeConverter(typeof(AvailableOperationsTypeConverter))] + public partial class AvailableOperations + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal AvailableOperations(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperationsInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperationsInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OperationDetailTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperationsInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperationsInternal)this).NextLink, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AvailableOperations(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperationsInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperationsInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OperationDetailTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperationsInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperationsInternal)this).NextLink, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperations DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AvailableOperations(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperations DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AvailableOperations(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperations FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/AvailableOperations.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableOperations.TypeConverter.cs new file mode 100644 index 000000000000..b740a69cac87 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableOperations.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AvailableOperationsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperations ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperations).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AvailableOperations.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AvailableOperations.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AvailableOperations.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableOperations.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableOperations.cs new file mode 100644 index 000000000000..f905fcc66fd5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableOperations.cs @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Available operations of the service + public partial class AvailableOperations : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperations, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperationsInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail[] _value; + + /// Collection of available operation details + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public AvailableOperations() + { + + } + } + /// Available operations of the service + public partial interface IAvailableOperations : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of available operation details", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail[] Value { get; set; } + + } + /// Available operations of the service + internal partial interface IAvailableOperationsInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of available operation details + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableOperations.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableOperations.json.cs new file mode 100644 index 000000000000..2b6c445f3f13 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableOperations.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AvailableOperations(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OperationDetail.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperations. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperations. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperations FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.PowerShell.cs new file mode 100644 index 000000000000..763a8d05df64 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.PowerShell.cs @@ -0,0 +1,274 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// A premium workload profile. + [System.ComponentModel.TypeConverter(typeof(AvailableWorkloadProfileTypeConverter))] + public partial class AvailableWorkloadProfile + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AvailableWorkloadProfile(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfilePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Applicability")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Applicability = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability?) content.GetValueForProperty("Applicability",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Applicability, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability.CreateFrom); + } + if (content.Contains("BillingMeterCategory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).BillingMeterCategory = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category?) content.GetValueForProperty("BillingMeterCategory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).BillingMeterCategory, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category.CreateFrom); + } + if (content.Contains("Core")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Core = (int?) content.GetValueForProperty("Core",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Core, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MemoryGiB")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).MemoryGiB = (int?) content.GetValueForProperty("MemoryGiB",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).MemoryGiB, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)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 AvailableWorkloadProfile(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfilePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Applicability")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Applicability = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability?) content.GetValueForProperty("Applicability",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Applicability, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability.CreateFrom); + } + if (content.Contains("BillingMeterCategory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).BillingMeterCategory = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category?) content.GetValueForProperty("BillingMeterCategory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).BillingMeterCategory, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category.CreateFrom); + } + if (content.Contains("Core")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Core = (int?) content.GetValueForProperty("Core",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).Core, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MemoryGiB")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).MemoryGiB = (int?) content.GetValueForProperty("MemoryGiB",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).MemoryGiB, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal)this).DisplayName, 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.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AvailableWorkloadProfile(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AvailableWorkloadProfile(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A premium workload profile. + [System.ComponentModel.TypeConverter(typeof(AvailableWorkloadProfileTypeConverter))] + public partial interface IAvailableWorkloadProfile + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.TypeConverter.cs new file mode 100644 index 000000000000..d6706cb1840d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AvailableWorkloadProfileTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AvailableWorkloadProfile.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AvailableWorkloadProfile.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AvailableWorkloadProfile.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.cs new file mode 100644 index 000000000000..b8f904507cf3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.cs @@ -0,0 +1,210 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// A premium workload profile. + public partial class AvailableWorkloadProfile : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(); + + /// indicates whether the profile is default for the location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability? Applicability { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)Property).Applicability; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)Property).Applicability = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability)""); } + + /// Used to map workload profile types to billing meter. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category? BillingMeterCategory { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)Property).BillingMeterCategory; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)Property).BillingMeterCategory = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category)""); } + + /// Number of cores in CPU. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? Core { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)Property).Core; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)Property).Core = value ?? default(int); } + + /// The everyday name of the workload profile. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DisplayName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)Property).DisplayName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)Property).DisplayName = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; } + + /// Backing field for property. + private string _location; + + /// Region of the workload profile. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Memory in GiB. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? MemoryGiB { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)Property).MemoryGiB; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)Property).MemoryGiB = value ?? default(int); } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfileProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties _property; + + /// Revision resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfileProperties()); set => this._property = value; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public AvailableWorkloadProfile() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// A premium workload profile. + public partial interface IAvailableWorkloadProfile : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource + { + /// indicates whether the profile is default for the location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"indicates whether the profile is default for the location.", + SerializedName = @"applicability", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability? Applicability { get; set; } + /// Used to map workload profile types to billing meter. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Used to map workload profile types to billing meter.", + SerializedName = @"billingMeterCategory", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category? BillingMeterCategory { get; set; } + /// Number of cores in CPU. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of cores in CPU.", + SerializedName = @"cores", + PossibleTypes = new [] { typeof(int) })] + int? Core { get; set; } + /// The everyday name of the workload profile. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The everyday name of the workload profile.", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// Region of the workload profile. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Region of the workload profile.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// Memory in GiB. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Memory in GiB.", + SerializedName = @"memoryGiB", + PossibleTypes = new [] { typeof(int) })] + int? MemoryGiB { get; set; } + + } + /// A premium workload profile. + internal partial interface IAvailableWorkloadProfileInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal + { + /// indicates whether the profile is default for the location. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability? Applicability { get; set; } + /// Used to map workload profile types to billing meter. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category? BillingMeterCategory { get; set; } + /// Number of cores in CPU. + int? Core { get; set; } + /// The everyday name of the workload profile. + string DisplayName { get; set; } + /// Region of the workload profile. + string Location { get; set; } + /// Memory in GiB. + int? MemoryGiB { get; set; } + /// Revision resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.json.cs new file mode 100644 index 000000000000..0ee9c5c81cd2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfile.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// A premium workload profile. + public partial class AvailableWorkloadProfile + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AvailableWorkloadProfile(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfileProperties.FromJson(__jsonProperties) : Property;} + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AvailableWorkloadProfile(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.PowerShell.cs new file mode 100644 index 000000000000..e65c00186214 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.PowerShell.cs @@ -0,0 +1,180 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Revision resource specific properties + [System.ComponentModel.TypeConverter(typeof(AvailableWorkloadProfilePropertiesTypeConverter))] + public partial class AvailableWorkloadProfileProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AvailableWorkloadProfileProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("BillingMeterCategory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).BillingMeterCategory = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category?) content.GetValueForProperty("BillingMeterCategory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).BillingMeterCategory, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category.CreateFrom); + } + if (content.Contains("Applicability")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).Applicability = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability?) content.GetValueForProperty("Applicability",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).Applicability, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability.CreateFrom); + } + if (content.Contains("Core")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).Core = (int?) content.GetValueForProperty("Core",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).Core, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MemoryGiB")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).MemoryGiB = (int?) content.GetValueForProperty("MemoryGiB",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).MemoryGiB, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)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 AvailableWorkloadProfileProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("BillingMeterCategory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).BillingMeterCategory = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category?) content.GetValueForProperty("BillingMeterCategory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).BillingMeterCategory, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category.CreateFrom); + } + if (content.Contains("Applicability")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).Applicability = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability?) content.GetValueForProperty("Applicability",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).Applicability, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability.CreateFrom); + } + if (content.Contains("Core")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).Core = (int?) content.GetValueForProperty("Core",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).Core, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MemoryGiB")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).MemoryGiB = (int?) content.GetValueForProperty("MemoryGiB",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).MemoryGiB, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal)this).DisplayName, 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.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AvailableWorkloadProfileProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AvailableWorkloadProfileProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Revision resource specific properties + [System.ComponentModel.TypeConverter(typeof(AvailableWorkloadProfilePropertiesTypeConverter))] + public partial interface IAvailableWorkloadProfileProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.TypeConverter.cs new file mode 100644 index 000000000000..9af6276c6861 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.TypeConverter.cs @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AvailableWorkloadProfilePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AvailableWorkloadProfileProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AvailableWorkloadProfileProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AvailableWorkloadProfileProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.cs new file mode 100644 index 000000000000..a15c757719a7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.cs @@ -0,0 +1,119 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Revision resource specific properties + public partial class AvailableWorkloadProfileProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilePropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability? _applicability; + + /// indicates whether the profile is default for the location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability? Applicability { get => this._applicability; set => this._applicability = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category? _billingMeterCategory; + + /// Used to map workload profile types to billing meter. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category? BillingMeterCategory { get => this._billingMeterCategory; set => this._billingMeterCategory = value; } + + /// Backing field for property. + private int? _core; + + /// Number of cores in CPU. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? Core { get => this._core; set => this._core = value; } + + /// Backing field for property. + private string _displayName; + + /// The everyday name of the workload profile. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string DisplayName { get => this._displayName; set => this._displayName = value; } + + /// Backing field for property. + private int? _memoryGiB; + + /// Memory in GiB. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? MemoryGiB { get => this._memoryGiB; set => this._memoryGiB = value; } + + /// Creates an new instance. + public AvailableWorkloadProfileProperties() + { + + } + } + /// Revision resource specific properties + public partial interface IAvailableWorkloadProfileProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// indicates whether the profile is default for the location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"indicates whether the profile is default for the location.", + SerializedName = @"applicability", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability? Applicability { get; set; } + /// Used to map workload profile types to billing meter. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Used to map workload profile types to billing meter.", + SerializedName = @"billingMeterCategory", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category? BillingMeterCategory { get; set; } + /// Number of cores in CPU. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of cores in CPU.", + SerializedName = @"cores", + PossibleTypes = new [] { typeof(int) })] + int? Core { get; set; } + /// The everyday name of the workload profile. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The everyday name of the workload profile.", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// Memory in GiB. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Memory in GiB.", + SerializedName = @"memoryGiB", + PossibleTypes = new [] { typeof(int) })] + int? MemoryGiB { get; set; } + + } + /// Revision resource specific properties + internal partial interface IAvailableWorkloadProfilePropertiesInternal + + { + /// indicates whether the profile is default for the location. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability? Applicability { get; set; } + /// Used to map workload profile types to billing meter. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category? BillingMeterCategory { get; set; } + /// Number of cores in CPU. + int? Core { get; set; } + /// The everyday name of the workload profile. + string DisplayName { get; set; } + /// Memory in GiB. + int? MemoryGiB { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.json.cs new file mode 100644 index 000000000000..c92605aaa11e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfileProperties.json.cs @@ -0,0 +1,117 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Revision resource specific properties + public partial class AvailableWorkloadProfileProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AvailableWorkloadProfileProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_billingMeterCategory = If( json?.PropertyT("billingMeterCategory"), out var __jsonBillingMeterCategory) ? (string)__jsonBillingMeterCategory : (string)BillingMeterCategory;} + {_applicability = If( json?.PropertyT("applicability"), out var __jsonApplicability) ? (string)__jsonApplicability : (string)Applicability;} + {_core = If( json?.PropertyT("cores"), out var __jsonCores) ? (int?)__jsonCores : Core;} + {_memoryGiB = If( json?.PropertyT("memoryGiB"), out var __jsonMemoryGiB) ? (int?)__jsonMemoryGiB : MemoryGiB;} + {_displayName = If( json?.PropertyT("displayName"), out var __jsonDisplayName) ? (string)__jsonDisplayName : (string)DisplayName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfileProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AvailableWorkloadProfileProperties(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._billingMeterCategory)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._billingMeterCategory.ToString()) : null, "billingMeterCategory" ,container.Add ); + AddIf( null != (((object)this._applicability)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._applicability.ToString()) : null, "applicability" ,container.Add ); + AddIf( null != this._core ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._core) : null, "cores" ,container.Add ); + AddIf( null != this._memoryGiB ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._memoryGiB) : null, "memoryGiB" ,container.Add ); + AddIf( null != (((object)this._displayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.PowerShell.cs new file mode 100644 index 000000000000..684c8dcf0b88 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.PowerShell.cs @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Collection of available workload profiles in the location. + [System.ComponentModel.TypeConverter(typeof(AvailableWorkloadProfilesCollectionTypeConverter))] + public partial class AvailableWorkloadProfilesCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AvailableWorkloadProfilesCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfileTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollectionInternal)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 AvailableWorkloadProfilesCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfileTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollectionInternal)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.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AvailableWorkloadProfilesCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AvailableWorkloadProfilesCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of available workload profiles in the location. + [System.ComponentModel.TypeConverter(typeof(AvailableWorkloadProfilesCollectionTypeConverter))] + public partial interface IAvailableWorkloadProfilesCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.TypeConverter.cs new file mode 100644 index 000000000000..269e035abce0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.TypeConverter.cs @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AvailableWorkloadProfilesCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AvailableWorkloadProfilesCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AvailableWorkloadProfilesCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AvailableWorkloadProfilesCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.cs new file mode 100644 index 000000000000..31d7cd193dd2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of available workload profiles in the location. + public partial class AvailableWorkloadProfilesCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollectionInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollectionInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile[] _value; + + /// Collection of workload profiles. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public AvailableWorkloadProfilesCollection() + { + + } + } + /// Collection of available workload profiles in the location. + public partial interface IAvailableWorkloadProfilesCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to next page of resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Collection of workload profiles. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of workload profiles.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile[] Value { get; set; } + + } + /// Collection of available workload profiles in the location. + internal partial interface IAvailableWorkloadProfilesCollectionInternal + + { + /// Link to next page of resources. + string NextLink { get; set; } + /// Collection of workload profiles. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.json.cs new file mode 100644 index 000000000000..d767f4573b1c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AvailableWorkloadProfilesCollection.json.cs @@ -0,0 +1,122 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of available workload profiles in the location. + public partial class AvailableWorkloadProfilesCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AvailableWorkloadProfilesCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AvailableWorkloadProfile.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.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AvailableWorkloadProfilesCollection(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.PowerShell.cs new file mode 100644 index 000000000000..27f05ab72d75 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.PowerShell.cs @@ -0,0 +1,314 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the Azure Active directory provider. + [System.ComponentModel.TypeConverter(typeof(AzureActiveDirectoryTypeConverter))] + public partial class AzureActiveDirectory + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AzureActiveDirectory(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryLoginTypeConverter.ConvertFrom); + } + if (content.Contains("Validation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Validation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation) content.GetValueForProperty("Validation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Validation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryValidationTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IsAutoProvisioned")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).IsAutoProvisioned = (bool?) content.GetValueForProperty("IsAutoProvisioned",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).IsAutoProvisioned, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RegistrationOpenIdIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationOpenIdIssuer = (string) content.GetValueForProperty("RegistrationOpenIdIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationOpenIdIssuer, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientId = (string) content.GetValueForProperty("RegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretSettingName = (string) content.GetValueForProperty("RegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretCertificateThumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretCertificateThumbprint = (string) content.GetValueForProperty("RegistrationClientSecretCertificateThumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretCertificateThumbprint, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretCertificateSubjectAlternativeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretCertificateSubjectAlternativeName = (string) content.GetValueForProperty("RegistrationClientSecretCertificateSubjectAlternativeName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretCertificateSubjectAlternativeName, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretCertificateIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretCertificateIssuer = (string) content.GetValueForProperty("RegistrationClientSecretCertificateIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretCertificateIssuer, global::System.Convert.ToString); + } + if (content.Contains("LoginParameter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).LoginParameter = (string[]) content.GetValueForProperty("LoginParameter",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).LoginParameter, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("LoginDisableWwwAuthenticate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).LoginDisableWwwAuthenticate = (bool?) content.GetValueForProperty("LoginDisableWwwAuthenticate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).LoginDisableWwwAuthenticate, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ValidationJwtClaimCheck")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).ValidationJwtClaimCheck = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks) content.GetValueForProperty("ValidationJwtClaimCheck",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).ValidationJwtClaimCheck, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.JwtClaimChecksTypeConverter.ConvertFrom); + } + if (content.Contains("ValidationDefaultAuthorizationPolicy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).ValidationDefaultAuthorizationPolicy = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy) content.GetValueForProperty("ValidationDefaultAuthorizationPolicy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).ValidationDefaultAuthorizationPolicy, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultAuthorizationPolicyTypeConverter.ConvertFrom); + } + if (content.Contains("ValidationAllowedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).ValidationAllowedAudience = (string[]) content.GetValueForProperty("ValidationAllowedAudience",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).ValidationAllowedAudience, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("JwtClaimCheckAllowedGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).JwtClaimCheckAllowedGroup = (string[]) content.GetValueForProperty("JwtClaimCheckAllowedGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).JwtClaimCheckAllowedGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("DefaultAuthorizationPolicyAllowedPrincipal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).DefaultAuthorizationPolicyAllowedPrincipal = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals) content.GetValueForProperty("DefaultAuthorizationPolicyAllowedPrincipal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).DefaultAuthorizationPolicyAllowedPrincipal, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedPrincipalsTypeConverter.ConvertFrom); + } + if (content.Contains("DefaultAuthorizationPolicyAllowedApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).DefaultAuthorizationPolicyAllowedApplication = (string[]) content.GetValueForProperty("DefaultAuthorizationPolicyAllowedApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).DefaultAuthorizationPolicyAllowedApplication, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("JwtClaimCheckAllowedClientApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).JwtClaimCheckAllowedClientApplication = (string[]) content.GetValueForProperty("JwtClaimCheckAllowedClientApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).JwtClaimCheckAllowedClientApplication, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).AllowedPrincipalGroup = (string[]) content.GetValueForProperty("AllowedPrincipalGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).AllowedPrincipalGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).AllowedPrincipalIdentity = (string[]) content.GetValueForProperty("AllowedPrincipalIdentity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).AllowedPrincipalIdentity, __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 AzureActiveDirectory(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryLoginTypeConverter.ConvertFrom); + } + if (content.Contains("Validation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Validation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation) content.GetValueForProperty("Validation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Validation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryValidationTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IsAutoProvisioned")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).IsAutoProvisioned = (bool?) content.GetValueForProperty("IsAutoProvisioned",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).IsAutoProvisioned, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RegistrationOpenIdIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationOpenIdIssuer = (string) content.GetValueForProperty("RegistrationOpenIdIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationOpenIdIssuer, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientId = (string) content.GetValueForProperty("RegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretSettingName = (string) content.GetValueForProperty("RegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretCertificateThumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretCertificateThumbprint = (string) content.GetValueForProperty("RegistrationClientSecretCertificateThumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretCertificateThumbprint, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretCertificateSubjectAlternativeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretCertificateSubjectAlternativeName = (string) content.GetValueForProperty("RegistrationClientSecretCertificateSubjectAlternativeName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretCertificateSubjectAlternativeName, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretCertificateIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretCertificateIssuer = (string) content.GetValueForProperty("RegistrationClientSecretCertificateIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).RegistrationClientSecretCertificateIssuer, global::System.Convert.ToString); + } + if (content.Contains("LoginParameter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).LoginParameter = (string[]) content.GetValueForProperty("LoginParameter",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).LoginParameter, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("LoginDisableWwwAuthenticate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).LoginDisableWwwAuthenticate = (bool?) content.GetValueForProperty("LoginDisableWwwAuthenticate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).LoginDisableWwwAuthenticate, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ValidationJwtClaimCheck")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).ValidationJwtClaimCheck = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks) content.GetValueForProperty("ValidationJwtClaimCheck",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).ValidationJwtClaimCheck, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.JwtClaimChecksTypeConverter.ConvertFrom); + } + if (content.Contains("ValidationDefaultAuthorizationPolicy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).ValidationDefaultAuthorizationPolicy = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy) content.GetValueForProperty("ValidationDefaultAuthorizationPolicy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).ValidationDefaultAuthorizationPolicy, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultAuthorizationPolicyTypeConverter.ConvertFrom); + } + if (content.Contains("ValidationAllowedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).ValidationAllowedAudience = (string[]) content.GetValueForProperty("ValidationAllowedAudience",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).ValidationAllowedAudience, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("JwtClaimCheckAllowedGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).JwtClaimCheckAllowedGroup = (string[]) content.GetValueForProperty("JwtClaimCheckAllowedGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).JwtClaimCheckAllowedGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("DefaultAuthorizationPolicyAllowedPrincipal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).DefaultAuthorizationPolicyAllowedPrincipal = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals) content.GetValueForProperty("DefaultAuthorizationPolicyAllowedPrincipal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).DefaultAuthorizationPolicyAllowedPrincipal, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedPrincipalsTypeConverter.ConvertFrom); + } + if (content.Contains("DefaultAuthorizationPolicyAllowedApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).DefaultAuthorizationPolicyAllowedApplication = (string[]) content.GetValueForProperty("DefaultAuthorizationPolicyAllowedApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).DefaultAuthorizationPolicyAllowedApplication, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("JwtClaimCheckAllowedClientApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).JwtClaimCheckAllowedClientApplication = (string[]) content.GetValueForProperty("JwtClaimCheckAllowedClientApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).JwtClaimCheckAllowedClientApplication, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).AllowedPrincipalGroup = (string[]) content.GetValueForProperty("AllowedPrincipalGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).AllowedPrincipalGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).AllowedPrincipalIdentity = (string[]) content.GetValueForProperty("AllowedPrincipalIdentity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)this).AllowedPrincipalIdentity, __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.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureActiveDirectory(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureActiveDirectory(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the Azure Active directory provider. + [System.ComponentModel.TypeConverter(typeof(AzureActiveDirectoryTypeConverter))] + public partial interface IAzureActiveDirectory + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.TypeConverter.cs new file mode 100644 index 000000000000..c30c98e1153d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureActiveDirectoryTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureActiveDirectory.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureActiveDirectory.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureActiveDirectory.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.cs new file mode 100644 index 000000000000..8a548c360419 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.cs @@ -0,0 +1,443 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Azure Active directory provider. + public partial class AzureActiveDirectory : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal + { + + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] AllowedPrincipalGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).AllowedPrincipalGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).AllowedPrincipalGroup = value ?? null /* arrayOf */; } + + /// The list of the allowed identities. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] AllowedPrincipalIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).AllowedPrincipalIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).AllowedPrincipalIdentity = value ?? null /* arrayOf */; } + + /// The configuration settings of the Azure Active Directory allowed applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] DefaultAuthorizationPolicyAllowedApplication { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).DefaultAuthorizationPolicyAllowedApplication; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).DefaultAuthorizationPolicyAllowedApplication = value ?? null /* arrayOf */; } + + /// Backing field for property. + private bool? _enabled; + + /// + /// false if the Azure Active Directory provider should not be enabled despite the set registration; otherwise, + /// true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Enabled { get => this._enabled; set => this._enabled = value; } + + /// Backing field for property. + private bool? _isAutoProvisioned; + + /// + /// Gets a value indicating whether the Azure AD configuration was auto-provisioned using 1st party tooling. + /// This is an internal flag primarily intended to support the Azure Management Portal. Users should not + /// read or write to this property. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? IsAutoProvisioned { get => this._isAutoProvisioned; set => this._isAutoProvisioned = value; } + + /// The list of the allowed client applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] JwtClaimCheckAllowedClientApplication { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).JwtClaimCheckAllowedClientApplication; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).JwtClaimCheckAllowedClientApplication = value ?? null /* arrayOf */; } + + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] JwtClaimCheckAllowedGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).JwtClaimCheckAllowedGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).JwtClaimCheckAllowedGroup = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin _login; + + /// The configuration settings of the Azure Active Directory login flow. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin Login { get => (this._login = this._login ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryLogin()); set => this._login = value; } + + /// + /// true if the www-authenticate provider should be omitted from the request; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? LoginDisableWwwAuthenticate { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLoginInternal)Login).DisableWwwAuthenticate; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLoginInternal)Login).DisableWwwAuthenticate = value ?? default(bool); } + + /// + /// Login parameters to send to the OpenID Connect authorization endpoint when + /// a user logs in. Each parameter must be in the form "key=value". + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] LoginParameter { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLoginInternal)Login).LoginParameter; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLoginInternal)Login).LoginParameter = value ?? null /* arrayOf */; } + + /// Internal Acessors for DefaultAuthorizationPolicyAllowedPrincipal + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal.DefaultAuthorizationPolicyAllowedPrincipal { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).DefaultAuthorizationPolicyAllowedPrincipal; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).DefaultAuthorizationPolicyAllowedPrincipal = value; } + + /// Internal Acessors for Login + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal.Login { get => (this._login = this._login ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryLogin()); set { {_login = value;} } } + + /// Internal Acessors for Registration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal.Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryRegistration()); set { {_registration = value;} } } + + /// Internal Acessors for Validation + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal.Validation { get => (this._validation = this._validation ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryValidation()); set { {_validation = value;} } } + + /// Internal Acessors for ValidationDefaultAuthorizationPolicy + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal.ValidationDefaultAuthorizationPolicy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).DefaultAuthorizationPolicy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).DefaultAuthorizationPolicy = value; } + + /// Internal Acessors for ValidationJwtClaimCheck + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal.ValidationJwtClaimCheck { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).JwtClaimCheck; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).JwtClaimCheck = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration _registration; + + /// The configuration settings of the Azure Active Directory app registration. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryRegistration()); set => this._registration = value; } + + /// + /// The Client ID of this relying party application, known as the client_id. + /// This setting is required for enabling OpenID Connection authentication with Azure Active Directory or + /// other 3rd party OpenID Connect providers. + /// More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)Registration).ClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)Registration).ClientId = value ?? null; } + + /// + /// An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientSecretCertificateIssuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)Registration).ClientSecretCertificateIssuer; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)Registration).ClientSecretCertificateIssuer = value ?? null; } + + /// + /// An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing + /// purposes. This property acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientSecretCertificateSubjectAlternativeName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)Registration).ClientSecretCertificateSubjectAlternativeName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)Registration).ClientSecretCertificateSubjectAlternativeName = value ?? null; } + + /// + /// An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientSecretCertificateThumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)Registration).ClientSecretCertificateThumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)Registration).ClientSecretCertificateThumbprint = value ?? null; } + + /// + /// The app setting name that contains the client secret of the relying party application. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientSecretSettingName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)Registration).ClientSecretSettingName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)Registration).ClientSecretSettingName = value ?? null; } + + /// + /// The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. + /// When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. + /// This URI is a case-sensitive identifier for the token issuer. + /// More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationOpenIdIssuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)Registration).OpenIdIssuer; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)Registration).OpenIdIssuer = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation _validation; + + /// The configuration settings of the Azure Active Directory token validation flow. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation Validation { get => (this._validation = this._validation ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryValidation()); set => this._validation = value; } + + /// + /// The list of audiences that can make successful authentication/authorization requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] ValidationAllowedAudience { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).AllowedAudience; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)Validation).AllowedAudience = value ?? null /* arrayOf */; } + + /// Creates an new instance. + public AzureActiveDirectory() + { + + } + } + /// The configuration settings of the Azure Active directory provider. + public partial interface IAzureActiveDirectory : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed groups.", + SerializedName = @"groups", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedPrincipalGroup { get; set; } + /// The list of the allowed identities. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed identities.", + SerializedName = @"identities", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedPrincipalIdentity { get; set; } + /// The configuration settings of the Azure Active Directory allowed applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The configuration settings of the Azure Active Directory allowed applications.", + SerializedName = @"allowedApplications", + PossibleTypes = new [] { typeof(string) })] + string[] DefaultAuthorizationPolicyAllowedApplication { get; set; } + /// + /// false if the Azure Active Directory provider should not be enabled despite the set registration; otherwise, + /// true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the Azure Active Directory provider should not be enabled despite the set registration; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? Enabled { get; set; } + /// + /// Gets a value indicating whether the Azure AD configuration was auto-provisioned using 1st party tooling. + /// This is an internal flag primarily intended to support the Azure Management Portal. Users should not + /// read or write to this property. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets a value indicating whether the Azure AD configuration was auto-provisioned using 1st party tooling. + This is an internal flag primarily intended to support the Azure Management Portal. Users should not + read or write to this property.", + SerializedName = @"isAutoProvisioned", + PossibleTypes = new [] { typeof(bool) })] + bool? IsAutoProvisioned { get; set; } + /// The list of the allowed client applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed client applications.", + SerializedName = @"allowedClientApplications", + PossibleTypes = new [] { typeof(string) })] + string[] JwtClaimCheckAllowedClientApplication { get; set; } + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed groups.", + SerializedName = @"allowedGroups", + PossibleTypes = new [] { typeof(string) })] + string[] JwtClaimCheckAllowedGroup { get; set; } + /// + /// true if the www-authenticate provider should be omitted from the request; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"true if the www-authenticate provider should be omitted from the request; otherwise, false.", + SerializedName = @"disableWWWAuthenticate", + PossibleTypes = new [] { typeof(bool) })] + bool? LoginDisableWwwAuthenticate { get; set; } + /// + /// Login parameters to send to the OpenID Connect authorization endpoint when + /// a user logs in. Each parameter must be in the form "key=value". + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Login parameters to send to the OpenID Connect authorization endpoint when + a user logs in. Each parameter must be in the form ""key=value"".", + SerializedName = @"loginParameters", + PossibleTypes = new [] { typeof(string) })] + string[] LoginParameter { get; set; } + /// + /// The Client ID of this relying party application, known as the client_id. + /// This setting is required for enabling OpenID Connection authentication with Azure Active Directory or + /// other 3rd party OpenID Connect providers. + /// More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Client ID of this relying party application, known as the client_id. + This setting is required for enabling OpenID Connection authentication with Azure Active Directory or + other 3rd party OpenID Connect providers. + More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientId { get; set; } + /// + /// An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret Certificate Thumbprint. It is also optional.", + SerializedName = @"clientSecretCertificateIssuer", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientSecretCertificateIssuer { get; set; } + /// + /// An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing + /// purposes. This property acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret Certificate Thumbprint. It is also optional.", + SerializedName = @"clientSecretCertificateSubjectAlternativeName", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientSecretCertificateSubjectAlternativeName { get; set; } + /// + /// An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret. It is also optional.", + SerializedName = @"clientSecretCertificateThumbprint", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientSecretCertificateThumbprint { get; set; } + /// + /// The app setting name that contains the client secret of the relying party application. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the client secret of the relying party application.", + SerializedName = @"clientSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientSecretSettingName { get; set; } + /// + /// The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. + /// When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. + /// This URI is a case-sensitive identifier for the token issuer. + /// More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. + When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. + This URI is a case-sensitive identifier for the token issuer. + More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html", + SerializedName = @"openIdIssuer", + PossibleTypes = new [] { typeof(string) })] + string RegistrationOpenIdIssuer { get; set; } + /// + /// The list of audiences that can make successful authentication/authorization requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of audiences that can make successful authentication/authorization requests.", + SerializedName = @"allowedAudiences", + PossibleTypes = new [] { typeof(string) })] + string[] ValidationAllowedAudience { get; set; } + + } + /// The configuration settings of the Azure Active directory provider. + internal partial interface IAzureActiveDirectoryInternal + + { + /// The list of the allowed groups. + string[] AllowedPrincipalGroup { get; set; } + /// The list of the allowed identities. + string[] AllowedPrincipalIdentity { get; set; } + /// The configuration settings of the Azure Active Directory allowed applications. + string[] DefaultAuthorizationPolicyAllowedApplication { get; set; } + /// The configuration settings of the Azure Active Directory allowed principals. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals DefaultAuthorizationPolicyAllowedPrincipal { get; set; } + /// + /// false if the Azure Active Directory provider should not be enabled despite the set registration; otherwise, + /// true. + /// + bool? Enabled { get; set; } + /// + /// Gets a value indicating whether the Azure AD configuration was auto-provisioned using 1st party tooling. + /// This is an internal flag primarily intended to support the Azure Management Portal. Users should not + /// read or write to this property. + /// + bool? IsAutoProvisioned { get; set; } + /// The list of the allowed client applications. + string[] JwtClaimCheckAllowedClientApplication { get; set; } + /// The list of the allowed groups. + string[] JwtClaimCheckAllowedGroup { get; set; } + /// The configuration settings of the Azure Active Directory login flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin Login { get; set; } + /// + /// true if the www-authenticate provider should be omitted from the request; otherwise, false. + /// + bool? LoginDisableWwwAuthenticate { get; set; } + /// + /// Login parameters to send to the OpenID Connect authorization endpoint when + /// a user logs in. Each parameter must be in the form "key=value". + /// + string[] LoginParameter { get; set; } + /// The configuration settings of the Azure Active Directory app registration. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration Registration { get; set; } + /// + /// The Client ID of this relying party application, known as the client_id. + /// This setting is required for enabling OpenID Connection authentication with Azure Active Directory or + /// other 3rd party OpenID Connect providers. + /// More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html + /// + string RegistrationClientId { get; set; } + /// + /// An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + string RegistrationClientSecretCertificateIssuer { get; set; } + /// + /// An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing + /// purposes. This property acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + string RegistrationClientSecretCertificateSubjectAlternativeName { get; set; } + /// + /// An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret. It is also optional. + /// + string RegistrationClientSecretCertificateThumbprint { get; set; } + /// + /// The app setting name that contains the client secret of the relying party application. + /// + string RegistrationClientSecretSettingName { get; set; } + /// + /// The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. + /// When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. + /// This URI is a case-sensitive identifier for the token issuer. + /// More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html + /// + string RegistrationOpenIdIssuer { get; set; } + /// The configuration settings of the Azure Active Directory token validation flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation Validation { get; set; } + /// + /// The list of audiences that can make successful authentication/authorization requests. + /// + string[] ValidationAllowedAudience { get; set; } + /// The configuration settings of the default authorization policy. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy ValidationDefaultAuthorizationPolicy { get; set; } + /// + /// The configuration settings of the checks that should be made while validating the JWT Claims. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks ValidationJwtClaimCheck { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.json.cs new file mode 100644 index 000000000000..419fe26562f5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectory.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Azure Active directory provider. + public partial class AzureActiveDirectory + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AzureActiveDirectory(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_registration = If( json?.PropertyT("registration"), out var __jsonRegistration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryRegistration.FromJson(__jsonRegistration) : Registration;} + {_login = If( json?.PropertyT("login"), out var __jsonLogin) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryLogin.FromJson(__jsonLogin) : Login;} + {_validation = If( json?.PropertyT("validation"), out var __jsonValidation) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryValidation.FromJson(__jsonValidation) : Validation;} + {_enabled = If( json?.PropertyT("enabled"), out var __jsonEnabled) ? (bool?)__jsonEnabled : Enabled;} + {_isAutoProvisioned = If( json?.PropertyT("isAutoProvisioned"), out var __jsonIsAutoProvisioned) ? (bool?)__jsonIsAutoProvisioned : IsAutoProvisioned;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AzureActiveDirectory(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._registration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._registration.ToJson(null,serializationMode) : null, "registration" ,container.Add ); + AddIf( null != this._login ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._login.ToJson(null,serializationMode) : null, "login" ,container.Add ); + AddIf( null != this._validation ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._validation.ToJson(null,serializationMode) : null, "validation" ,container.Add ); + AddIf( null != this._enabled ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._enabled) : null, "enabled" ,container.Add ); + AddIf( null != this._isAutoProvisioned ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._isAutoProvisioned) : null, "isAutoProvisioned" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.PowerShell.cs new file mode 100644 index 000000000000..67a37f374a0a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the Azure Active Directory login flow. + [System.ComponentModel.TypeConverter(typeof(AzureActiveDirectoryLoginTypeConverter))] + public partial class AzureActiveDirectoryLogin + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AzureActiveDirectoryLogin(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("LoginParameter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLoginInternal)this).LoginParameter = (string[]) content.GetValueForProperty("LoginParameter",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLoginInternal)this).LoginParameter, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("DisableWwwAuthenticate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLoginInternal)this).DisableWwwAuthenticate = (bool?) content.GetValueForProperty("DisableWwwAuthenticate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLoginInternal)this).DisableWwwAuthenticate, (__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 AzureActiveDirectoryLogin(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("LoginParameter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLoginInternal)this).LoginParameter = (string[]) content.GetValueForProperty("LoginParameter",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLoginInternal)this).LoginParameter, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("DisableWwwAuthenticate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLoginInternal)this).DisableWwwAuthenticate = (bool?) content.GetValueForProperty("DisableWwwAuthenticate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLoginInternal)this).DisableWwwAuthenticate, (__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.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureActiveDirectoryLogin(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureActiveDirectoryLogin(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the Azure Active Directory login flow. + [System.ComponentModel.TypeConverter(typeof(AzureActiveDirectoryLoginTypeConverter))] + public partial interface IAzureActiveDirectoryLogin + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.TypeConverter.cs new file mode 100644 index 000000000000..d4c44f0b73cc --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureActiveDirectoryLoginTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureActiveDirectoryLogin.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureActiveDirectoryLogin.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureActiveDirectoryLogin.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.cs new file mode 100644 index 000000000000..5608db43ab6b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.cs @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Azure Active Directory login flow. + public partial class AzureActiveDirectoryLogin : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLoginInternal + { + + /// Backing field for property. + private bool? _disableWwwAuthenticate; + + /// + /// true if the www-authenticate provider should be omitted from the request; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? DisableWwwAuthenticate { get => this._disableWwwAuthenticate; set => this._disableWwwAuthenticate = value; } + + /// Backing field for property. + private string[] _loginParameter; + + /// + /// Login parameters to send to the OpenID Connect authorization endpoint when + /// a user logs in. Each parameter must be in the form "key=value". + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] LoginParameter { get => this._loginParameter; set => this._loginParameter = value; } + + /// Creates an new instance. + public AzureActiveDirectoryLogin() + { + + } + } + /// The configuration settings of the Azure Active Directory login flow. + public partial interface IAzureActiveDirectoryLogin : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// true if the www-authenticate provider should be omitted from the request; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"true if the www-authenticate provider should be omitted from the request; otherwise, false.", + SerializedName = @"disableWWWAuthenticate", + PossibleTypes = new [] { typeof(bool) })] + bool? DisableWwwAuthenticate { get; set; } + /// + /// Login parameters to send to the OpenID Connect authorization endpoint when + /// a user logs in. Each parameter must be in the form "key=value". + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Login parameters to send to the OpenID Connect authorization endpoint when + a user logs in. Each parameter must be in the form ""key=value"".", + SerializedName = @"loginParameters", + PossibleTypes = new [] { typeof(string) })] + string[] LoginParameter { get; set; } + + } + /// The configuration settings of the Azure Active Directory login flow. + internal partial interface IAzureActiveDirectoryLoginInternal + + { + /// + /// true if the www-authenticate provider should be omitted from the request; otherwise, false. + /// + bool? DisableWwwAuthenticate { get; set; } + /// + /// Login parameters to send to the OpenID Connect authorization endpoint when + /// a user logs in. Each parameter must be in the form "key=value". + /// + string[] LoginParameter { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.json.cs new file mode 100644 index 000000000000..cd4e6f27ce47 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryLogin.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Azure Active Directory login flow. + public partial class AzureActiveDirectoryLogin + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AzureActiveDirectoryLogin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_loginParameter = If( json?.PropertyT("loginParameters"), out var __jsonLoginParameters) ? If( __jsonLoginParameters as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : LoginParameter;} + {_disableWwwAuthenticate = If( json?.PropertyT("disableWWWAuthenticate"), out var __jsonDisableWwwAuthenticate) ? (bool?)__jsonDisableWwwAuthenticate : DisableWwwAuthenticate;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AzureActiveDirectoryLogin(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._loginParameter) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._loginParameter ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("loginParameters",__w); + } + AddIf( null != this._disableWwwAuthenticate ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._disableWwwAuthenticate) : null, "disableWWWAuthenticate" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.PowerShell.cs new file mode 100644 index 000000000000..2120b905c780 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.PowerShell.cs @@ -0,0 +1,186 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the Azure Active Directory app registration. + [System.ComponentModel.TypeConverter(typeof(AzureActiveDirectoryRegistrationTypeConverter))] + public partial class AzureActiveDirectoryRegistration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AzureActiveDirectoryRegistration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OpenIdIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).OpenIdIssuer = (string) content.GetValueForProperty("OpenIdIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).OpenIdIssuer, global::System.Convert.ToString); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretSettingName = (string) content.GetValueForProperty("ClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("ClientSecretCertificateThumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretCertificateThumbprint = (string) content.GetValueForProperty("ClientSecretCertificateThumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretCertificateThumbprint, global::System.Convert.ToString); + } + if (content.Contains("ClientSecretCertificateSubjectAlternativeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretCertificateSubjectAlternativeName = (string) content.GetValueForProperty("ClientSecretCertificateSubjectAlternativeName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretCertificateSubjectAlternativeName, global::System.Convert.ToString); + } + if (content.Contains("ClientSecretCertificateIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretCertificateIssuer = (string) content.GetValueForProperty("ClientSecretCertificateIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretCertificateIssuer, 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 AzureActiveDirectoryRegistration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OpenIdIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).OpenIdIssuer = (string) content.GetValueForProperty("OpenIdIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).OpenIdIssuer, global::System.Convert.ToString); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretSettingName = (string) content.GetValueForProperty("ClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("ClientSecretCertificateThumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretCertificateThumbprint = (string) content.GetValueForProperty("ClientSecretCertificateThumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretCertificateThumbprint, global::System.Convert.ToString); + } + if (content.Contains("ClientSecretCertificateSubjectAlternativeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretCertificateSubjectAlternativeName = (string) content.GetValueForProperty("ClientSecretCertificateSubjectAlternativeName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretCertificateSubjectAlternativeName, global::System.Convert.ToString); + } + if (content.Contains("ClientSecretCertificateIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretCertificateIssuer = (string) content.GetValueForProperty("ClientSecretCertificateIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal)this).ClientSecretCertificateIssuer, 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.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureActiveDirectoryRegistration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureActiveDirectoryRegistration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the Azure Active Directory app registration. + [System.ComponentModel.TypeConverter(typeof(AzureActiveDirectoryRegistrationTypeConverter))] + public partial interface IAzureActiveDirectoryRegistration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.TypeConverter.cs new file mode 100644 index 000000000000..f059301617a5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureActiveDirectoryRegistrationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureActiveDirectoryRegistration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureActiveDirectoryRegistration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureActiveDirectoryRegistration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.cs new file mode 100644 index 000000000000..4852869d5526 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Azure Active Directory app registration. + public partial class AzureActiveDirectoryRegistration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistrationInternal + { + + /// Backing field for property. + private string _clientId; + + /// + /// The Client ID of this relying party application, known as the client_id. + /// This setting is required for enabling OpenID Connection authentication with Azure Active Directory or + /// other 3rd party OpenID Connect providers. + /// More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientId { get => this._clientId; set => this._clientId = value; } + + /// Backing field for property. + private string _clientSecretCertificateIssuer; + + /// + /// An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientSecretCertificateIssuer { get => this._clientSecretCertificateIssuer; set => this._clientSecretCertificateIssuer = value; } + + /// + /// Backing field for property. + /// + private string _clientSecretCertificateSubjectAlternativeName; + + /// + /// An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing + /// purposes. This property acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientSecretCertificateSubjectAlternativeName { get => this._clientSecretCertificateSubjectAlternativeName; set => this._clientSecretCertificateSubjectAlternativeName = value; } + + /// Backing field for property. + private string _clientSecretCertificateThumbprint; + + /// + /// An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientSecretCertificateThumbprint { get => this._clientSecretCertificateThumbprint; set => this._clientSecretCertificateThumbprint = value; } + + /// Backing field for property. + private string _clientSecretSettingName; + + /// + /// The app setting name that contains the client secret of the relying party application. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientSecretSettingName { get => this._clientSecretSettingName; set => this._clientSecretSettingName = value; } + + /// Backing field for property. + private string _openIdIssuer; + + /// + /// The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. + /// When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. + /// This URI is a case-sensitive identifier for the token issuer. + /// More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string OpenIdIssuer { get => this._openIdIssuer; set => this._openIdIssuer = value; } + + /// Creates an new instance. + public AzureActiveDirectoryRegistration() + { + + } + } + /// The configuration settings of the Azure Active Directory app registration. + public partial interface IAzureActiveDirectoryRegistration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// The Client ID of this relying party application, known as the client_id. + /// This setting is required for enabling OpenID Connection authentication with Azure Active Directory or + /// other 3rd party OpenID Connect providers. + /// More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Client ID of this relying party application, known as the client_id. + This setting is required for enabling OpenID Connection authentication with Azure Active Directory or + other 3rd party OpenID Connect providers. + More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string ClientId { get; set; } + /// + /// An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret Certificate Thumbprint. It is also optional.", + SerializedName = @"clientSecretCertificateIssuer", + PossibleTypes = new [] { typeof(string) })] + string ClientSecretCertificateIssuer { get; set; } + /// + /// An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing + /// purposes. This property acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret Certificate Thumbprint. It is also optional.", + SerializedName = @"clientSecretCertificateSubjectAlternativeName", + PossibleTypes = new [] { typeof(string) })] + string ClientSecretCertificateSubjectAlternativeName { get; set; } + /// + /// An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret. It is also optional.", + SerializedName = @"clientSecretCertificateThumbprint", + PossibleTypes = new [] { typeof(string) })] + string ClientSecretCertificateThumbprint { get; set; } + /// + /// The app setting name that contains the client secret of the relying party application. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the client secret of the relying party application.", + SerializedName = @"clientSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string ClientSecretSettingName { get; set; } + /// + /// The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. + /// When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. + /// This URI is a case-sensitive identifier for the token issuer. + /// More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. + When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. + This URI is a case-sensitive identifier for the token issuer. + More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html", + SerializedName = @"openIdIssuer", + PossibleTypes = new [] { typeof(string) })] + string OpenIdIssuer { get; set; } + + } + /// The configuration settings of the Azure Active Directory app registration. + internal partial interface IAzureActiveDirectoryRegistrationInternal + + { + /// + /// The Client ID of this relying party application, known as the client_id. + /// This setting is required for enabling OpenID Connection authentication with Azure Active Directory or + /// other 3rd party OpenID Connect providers. + /// More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html + /// + string ClientId { get; set; } + /// + /// An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + string ClientSecretCertificateIssuer { get; set; } + /// + /// An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing + /// purposes. This property acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + string ClientSecretCertificateSubjectAlternativeName { get; set; } + /// + /// An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret. It is also optional. + /// + string ClientSecretCertificateThumbprint { get; set; } + /// + /// The app setting name that contains the client secret of the relying party application. + /// + string ClientSecretSettingName { get; set; } + /// + /// The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. + /// When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. + /// This URI is a case-sensitive identifier for the token issuer. + /// More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html + /// + string OpenIdIssuer { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.json.cs new file mode 100644 index 000000000000..e74e5c2f867d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryRegistration.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Azure Active Directory app registration. + public partial class AzureActiveDirectoryRegistration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AzureActiveDirectoryRegistration(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_openIdIssuer = If( json?.PropertyT("openIdIssuer"), out var __jsonOpenIdIssuer) ? (string)__jsonOpenIdIssuer : (string)OpenIdIssuer;} + {_clientId = If( json?.PropertyT("clientId"), out var __jsonClientId) ? (string)__jsonClientId : (string)ClientId;} + {_clientSecretSettingName = If( json?.PropertyT("clientSecretSettingName"), out var __jsonClientSecretSettingName) ? (string)__jsonClientSecretSettingName : (string)ClientSecretSettingName;} + {_clientSecretCertificateThumbprint = If( json?.PropertyT("clientSecretCertificateThumbprint"), out var __jsonClientSecretCertificateThumbprint) ? (string)__jsonClientSecretCertificateThumbprint : (string)ClientSecretCertificateThumbprint;} + {_clientSecretCertificateSubjectAlternativeName = If( json?.PropertyT("clientSecretCertificateSubjectAlternativeName"), out var __jsonClientSecretCertificateSubjectAlternativeName) ? (string)__jsonClientSecretCertificateSubjectAlternativeName : (string)ClientSecretCertificateSubjectAlternativeName;} + {_clientSecretCertificateIssuer = If( json?.PropertyT("clientSecretCertificateIssuer"), out var __jsonClientSecretCertificateIssuer) ? (string)__jsonClientSecretCertificateIssuer : (string)ClientSecretCertificateIssuer;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AzureActiveDirectoryRegistration(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._openIdIssuer)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._openIdIssuer.ToString()) : null, "openIdIssuer" ,container.Add ); + AddIf( null != (((object)this._clientId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientId.ToString()) : null, "clientId" ,container.Add ); + AddIf( null != (((object)this._clientSecretSettingName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientSecretSettingName.ToString()) : null, "clientSecretSettingName" ,container.Add ); + AddIf( null != (((object)this._clientSecretCertificateThumbprint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientSecretCertificateThumbprint.ToString()) : null, "clientSecretCertificateThumbprint" ,container.Add ); + AddIf( null != (((object)this._clientSecretCertificateSubjectAlternativeName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientSecretCertificateSubjectAlternativeName.ToString()) : null, "clientSecretCertificateSubjectAlternativeName" ,container.Add ); + AddIf( null != (((object)this._clientSecretCertificateIssuer)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientSecretCertificateIssuer.ToString()) : null, "clientSecretCertificateIssuer" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.PowerShell.cs new file mode 100644 index 000000000000..39023ce63932 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.PowerShell.cs @@ -0,0 +1,210 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the Azure Active Directory token validation flow. + [System.ComponentModel.TypeConverter(typeof(AzureActiveDirectoryValidationTypeConverter))] + public partial class AzureActiveDirectoryValidation + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AzureActiveDirectoryValidation(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("JwtClaimCheck")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).JwtClaimCheck = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks) content.GetValueForProperty("JwtClaimCheck",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).JwtClaimCheck, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.JwtClaimChecksTypeConverter.ConvertFrom); + } + if (content.Contains("DefaultAuthorizationPolicy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).DefaultAuthorizationPolicy = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy) content.GetValueForProperty("DefaultAuthorizationPolicy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).DefaultAuthorizationPolicy, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultAuthorizationPolicyTypeConverter.ConvertFrom); + } + if (content.Contains("AllowedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).AllowedAudience = (string[]) content.GetValueForProperty("AllowedAudience",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).AllowedAudience, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("JwtClaimCheckAllowedGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).JwtClaimCheckAllowedGroup = (string[]) content.GetValueForProperty("JwtClaimCheckAllowedGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).JwtClaimCheckAllowedGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("DefaultAuthorizationPolicyAllowedPrincipal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).DefaultAuthorizationPolicyAllowedPrincipal = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals) content.GetValueForProperty("DefaultAuthorizationPolicyAllowedPrincipal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).DefaultAuthorizationPolicyAllowedPrincipal, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedPrincipalsTypeConverter.ConvertFrom); + } + if (content.Contains("DefaultAuthorizationPolicyAllowedApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).DefaultAuthorizationPolicyAllowedApplication = (string[]) content.GetValueForProperty("DefaultAuthorizationPolicyAllowedApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).DefaultAuthorizationPolicyAllowedApplication, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("JwtClaimCheckAllowedClientApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).JwtClaimCheckAllowedClientApplication = (string[]) content.GetValueForProperty("JwtClaimCheckAllowedClientApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).JwtClaimCheckAllowedClientApplication, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).AllowedPrincipalGroup = (string[]) content.GetValueForProperty("AllowedPrincipalGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).AllowedPrincipalGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).AllowedPrincipalIdentity = (string[]) content.GetValueForProperty("AllowedPrincipalIdentity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).AllowedPrincipalIdentity, __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 AzureActiveDirectoryValidation(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("JwtClaimCheck")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).JwtClaimCheck = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks) content.GetValueForProperty("JwtClaimCheck",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).JwtClaimCheck, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.JwtClaimChecksTypeConverter.ConvertFrom); + } + if (content.Contains("DefaultAuthorizationPolicy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).DefaultAuthorizationPolicy = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy) content.GetValueForProperty("DefaultAuthorizationPolicy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).DefaultAuthorizationPolicy, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultAuthorizationPolicyTypeConverter.ConvertFrom); + } + if (content.Contains("AllowedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).AllowedAudience = (string[]) content.GetValueForProperty("AllowedAudience",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).AllowedAudience, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("JwtClaimCheckAllowedGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).JwtClaimCheckAllowedGroup = (string[]) content.GetValueForProperty("JwtClaimCheckAllowedGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).JwtClaimCheckAllowedGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("DefaultAuthorizationPolicyAllowedPrincipal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).DefaultAuthorizationPolicyAllowedPrincipal = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals) content.GetValueForProperty("DefaultAuthorizationPolicyAllowedPrincipal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).DefaultAuthorizationPolicyAllowedPrincipal, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedPrincipalsTypeConverter.ConvertFrom); + } + if (content.Contains("DefaultAuthorizationPolicyAllowedApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).DefaultAuthorizationPolicyAllowedApplication = (string[]) content.GetValueForProperty("DefaultAuthorizationPolicyAllowedApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).DefaultAuthorizationPolicyAllowedApplication, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("JwtClaimCheckAllowedClientApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).JwtClaimCheckAllowedClientApplication = (string[]) content.GetValueForProperty("JwtClaimCheckAllowedClientApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).JwtClaimCheckAllowedClientApplication, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).AllowedPrincipalGroup = (string[]) content.GetValueForProperty("AllowedPrincipalGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).AllowedPrincipalGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).AllowedPrincipalIdentity = (string[]) content.GetValueForProperty("AllowedPrincipalIdentity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal)this).AllowedPrincipalIdentity, __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.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureActiveDirectoryValidation(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureActiveDirectoryValidation(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the Azure Active Directory token validation flow. + [System.ComponentModel.TypeConverter(typeof(AzureActiveDirectoryValidationTypeConverter))] + public partial interface IAzureActiveDirectoryValidation + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.TypeConverter.cs new file mode 100644 index 000000000000..81537531c86b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureActiveDirectoryValidationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureActiveDirectoryValidation.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureActiveDirectoryValidation.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureActiveDirectoryValidation.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.cs new file mode 100644 index 000000000000..56b69f0f0e9b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.cs @@ -0,0 +1,160 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Azure Active Directory token validation flow. + public partial class AzureActiveDirectoryValidation : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal + { + + /// Backing field for property. + private string[] _allowedAudience; + + /// + /// The list of audiences that can make successful authentication/authorization requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] AllowedAudience { get => this._allowedAudience; set => this._allowedAudience = value; } + + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] AllowedPrincipalGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)DefaultAuthorizationPolicy).AllowedPrincipalGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)DefaultAuthorizationPolicy).AllowedPrincipalGroup = value ?? null /* arrayOf */; } + + /// The list of the allowed identities. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] AllowedPrincipalIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)DefaultAuthorizationPolicy).AllowedPrincipalIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)DefaultAuthorizationPolicy).AllowedPrincipalIdentity = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy _defaultAuthorizationPolicy; + + /// The configuration settings of the default authorization policy. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy DefaultAuthorizationPolicy { get => (this._defaultAuthorizationPolicy = this._defaultAuthorizationPolicy ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultAuthorizationPolicy()); set => this._defaultAuthorizationPolicy = value; } + + /// The configuration settings of the Azure Active Directory allowed applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] DefaultAuthorizationPolicyAllowedApplication { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)DefaultAuthorizationPolicy).AllowedApplication; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)DefaultAuthorizationPolicy).AllowedApplication = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks _jwtClaimCheck; + + /// + /// The configuration settings of the checks that should be made while validating the JWT Claims. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks JwtClaimCheck { get => (this._jwtClaimCheck = this._jwtClaimCheck ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.JwtClaimChecks()); set => this._jwtClaimCheck = value; } + + /// The list of the allowed client applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] JwtClaimCheckAllowedClientApplication { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecksInternal)JwtClaimCheck).AllowedClientApplication; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecksInternal)JwtClaimCheck).AllowedClientApplication = value ?? null /* arrayOf */; } + + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] JwtClaimCheckAllowedGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecksInternal)JwtClaimCheck).AllowedGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecksInternal)JwtClaimCheck).AllowedGroup = value ?? null /* arrayOf */; } + + /// Internal Acessors for DefaultAuthorizationPolicy + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal.DefaultAuthorizationPolicy { get => (this._defaultAuthorizationPolicy = this._defaultAuthorizationPolicy ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultAuthorizationPolicy()); set { {_defaultAuthorizationPolicy = value;} } } + + /// Internal Acessors for DefaultAuthorizationPolicyAllowedPrincipal + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal.DefaultAuthorizationPolicyAllowedPrincipal { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)DefaultAuthorizationPolicy).AllowedPrincipal; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)DefaultAuthorizationPolicy).AllowedPrincipal = value; } + + /// Internal Acessors for JwtClaimCheck + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidationInternal.JwtClaimCheck { get => (this._jwtClaimCheck = this._jwtClaimCheck ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.JwtClaimChecks()); set { {_jwtClaimCheck = value;} } } + + /// Creates an new instance. + public AzureActiveDirectoryValidation() + { + + } + } + /// The configuration settings of the Azure Active Directory token validation flow. + public partial interface IAzureActiveDirectoryValidation : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// The list of audiences that can make successful authentication/authorization requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of audiences that can make successful authentication/authorization requests.", + SerializedName = @"allowedAudiences", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedAudience { get; set; } + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed groups.", + SerializedName = @"groups", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedPrincipalGroup { get; set; } + /// The list of the allowed identities. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed identities.", + SerializedName = @"identities", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedPrincipalIdentity { get; set; } + /// The configuration settings of the Azure Active Directory allowed applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The configuration settings of the Azure Active Directory allowed applications.", + SerializedName = @"allowedApplications", + PossibleTypes = new [] { typeof(string) })] + string[] DefaultAuthorizationPolicyAllowedApplication { get; set; } + /// The list of the allowed client applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed client applications.", + SerializedName = @"allowedClientApplications", + PossibleTypes = new [] { typeof(string) })] + string[] JwtClaimCheckAllowedClientApplication { get; set; } + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed groups.", + SerializedName = @"allowedGroups", + PossibleTypes = new [] { typeof(string) })] + string[] JwtClaimCheckAllowedGroup { get; set; } + + } + /// The configuration settings of the Azure Active Directory token validation flow. + internal partial interface IAzureActiveDirectoryValidationInternal + + { + /// + /// The list of audiences that can make successful authentication/authorization requests. + /// + string[] AllowedAudience { get; set; } + /// The list of the allowed groups. + string[] AllowedPrincipalGroup { get; set; } + /// The list of the allowed identities. + string[] AllowedPrincipalIdentity { get; set; } + /// The configuration settings of the default authorization policy. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy DefaultAuthorizationPolicy { get; set; } + /// The configuration settings of the Azure Active Directory allowed applications. + string[] DefaultAuthorizationPolicyAllowedApplication { get; set; } + /// The configuration settings of the Azure Active Directory allowed principals. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals DefaultAuthorizationPolicyAllowedPrincipal { get; set; } + /// + /// The configuration settings of the checks that should be made while validating the JWT Claims. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks JwtClaimCheck { get; set; } + /// The list of the allowed client applications. + string[] JwtClaimCheckAllowedClientApplication { get; set; } + /// The list of the allowed groups. + string[] JwtClaimCheckAllowedGroup { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.json.cs new file mode 100644 index 000000000000..b147e72be39b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureActiveDirectoryValidation.json.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Azure Active Directory token validation flow. + public partial class AzureActiveDirectoryValidation + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AzureActiveDirectoryValidation(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_jwtClaimCheck = If( json?.PropertyT("jwtClaimChecks"), out var __jsonJwtClaimChecks) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.JwtClaimChecks.FromJson(__jsonJwtClaimChecks) : JwtClaimCheck;} + {_defaultAuthorizationPolicy = If( json?.PropertyT("defaultAuthorizationPolicy"), out var __jsonDefaultAuthorizationPolicy) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultAuthorizationPolicy.FromJson(__jsonDefaultAuthorizationPolicy) : DefaultAuthorizationPolicy;} + {_allowedAudience = If( json?.PropertyT("allowedAudiences"), out var __jsonAllowedAudiences) ? If( __jsonAllowedAudiences as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : AllowedAudience;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AzureActiveDirectoryValidation(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._jwtClaimCheck ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._jwtClaimCheck.ToJson(null,serializationMode) : null, "jwtClaimChecks" ,container.Add ); + AddIf( null != this._defaultAuthorizationPolicy ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._defaultAuthorizationPolicy.ToJson(null,serializationMode) : null, "defaultAuthorizationPolicy" ,container.Add ); + if (null != this._allowedAudience) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._allowedAudience ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("allowedAudiences",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.PowerShell.cs new file mode 100644 index 000000000000..a823b1ea177d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.PowerShell.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App credentials. + [System.ComponentModel.TypeConverter(typeof(AzureCredentialsTypeConverter))] + public partial class AzureCredentials + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AzureCredentials(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).ClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).ClientSecret = (string) content.GetValueForProperty("ClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).ClientSecret, global::System.Convert.ToString); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("SubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).SubscriptionId = (string) content.GetValueForProperty("SubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).SubscriptionId, 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 AzureCredentials(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).ClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).ClientSecret = (string) content.GetValueForProperty("ClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).ClientSecret, global::System.Convert.ToString); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("SubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).SubscriptionId = (string) content.GetValueForProperty("SubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)this).SubscriptionId, 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.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureCredentials(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureCredentials(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App credentials. + [System.ComponentModel.TypeConverter(typeof(AzureCredentialsTypeConverter))] + public partial interface IAzureCredentials + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.TypeConverter.cs new file mode 100644 index 000000000000..edadec1162c4 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureCredentialsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureCredentials.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureCredentials.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureCredentials.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.cs new file mode 100644 index 000000000000..afa2ee69a86c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App credentials. + public partial class AzureCredentials : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal + { + + /// Backing field for property. + private string _clientId; + + /// Client Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientId { get => this._clientId; set => this._clientId = value; } + + /// Backing field for property. + private string _clientSecret; + + /// Client Secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientSecret { get => this._clientSecret; set => this._clientSecret = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// Subscription Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _tenantId; + + /// Tenant Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string TenantId { get => this._tenantId; set => this._tenantId = value; } + + /// Creates an new instance. + public AzureCredentials() + { + + } + } + /// Container App credentials. + public partial interface IAzureCredentials : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Client Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Client Id.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string ClientId { get; set; } + /// Client Secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Client Secret.", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + string ClientSecret { get; set; } + /// Subscription Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Subscription Id.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + string SubscriptionId { get; set; } + /// Tenant Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tenant Id.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string TenantId { get; set; } + + } + /// Container App credentials. + internal partial interface IAzureCredentialsInternal + + { + /// Client Id. + string ClientId { get; set; } + /// Client Secret. + string ClientSecret { get; set; } + /// Subscription Id. + string SubscriptionId { get; set; } + /// Tenant Id. + string TenantId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.json.cs new file mode 100644 index 000000000000..25ca30adba3f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureCredentials.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App credentials. + public partial class AzureCredentials + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AzureCredentials(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_clientId = If( json?.PropertyT("clientId"), out var __jsonClientId) ? (string)__jsonClientId : (string)ClientId;} + {_clientSecret = If( json?.PropertyT("clientSecret"), out var __jsonClientSecret) ? (string)__jsonClientSecret : (string)ClientSecret;} + {_tenantId = If( json?.PropertyT("tenantId"), out var __jsonTenantId) ? (string)__jsonTenantId : (string)TenantId;} + {_subscriptionId = If( json?.PropertyT("subscriptionId"), out var __jsonSubscriptionId) ? (string)__jsonSubscriptionId : (string)SubscriptionId;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AzureCredentials(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._clientId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientId.ToString()) : null, "clientId" ,container.Add ); + AddIf( null != (((object)this._clientSecret)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientSecret.ToString()) : null, "clientSecret" ,container.Add ); + AddIf( null != (((object)this._tenantId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._tenantId.ToString()) : null, "tenantId" ,container.Add ); + AddIf( null != (((object)this._subscriptionId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._subscriptionId.ToString()) : null, "subscriptionId" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.PowerShell.cs new file mode 100644 index 000000000000..c42dc95ea699 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.PowerShell.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Azure File Properties. + [System.ComponentModel.TypeConverter(typeof(AzureFilePropertiesTypeConverter))] + public partial class AzureFileProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AzureFileProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AccountName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).AccountName = (string) content.GetValueForProperty("AccountName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).AccountName, global::System.Convert.ToString); + } + if (content.Contains("AccountKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).AccountKey = (string) content.GetValueForProperty("AccountKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).AccountKey, global::System.Convert.ToString); + } + if (content.Contains("AccessMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).AccessMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode?) content.GetValueForProperty("AccessMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).AccessMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode.CreateFrom); + } + if (content.Contains("ShareName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).ShareName = (string) content.GetValueForProperty("ShareName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).ShareName, 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 AzureFileProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AccountName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).AccountName = (string) content.GetValueForProperty("AccountName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).AccountName, global::System.Convert.ToString); + } + if (content.Contains("AccountKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).AccountKey = (string) content.GetValueForProperty("AccountKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).AccountKey, global::System.Convert.ToString); + } + if (content.Contains("AccessMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).AccessMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode?) content.GetValueForProperty("AccessMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).AccessMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode.CreateFrom); + } + if (content.Contains("ShareName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).ShareName = (string) content.GetValueForProperty("ShareName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)this).ShareName, 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.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureFileProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureFileProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Azure File Properties. + [System.ComponentModel.TypeConverter(typeof(AzureFilePropertiesTypeConverter))] + public partial interface IAzureFileProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.TypeConverter.cs new file mode 100644 index 000000000000..54c7add357de --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureFilePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureFileProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureFileProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureFileProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.cs new file mode 100644 index 000000000000..a86705032791 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Azure File Properties. + public partial class AzureFileProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? _accessMode; + + /// Access mode for storage + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AccessMode { get => this._accessMode; set => this._accessMode = value; } + + /// Backing field for property. + private string _accountKey; + + /// Storage account key for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string AccountKey { get => this._accountKey; set => this._accountKey = value; } + + /// Backing field for property. + private string _accountName; + + /// Storage account name for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string AccountName { get => this._accountName; set => this._accountName = value; } + + /// Backing field for property. + private string _shareName; + + /// Azure file share name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ShareName { get => this._shareName; set => this._shareName = value; } + + /// Creates an new instance. + public AzureFileProperties() + { + + } + } + /// Azure File Properties. + public partial interface IAzureFileProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Access mode for storage + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Access mode for storage", + SerializedName = @"accessMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AccessMode { get; set; } + /// Storage account key for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage account key for azure file.", + SerializedName = @"accountKey", + PossibleTypes = new [] { typeof(string) })] + string AccountKey { get; set; } + /// Storage account name for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage account name for azure file.", + SerializedName = @"accountName", + PossibleTypes = new [] { typeof(string) })] + string AccountName { get; set; } + /// Azure file share name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure file share name.", + SerializedName = @"shareName", + PossibleTypes = new [] { typeof(string) })] + string ShareName { get; set; } + + } + /// Azure File Properties. + internal partial interface IAzureFilePropertiesInternal + + { + /// Access mode for storage + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AccessMode { get; set; } + /// Storage account key for azure file. + string AccountKey { get; set; } + /// Storage account name for azure file. + string AccountName { get; set; } + /// Azure file share name. + string ShareName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.json.cs new file mode 100644 index 000000000000..918297c8d1ab --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureFileProperties.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Azure File Properties. + public partial class AzureFileProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AzureFileProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_accountName = If( json?.PropertyT("accountName"), out var __jsonAccountName) ? (string)__jsonAccountName : (string)AccountName;} + {_accountKey = If( json?.PropertyT("accountKey"), out var __jsonAccountKey) ? (string)__jsonAccountKey : (string)AccountKey;} + {_accessMode = If( json?.PropertyT("accessMode"), out var __jsonAccessMode) ? (string)__jsonAccessMode : (string)AccessMode;} + {_shareName = If( json?.PropertyT("shareName"), out var __jsonShareName) ? (string)__jsonShareName : (string)ShareName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AzureFileProperties(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._accountName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._accountName.ToString()) : null, "accountName" ,container.Add ); + AddIf( null != (((object)this._accountKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._accountKey.ToString()) : null, "accountKey" ,container.Add ); + AddIf( null != (((object)this._accessMode)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._accessMode.ToString()) : null, "accessMode" ,container.Add ); + AddIf( null != (((object)this._shareName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._shareName.ToString()) : null, "shareName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.PowerShell.cs new file mode 100644 index 000000000000..21bc0e05bf70 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the Azure Static Web Apps provider. + [System.ComponentModel.TypeConverter(typeof(AzureStaticWebAppsTypeConverter))] + public partial class AzureStaticWebApps + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AzureStaticWebApps(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebAppsRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)this).RegistrationClientId = (string) content.GetValueForProperty("RegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)this).RegistrationClientId, 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 AzureStaticWebApps(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebAppsRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)this).RegistrationClientId = (string) content.GetValueForProperty("RegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)this).RegistrationClientId, 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.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureStaticWebApps(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureStaticWebApps(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the Azure Static Web Apps provider. + [System.ComponentModel.TypeConverter(typeof(AzureStaticWebAppsTypeConverter))] + public partial interface IAzureStaticWebApps + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.TypeConverter.cs new file mode 100644 index 000000000000..4e4f1f4ad486 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureStaticWebAppsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureStaticWebApps.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureStaticWebApps.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureStaticWebApps.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.cs new file mode 100644 index 000000000000..4fc3814d214e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.cs @@ -0,0 +1,86 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Azure Static Web Apps provider. + public partial class AzureStaticWebApps : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal + { + + /// Backing field for property. + private bool? _enabled; + + /// + /// false if the Azure Static Web Apps provider should not be enabled despite the set registration; otherwise, + /// true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Enabled { get => this._enabled; set => this._enabled = value; } + + /// Internal Acessors for Registration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal.Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebAppsRegistration()); set { {_registration = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration _registration; + + /// The configuration settings of the Azure Static Web Apps registration. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebAppsRegistration()); set => this._registration = value; } + + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistrationInternal)Registration).ClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistrationInternal)Registration).ClientId = value ?? null; } + + /// Creates an new instance. + public AzureStaticWebApps() + { + + } + } + /// The configuration settings of the Azure Static Web Apps provider. + public partial interface IAzureStaticWebApps : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// false if the Azure Static Web Apps provider should not be enabled despite the set registration; otherwise, + /// true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the Azure Static Web Apps provider should not be enabled despite the set registration; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? Enabled { get; set; } + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Client ID of the app used for login.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientId { get; set; } + + } + /// The configuration settings of the Azure Static Web Apps provider. + internal partial interface IAzureStaticWebAppsInternal + + { + /// + /// false if the Azure Static Web Apps provider should not be enabled despite the set registration; otherwise, + /// true. + /// + bool? Enabled { get; set; } + /// The configuration settings of the Azure Static Web Apps registration. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration Registration { get; set; } + /// The Client ID of the app used for login. + string RegistrationClientId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.json.cs new file mode 100644 index 000000000000..e3613ca078fa --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebApps.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Azure Static Web Apps provider. + public partial class AzureStaticWebApps + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AzureStaticWebApps(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_registration = If( json?.PropertyT("registration"), out var __jsonRegistration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebAppsRegistration.FromJson(__jsonRegistration) : Registration;} + {_enabled = If( json?.PropertyT("enabled"), out var __jsonEnabled) ? (bool?)__jsonEnabled : Enabled;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AzureStaticWebApps(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._registration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._registration.ToJson(null,serializationMode) : null, "registration" ,container.Add ); + AddIf( null != this._enabled ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.PowerShell.cs new file mode 100644 index 000000000000..2d0f9528ecec --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.PowerShell.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The configuration settings of the registration for the Azure Static Web Apps provider + /// + [System.ComponentModel.TypeConverter(typeof(AzureStaticWebAppsRegistrationTypeConverter))] + public partial class AzureStaticWebAppsRegistration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 AzureStaticWebAppsRegistration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistrationInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistrationInternal)this).ClientId, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AzureStaticWebAppsRegistration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistrationInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistrationInternal)this).ClientId, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureStaticWebAppsRegistration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureStaticWebAppsRegistration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the registration for the Azure Static Web Apps provider + [System.ComponentModel.TypeConverter(typeof(AzureStaticWebAppsRegistrationTypeConverter))] + public partial interface IAzureStaticWebAppsRegistration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.TypeConverter.cs new file mode 100644 index 000000000000..488716360190 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureStaticWebAppsRegistrationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureStaticWebAppsRegistration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureStaticWebAppsRegistration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureStaticWebAppsRegistration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.cs new file mode 100644 index 000000000000..11bf49f1b2f8 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.cs @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the registration for the Azure Static Web Apps provider + /// + public partial class AzureStaticWebAppsRegistration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistrationInternal + { + + /// Backing field for property. + private string _clientId; + + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientId { get => this._clientId; set => this._clientId = value; } + + /// Creates an new instance. + public AzureStaticWebAppsRegistration() + { + + } + } + /// The configuration settings of the registration for the Azure Static Web Apps provider + public partial interface IAzureStaticWebAppsRegistration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Client ID of the app used for login.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string ClientId { get; set; } + + } + /// The configuration settings of the registration for the Azure Static Web Apps provider + internal partial interface IAzureStaticWebAppsRegistrationInternal + + { + /// The Client ID of the app used for login. + string ClientId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.json.cs new file mode 100644 index 000000000000..41ba9fcb2e1b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/AzureStaticWebAppsRegistration.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the registration for the Azure Static Web Apps provider + /// + public partial class AzureStaticWebAppsRegistration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal AzureStaticWebAppsRegistration(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_clientId = If( json?.PropertyT("clientId"), out var __jsonClientId) ? (string)__jsonClientId : (string)ClientId;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AzureStaticWebAppsRegistration(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._clientId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientId.ToString()) : null, "clientId" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.PowerShell.cs new file mode 100644 index 000000000000..a68af2ef184c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.PowerShell.cs @@ -0,0 +1,218 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App base container definition. + [System.ComponentModel.TypeConverter(typeof(BaseContainerTypeConverter))] + public partial class BaseContainer + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 BaseContainer(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Resource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Resource = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Resource, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerResourcesTypeConverter.ConvertFrom); + } + if (content.Contains("Image")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Image = (string) content.GetValueForProperty("Image",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Image, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Command")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Command = (string[]) content.GetValueForProperty("Command",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Command, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Arg")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Arg = (string[]) content.GetValueForProperty("Arg",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Arg, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Env")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Env = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar[]) content.GetValueForProperty("Env",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Env, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentVarTypeConverter.ConvertFrom)); + } + if (content.Contains("VolumeMount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).VolumeMount = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount[]) content.GetValueForProperty("VolumeMount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).VolumeMount, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeMountTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceCpu = (double?) content.GetValueForProperty("ResourceCpu",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceCpu, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("ResourceMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceMemory = (string) content.GetValueForProperty("ResourceMemory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceEphemeralStorage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceEphemeralStorage = (string) content.GetValueForProperty("ResourceEphemeralStorage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceEphemeralStorage, 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 BaseContainer(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Resource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Resource = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Resource, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerResourcesTypeConverter.ConvertFrom); + } + if (content.Contains("Image")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Image = (string) content.GetValueForProperty("Image",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Image, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Command")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Command = (string[]) content.GetValueForProperty("Command",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Command, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Arg")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Arg = (string[]) content.GetValueForProperty("Arg",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Arg, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Env")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Env = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar[]) content.GetValueForProperty("Env",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Env, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentVarTypeConverter.ConvertFrom)); + } + if (content.Contains("VolumeMount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).VolumeMount = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount[]) content.GetValueForProperty("VolumeMount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).VolumeMount, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeMountTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceCpu = (double?) content.GetValueForProperty("ResourceCpu",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceCpu, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("ResourceMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceMemory = (string) content.GetValueForProperty("ResourceMemory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceEphemeralStorage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceEphemeralStorage = (string) content.GetValueForProperty("ResourceEphemeralStorage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceEphemeralStorage, 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.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BaseContainer(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BaseContainer(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App base container definition. + [System.ComponentModel.TypeConverter(typeof(BaseContainerTypeConverter))] + public partial interface IBaseContainer + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.TypeConverter.cs new file mode 100644 index 000000000000..6ce0c4d0f7a7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BaseContainerTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BaseContainer.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BaseContainer.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BaseContainer.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.cs new file mode 100644 index 000000000000..1bbaf2f2f974 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.cs @@ -0,0 +1,193 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App base container definition. + public partial class BaseContainer : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal + { + + /// Backing field for property. + private string[] _arg; + + /// Container start command arguments. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] Arg { get => this._arg; set => this._arg = value; } + + /// Backing field for property. + private string[] _command; + + /// Container start command. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] Command { get => this._command; set => this._command = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar[] _env; + + /// Container environment variables. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar[] Env { get => this._env; set => this._env = value; } + + /// Backing field for property. + private string _image; + + /// Container image tag. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Image { get => this._image; set => this._image = value; } + + /// Internal Acessors for Resource + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal.Resource { get => (this._resource = this._resource ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerResources()); set { {_resource = value;} } } + + /// Internal Acessors for ResourceEphemeralStorage + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal.ResourceEphemeralStorage { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)Resource).EphemeralStorage; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)Resource).EphemeralStorage = value; } + + /// Backing field for property. + private string _name; + + /// Custom container name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources _resource; + + /// Container resource requirements. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources Resource { get => (this._resource = this._resource ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerResources()); set => this._resource = value; } + + /// Required CPU in cores, e.g. 0.5 + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public double? ResourceCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)Resource).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)Resource).Cpu = value ?? default(double); } + + /// Ephemeral Storage, e.g. "1Gi" + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ResourceEphemeralStorage { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)Resource).EphemeralStorage; } + + /// Required memory, e.g. "250Mb" + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ResourceMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)Resource).Memory; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)Resource).Memory = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount[] _volumeMount; + + /// Container volume mounts. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount[] VolumeMount { get => this._volumeMount; set => this._volumeMount = value; } + + /// Creates an new instance. + public BaseContainer() + { + + } + } + /// Container App base container definition. + public partial interface IBaseContainer : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Container start command arguments. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Container start command arguments.", + SerializedName = @"args", + PossibleTypes = new [] { typeof(string) })] + string[] Arg { get; set; } + /// Container start command. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Container start command.", + SerializedName = @"command", + PossibleTypes = new [] { typeof(string) })] + string[] Command { get; set; } + /// Container environment variables. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Container environment variables.", + SerializedName = @"env", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar[] Env { get; set; } + /// Container image tag. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Container image tag.", + SerializedName = @"image", + PossibleTypes = new [] { typeof(string) })] + string Image { get; set; } + /// Custom container name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Custom container name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Required CPU in cores, e.g. 0.5 + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Required CPU in cores, e.g. 0.5", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(double) })] + double? ResourceCpu { get; set; } + /// Ephemeral Storage, e.g. "1Gi" + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Ephemeral Storage, e.g. ""1Gi""", + SerializedName = @"ephemeralStorage", + PossibleTypes = new [] { typeof(string) })] + string ResourceEphemeralStorage { get; } + /// Required memory, e.g. "250Mb" + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Required memory, e.g. ""250Mb""", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceMemory { get; set; } + /// Container volume mounts. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Container volume mounts.", + SerializedName = @"volumeMounts", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount[] VolumeMount { get; set; } + + } + /// Container App base container definition. + internal partial interface IBaseContainerInternal + + { + /// Container start command arguments. + string[] Arg { get; set; } + /// Container start command. + string[] Command { get; set; } + /// Container environment variables. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar[] Env { get; set; } + /// Container image tag. + string Image { get; set; } + /// Custom container name. + string Name { get; set; } + /// Container resource requirements. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources Resource { get; set; } + /// Required CPU in cores, e.g. 0.5 + double? ResourceCpu { get; set; } + /// Ephemeral Storage, e.g. "1Gi" + string ResourceEphemeralStorage { get; set; } + /// Required memory, e.g. "250Mb" + string ResourceMemory { get; set; } + /// Container volume mounts. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount[] VolumeMount { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.json.cs new file mode 100644 index 000000000000..8cbcc567b91d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BaseContainer.json.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App base container definition. + public partial class BaseContainer + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal BaseContainer(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resource = If( json?.PropertyT("resources"), out var __jsonResources) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerResources.FromJson(__jsonResources) : Resource;} + {_image = If( json?.PropertyT("image"), out var __jsonImage) ? (string)__jsonImage : (string)Image;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_command = If( json?.PropertyT("command"), out var __jsonCommand) ? If( __jsonCommand as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Command;} + {_arg = If( json?.PropertyT("args"), out var __jsonArgs) ? If( __jsonArgs as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : Arg;} + {_env = If( json?.PropertyT("env"), out var __jsonEnv) ? If( __jsonEnv as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentVar.FromJson(__k) )) ))() : null : Env;} + {_volumeMount = If( json?.PropertyT("volumeMounts"), out var __jsonVolumeMounts) ? If( __jsonVolumeMounts as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonArray, out var __g) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__g, (__f)=>(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeMount.FromJson(__f) )) ))() : null : VolumeMount;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new BaseContainer(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._resource ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._resource.ToJson(null,serializationMode) : null, "resources" ,container.Add ); + AddIf( null != (((object)this._image)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._image.ToString()) : null, "image" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + if (null != this._command) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._command ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("command",__w); + } + if (null != this._arg) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._arg ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("args",__r); + } + if (null != this._env) + { + var __m = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __n in this._env ) + { + AddIf(__n?.ToJson(null, serializationMode) ,__m.Add); + } + container.Add("env",__m); + } + if (null != this._volumeMount) + { + var __h = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __i in this._volumeMount ) + { + AddIf(__i?.ToJson(null, serializationMode) ,__h.Add); + } + container.Add("volumeMounts",__h); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.PowerShell.cs new file mode 100644 index 000000000000..3facea6a8de7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.PowerShell.cs @@ -0,0 +1,258 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// A premium billing meter. + [System.ComponentModel.TypeConverter(typeof(BillingMeterTypeConverter))] + public partial class BillingMeter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 BillingMeter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BillingMeterPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Category")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).Category = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category?) content.GetValueForProperty("Category",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).Category, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category.CreateFrom); + } + if (content.Contains("MeterType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).MeterType = (string) content.GetValueForProperty("MeterType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).MeterType, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)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 BillingMeter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BillingMeterPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Category")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).Category = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category?) content.GetValueForProperty("Category",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).Category, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category.CreateFrom); + } + if (content.Contains("MeterType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).MeterType = (string) content.GetValueForProperty("MeterType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).MeterType, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal)this).DisplayName, 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.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BillingMeter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BillingMeter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A premium billing meter. + [System.ComponentModel.TypeConverter(typeof(BillingMeterTypeConverter))] + public partial interface IBillingMeter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.TypeConverter.cs new file mode 100644 index 000000000000..7da0c1c655d1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BillingMeterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BillingMeter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BillingMeter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BillingMeter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.cs new file mode 100644 index 000000000000..e5b08487f734 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.cs @@ -0,0 +1,182 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// A premium billing meter. + public partial class BillingMeter : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(); + + /// Used to map workload profile types to billing meter. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category? Category { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)Property).Category; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)Property).Category = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category)""); } + + /// The everyday name of the billing meter. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DisplayName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)Property).DisplayName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)Property).DisplayName = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; } + + /// Backing field for property. + private string _location; + + /// Region for the billing meter. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Billing meter type. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string MeterType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)Property).MeterType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)Property).MeterType = value ?? null; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BillingMeterProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties _property; + + /// Revision resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BillingMeterProperties()); set => this._property = value; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public BillingMeter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// A premium billing meter. + public partial interface IBillingMeter : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource + { + /// Used to map workload profile types to billing meter. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Used to map workload profile types to billing meter.", + SerializedName = @"category", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category? Category { get; set; } + /// The everyday name of the billing meter. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The everyday name of the billing meter.", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// Region for the billing meter. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Region for the billing meter.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// Billing meter type. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Billing meter type.", + SerializedName = @"meterType", + PossibleTypes = new [] { typeof(string) })] + string MeterType { get; set; } + + } + /// A premium billing meter. + internal partial interface IBillingMeterInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal + { + /// Used to map workload profile types to billing meter. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category? Category { get; set; } + /// The everyday name of the billing meter. + string DisplayName { get; set; } + /// Region for the billing meter. + string Location { get; set; } + /// Billing meter type. + string MeterType { get; set; } + /// Revision resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.json.cs new file mode 100644 index 000000000000..f733c1881e8a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeter.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// A premium billing meter. + public partial class BillingMeter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal BillingMeter(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BillingMeterProperties.FromJson(__jsonProperties) : Property;} + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new BillingMeter(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.PowerShell.cs new file mode 100644 index 000000000000..33d31adede86 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Collection of premium workload billing meters. + [System.ComponentModel.TypeConverter(typeof(BillingMeterCollectionTypeConverter))] + public partial class BillingMeterCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 BillingMeterCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BillingMeterTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal BillingMeterCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BillingMeterTypeConverter.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.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BillingMeterCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BillingMeterCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of premium workload billing meters. + [System.ComponentModel.TypeConverter(typeof(BillingMeterCollectionTypeConverter))] + public partial interface IBillingMeterCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.TypeConverter.cs new file mode 100644 index 000000000000..c4148b322501 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BillingMeterCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BillingMeterCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BillingMeterCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BillingMeterCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.cs new file mode 100644 index 000000000000..f75b3fe3c27c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of premium workload billing meters. + public partial class BillingMeterCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollectionInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter[] _value; + + /// Collection of billing meters. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public BillingMeterCollection() + { + + } + } + /// Collection of premium workload billing meters. + public partial interface IBillingMeterCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Collection of billing meters. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of billing meters.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter[] Value { get; set; } + + } + /// Collection of premium workload billing meters. + internal partial interface IBillingMeterCollectionInternal + + { + /// Collection of billing meters. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.json.cs new file mode 100644 index 000000000000..474a8d55bc32 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterCollection.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of premium workload billing meters. + public partial class BillingMeterCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal BillingMeterCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BillingMeter.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new BillingMeterCollection(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.PowerShell.cs new file mode 100644 index 000000000000..dd0e219d0ada --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Revision resource specific properties + [System.ComponentModel.TypeConverter(typeof(BillingMeterPropertiesTypeConverter))] + public partial class BillingMeterProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 BillingMeterProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Category")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)this).Category = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category?) content.GetValueForProperty("Category",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)this).Category, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category.CreateFrom); + } + if (content.Contains("MeterType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)this).MeterType = (string) content.GetValueForProperty("MeterType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)this).MeterType, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)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 BillingMeterProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Category")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)this).Category = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category?) content.GetValueForProperty("Category",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)this).Category, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category.CreateFrom); + } + if (content.Contains("MeterType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)this).MeterType = (string) content.GetValueForProperty("MeterType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)this).MeterType, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal)this).DisplayName, 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.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BillingMeterProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BillingMeterProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Revision resource specific properties + [System.ComponentModel.TypeConverter(typeof(BillingMeterPropertiesTypeConverter))] + public partial interface IBillingMeterProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.TypeConverter.cs new file mode 100644 index 000000000000..e5d26bf023bd --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BillingMeterPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BillingMeterProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BillingMeterProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BillingMeterProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.cs new file mode 100644 index 000000000000..93ee072561a3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Revision resource specific properties + public partial class BillingMeterProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category? _category; + + /// Used to map workload profile types to billing meter. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category? Category { get => this._category; set => this._category = value; } + + /// Backing field for property. + private string _displayName; + + /// The everyday name of the billing meter. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string DisplayName { get => this._displayName; set => this._displayName = value; } + + /// Backing field for property. + private string _meterType; + + /// Billing meter type. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string MeterType { get => this._meterType; set => this._meterType = value; } + + /// Creates an new instance. + public BillingMeterProperties() + { + + } + } + /// Revision resource specific properties + public partial interface IBillingMeterProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Used to map workload profile types to billing meter. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Used to map workload profile types to billing meter.", + SerializedName = @"category", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category? Category { get; set; } + /// The everyday name of the billing meter. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The everyday name of the billing meter.", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// Billing meter type. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Billing meter type.", + SerializedName = @"meterType", + PossibleTypes = new [] { typeof(string) })] + string MeterType { get; set; } + + } + /// Revision resource specific properties + internal partial interface IBillingMeterPropertiesInternal + + { + /// Used to map workload profile types to billing meter. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category? Category { get; set; } + /// The everyday name of the billing meter. + string DisplayName { get; set; } + /// Billing meter type. + string MeterType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.json.cs new file mode 100644 index 000000000000..c4ed1e34de20 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/BillingMeterProperties.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Revision resource specific properties + public partial class BillingMeterProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal BillingMeterProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_category = If( json?.PropertyT("category"), out var __jsonCategory) ? (string)__jsonCategory : (string)Category;} + {_meterType = If( json?.PropertyT("meterType"), out var __jsonMeterType) ? (string)__jsonMeterType : (string)MeterType;} + {_displayName = If( json?.PropertyT("displayName"), out var __jsonDisplayName) ? (string)__jsonDisplayName : (string)DisplayName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new BillingMeterProperties(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._category)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._category.ToString()) : null, "category" ,container.Add ); + AddIf( null != (((object)this._meterType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._meterType.ToString()) : null, "meterType" ,container.Add ); + AddIf( null != (((object)this._displayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/Certificate.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.PowerShell.cs new file mode 100644 index 000000000000..62d2e25e8ded --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.PowerShell.cs @@ -0,0 +1,332 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// Certificate used for Custom Domain bindings of Container Apps in a Managed Environment + /// + [System.ComponentModel.TypeConverter(typeof(CertificateTypeConverter))] + public partial class Certificate + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 Certificate(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificatePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState.CreateFrom); + } + if (content.Contains("Password")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Password, global::System.Convert.ToString); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("SubjectAlternativeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).SubjectAlternativeName = (string[]) content.GetValueForProperty("SubjectAlternativeName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).SubjectAlternativeName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Value = (byte[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Value, i => i); + } + if (content.Contains("Issuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Issuer, global::System.Convert.ToString); + } + if (content.Contains("IssueDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).IssueDate = (global::System.DateTime?) content.GetValueForProperty("IssueDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).IssueDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).ExpirationDate = (global::System.DateTime?) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).ExpirationDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("Valid")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Valid = (bool?) content.GetValueForProperty("Valid",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Valid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PublicKeyHash")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).PublicKeyHash = (string) content.GetValueForProperty("PublicKeyHash",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).PublicKeyHash, 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 Certificate(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificatePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState.CreateFrom); + } + if (content.Contains("Password")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Password, global::System.Convert.ToString); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("SubjectAlternativeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).SubjectAlternativeName = (string[]) content.GetValueForProperty("SubjectAlternativeName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).SubjectAlternativeName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Value = (byte[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Value, i => i); + } + if (content.Contains("Issuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Issuer, global::System.Convert.ToString); + } + if (content.Contains("IssueDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).IssueDate = (global::System.DateTime?) content.GetValueForProperty("IssueDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).IssueDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).ExpirationDate = (global::System.DateTime?) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).ExpirationDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("Valid")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Valid = (bool?) content.GetValueForProperty("Valid",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).Valid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PublicKeyHash")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).PublicKeyHash = (string) content.GetValueForProperty("PublicKeyHash",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal)this).PublicKeyHash, 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.ContainerAppsApi.Models.Api20221101Preview.ICertificate DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Certificate(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Certificate(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Certificate used for Custom Domain bindings of Container Apps in a Managed Environment + [System.ComponentModel.TypeConverter(typeof(CertificateTypeConverter))] + public partial interface ICertificate + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.TypeConverter.cs new file mode 100644 index 000000000000..cacf7e24d4c3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CertificateTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Certificate.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Certificate.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Certificate.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.cs new file mode 100644 index 000000000000..3db0e2c5096f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.cs @@ -0,0 +1,314 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Certificate used for Custom Domain bindings of Container Apps in a Managed Environment + /// + public partial class Certificate : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource(); + + /// Certificate expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public global::System.DateTime? ExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ExpirationDate; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id; } + + /// Certificate issue Date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public global::System.DateTime? IssueDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).IssueDate; } + + /// Certificate issuer. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Issuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Issuer; } + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// Internal Acessors for ExpirationDate + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal.ExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ExpirationDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ExpirationDate = value; } + + /// Internal Acessors for IssueDate + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal.IssueDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).IssueDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).IssueDate = value; } + + /// Internal Acessors for Issuer + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal.Issuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Issuer; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Issuer = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificateProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for PublicKeyHash + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal.PublicKeyHash { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).PublicKeyHash; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).PublicKeyHash = value; } + + /// Internal Acessors for SubjectAlternativeName + string[] Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal.SubjectAlternativeName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).SubjectAlternativeName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).SubjectAlternativeName = value; } + + /// Internal Acessors for SubjectName + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal.SubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).SubjectName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).SubjectName = value; } + + /// Internal Acessors for Thumbprint + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal.Thumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Thumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Thumbprint = value; } + + /// Internal Acessors for Valid + bool? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateInternal.Valid { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Valid; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Valid = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name; } + + /// Certificate password. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Password { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Password; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Password = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties _property; + + /// Certificate resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificateProperties()); set => this._property = value; } + + /// Provisioning state of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ProvisioningState; } + + /// Public key hash. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string PublicKeyHash { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).PublicKeyHash; } + + /// Subject alternative names the certificate applies to. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] SubjectAlternativeName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).SubjectAlternativeName; } + + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string SubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).SubjectName; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// Certificate thumbprint. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Thumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Thumbprint; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type; } + + /// Is the certificate valid?. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? Valid { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Valid; } + + /// PFX or PEM blob + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public byte[] Value { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Value; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Value = value ?? null /* byte array */; } + + /// Creates an new instance. + public Certificate() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// Certificate used for Custom Domain bindings of Container Apps in a Managed Environment + public partial interface ICertificate : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource + { + /// Certificate expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate expiration date.", + SerializedName = @"expirationDate", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationDate { get; } + /// Certificate issue Date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate issue Date.", + SerializedName = @"issueDate", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? IssueDate { get; } + /// Certificate issuer. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate issuer.", + SerializedName = @"issuer", + PossibleTypes = new [] { typeof(string) })] + string Issuer { get; } + /// Certificate password. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Certificate password.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + string Password { get; set; } + /// Provisioning state of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the certificate.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? ProvisioningState { get; } + /// Public key hash. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Public key hash.", + SerializedName = @"publicKeyHash", + PossibleTypes = new [] { typeof(string) })] + string PublicKeyHash { get; } + /// Subject alternative names the certificate applies to. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Subject alternative names the certificate applies to.", + SerializedName = @"subjectAlternativeNames", + PossibleTypes = new [] { typeof(string) })] + string[] SubjectAlternativeName { get; } + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Subject name of the certificate.", + SerializedName = @"subjectName", + PossibleTypes = new [] { typeof(string) })] + string SubjectName { get; } + /// Certificate thumbprint. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate thumbprint.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string Thumbprint { get; } + /// Is the certificate valid?. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Is the certificate valid?.", + SerializedName = @"valid", + PossibleTypes = new [] { typeof(bool) })] + bool? Valid { get; } + /// PFX or PEM blob + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"PFX or PEM blob", + SerializedName = @"value", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] Value { get; set; } + + } + /// Certificate used for Custom Domain bindings of Container Apps in a Managed Environment + internal partial interface ICertificateInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal + { + /// Certificate expiration date. + global::System.DateTime? ExpirationDate { get; set; } + /// Certificate issue Date. + global::System.DateTime? IssueDate { get; set; } + /// Certificate issuer. + string Issuer { get; set; } + /// Certificate password. + string Password { get; set; } + /// Certificate resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties Property { get; set; } + /// Provisioning state of the certificate. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? ProvisioningState { get; set; } + /// Public key hash. + string PublicKeyHash { get; set; } + /// Subject alternative names the certificate applies to. + string[] SubjectAlternativeName { get; set; } + /// Subject name of the certificate. + string SubjectName { get; set; } + /// Certificate thumbprint. + string Thumbprint { get; set; } + /// Is the certificate valid?. + bool? Valid { get; set; } + /// PFX or PEM blob + byte[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.json.cs new file mode 100644 index 000000000000..f009839a1fab --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Certificate.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Certificate used for Custom Domain bindings of Container Apps in a Managed Environment + /// + public partial class Certificate + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Certificate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificateProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Certificate(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/CertificateCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.PowerShell.cs new file mode 100644 index 000000000000..a41e418f2eb3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Collection of Certificates. + [System.ComponentModel.TypeConverter(typeof(CertificateCollectionTypeConverter))] + public partial class CertificateCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 CertificateCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificateTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollectionInternal)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 CertificateCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificateTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollectionInternal)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.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CertificateCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CertificateCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of Certificates. + [System.ComponentModel.TypeConverter(typeof(CertificateCollectionTypeConverter))] + public partial interface ICertificateCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.TypeConverter.cs new file mode 100644 index 000000000000..69443bb4d654 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CertificateCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CertificateCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CertificateCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CertificateCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.cs new file mode 100644 index 000000000000..fd4ae7a0d89e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of Certificates. + public partial class CertificateCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollectionInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollectionInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate[] _value; + + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public CertificateCollection() + { + + } + } + /// Collection of Certificates. + public partial interface ICertificateCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to next page of resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate[] Value { get; set; } + + } + /// Collection of Certificates. + internal partial interface ICertificateCollectionInternal + + { + /// Link to next page of resources. + string NextLink { get; set; } + /// Collection of resources. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.json.cs new file mode 100644 index 000000000000..7be350097e25 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateCollection.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of Certificates. + public partial class CertificateCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal CertificateCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.ICertificate) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Certificate.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.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new CertificateCollection(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/CertificatePatch.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.PowerShell.cs new file mode 100644 index 000000000000..75a01542b1a3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// A certificate to update + [System.ComponentModel.TypeConverter(typeof(CertificatePatchTypeConverter))] + public partial class CertificatePatch + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 CertificatePatch(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificatePatchTagsTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal CertificatePatch(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificatePatchTagsTypeConverter.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.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CertificatePatch(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CertificatePatch(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A certificate to update + [System.ComponentModel.TypeConverter(typeof(CertificatePatchTypeConverter))] + public partial interface ICertificatePatch + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.TypeConverter.cs new file mode 100644 index 000000000000..1d5dd068a628 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CertificatePatchTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CertificatePatch.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CertificatePatch.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CertificatePatch.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.cs new file mode 100644 index 000000000000..1837022d6659 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// A certificate to update + public partial class CertificatePatch : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags _tag; + + /// Application-specific metadata in the form of key-value pairs. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificatePatchTags()); set => this._tag = value; } + + /// Creates an new instance. + public CertificatePatch() + { + + } + } + /// A certificate to update + public partial interface ICertificatePatch : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Application-specific metadata in the form of key-value pairs. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application-specific metadata in the form of key-value pairs.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags Tag { get; set; } + + } + /// A certificate to update + internal partial interface ICertificatePatchInternal + + { + /// Application-specific metadata in the form of key-value pairs. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.json.cs new file mode 100644 index 000000000000..88f919b347f1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatch.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// A certificate to update + public partial class CertificatePatch + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal CertificatePatch(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificatePatchTags.FromJson(__jsonTags) : Tag;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new CertificatePatch(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._tag.ToJson(null,serializationMode) : null, "tags" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.PowerShell.cs new file mode 100644 index 000000000000..817555f21867 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Application-specific metadata in the form of key-value pairs. + [System.ComponentModel.TypeConverter(typeof(CertificatePatchTagsTypeConverter))] + public partial class CertificatePatchTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 CertificatePatchTags(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 CertificatePatchTags(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.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CertificatePatchTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CertificatePatchTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Application-specific metadata in the form of key-value pairs. + [System.ComponentModel.TypeConverter(typeof(CertificatePatchTagsTypeConverter))] + public partial interface ICertificatePatchTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.TypeConverter.cs new file mode 100644 index 000000000000..ba4b1c606455 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CertificatePatchTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CertificatePatchTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CertificatePatchTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CertificatePatchTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.cs new file mode 100644 index 000000000000..80c814566f9f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.cs @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Application-specific metadata in the form of key-value pairs. + public partial class CertificatePatchTags : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTagsInternal + { + + /// Creates an new instance. + public CertificatePatchTags() + { + + } + } + /// Application-specific metadata in the form of key-value pairs. + public partial interface ICertificatePatchTags : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + + } + /// Application-specific metadata in the form of key-value pairs. + internal partial interface ICertificatePatchTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.dictionary.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.dictionary.cs new file mode 100644 index 000000000000..3b6ae67bd7e1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + public partial class CertificatePatchTags : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.CertificatePatchTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.json.cs new file mode 100644 index 000000000000..14ee70050c36 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificatePatchTags.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Application-specific metadata in the form of key-value pairs. + public partial class CertificatePatchTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal CertificatePatchTags(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new CertificatePatchTags(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.PowerShell.cs new file mode 100644 index 000000000000..e57c91c25a15 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.PowerShell.cs @@ -0,0 +1,226 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Certificate resource specific properties + [System.ComponentModel.TypeConverter(typeof(CertificatePropertiesTypeConverter))] + public partial class CertificateProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal CertificateProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState.CreateFrom); + } + if (content.Contains("Password")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Password, global::System.Convert.ToString); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("SubjectAlternativeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectAlternativeName = (string[]) content.GetValueForProperty("SubjectAlternativeName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectAlternativeName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Value = (byte[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Value, i => i); + } + if (content.Contains("Issuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer, global::System.Convert.ToString); + } + if (content.Contains("IssueDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssueDate = (global::System.DateTime?) content.GetValueForProperty("IssueDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssueDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate = (global::System.DateTime?) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("Valid")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Valid = (bool?) content.GetValueForProperty("Valid",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Valid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PublicKeyHash")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).PublicKeyHash = (string) content.GetValueForProperty("PublicKeyHash",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).PublicKeyHash, 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 + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState.CreateFrom); + } + if (content.Contains("Password")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Password, global::System.Convert.ToString); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("SubjectAlternativeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectAlternativeName = (string[]) content.GetValueForProperty("SubjectAlternativeName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectAlternativeName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Value = (byte[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Value, i => i); + } + if (content.Contains("Issuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer, global::System.Convert.ToString); + } + if (content.Contains("IssueDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssueDate = (global::System.DateTime?) content.GetValueForProperty("IssueDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssueDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate = (global::System.DateTime?) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("Valid")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Valid = (bool?) content.GetValueForProperty("Valid",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Valid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PublicKeyHash")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).PublicKeyHash = (string) content.GetValueForProperty("PublicKeyHash",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal)this).PublicKeyHash, 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.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CertificateProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CertificateProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Certificate resource specific properties + [System.ComponentModel.TypeConverter(typeof(CertificatePropertiesTypeConverter))] + public partial interface ICertificateProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.TypeConverter.cs new file mode 100644 index 000000000000..d8c8b98676ae --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CertificatePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CertificateProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CertificateProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CertificateProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.cs new file mode 100644 index 000000000000..bf09fa7920eb --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.cs @@ -0,0 +1,248 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Certificate resource specific properties + public partial class CertificateProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal + { + + /// Backing field for property. + private global::System.DateTime? _expirationDate; + + /// Certificate expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public global::System.DateTime? ExpirationDate { get => this._expirationDate; } + + /// Backing field for property. + private global::System.DateTime? _issueDate; + + /// Certificate issue Date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public global::System.DateTime? IssueDate { get => this._issueDate; } + + /// Backing field for property. + private string _issuer; + + /// Certificate issuer. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Issuer { get => this._issuer; } + + /// Internal Acessors for ExpirationDate + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal.ExpirationDate { get => this._expirationDate; set { {_expirationDate = value;} } } + + /// Internal Acessors for IssueDate + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal.IssueDate { get => this._issueDate; set { {_issueDate = value;} } } + + /// Internal Acessors for Issuer + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal.Issuer { get => this._issuer; set { {_issuer = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for PublicKeyHash + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal.PublicKeyHash { get => this._publicKeyHash; set { {_publicKeyHash = value;} } } + + /// Internal Acessors for SubjectAlternativeName + string[] Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal.SubjectAlternativeName { get => this._subjectAlternativeName; set { {_subjectAlternativeName = value;} } } + + /// Internal Acessors for SubjectName + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal.SubjectName { get => this._subjectName; set { {_subjectName = value;} } } + + /// Internal Acessors for Thumbprint + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal.Thumbprint { get => this._thumbprint; set { {_thumbprint = value;} } } + + /// Internal Acessors for Valid + bool? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePropertiesInternal.Valid { get => this._valid; set { {_valid = value;} } } + + /// Backing field for property. + private string _password; + + /// Certificate password. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Password { get => this._password; set => this._password = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? _provisioningState; + + /// Provisioning state of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _publicKeyHash; + + /// Public key hash. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string PublicKeyHash { get => this._publicKeyHash; } + + /// Backing field for property. + private string[] _subjectAlternativeName; + + /// Subject alternative names the certificate applies to. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] SubjectAlternativeName { get => this._subjectAlternativeName; } + + /// Backing field for property. + private string _subjectName; + + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string SubjectName { get => this._subjectName; } + + /// Backing field for property. + private string _thumbprint; + + /// Certificate thumbprint. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Thumbprint { get => this._thumbprint; } + + /// Backing field for property. + private bool? _valid; + + /// Is the certificate valid?. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Valid { get => this._valid; } + + /// Backing field for property. + private byte[] _value; + + /// PFX or PEM blob + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public byte[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public CertificateProperties() + { + + } + } + /// Certificate resource specific properties + public partial interface ICertificateProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Certificate expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate expiration date.", + SerializedName = @"expirationDate", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationDate { get; } + /// Certificate issue Date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate issue Date.", + SerializedName = @"issueDate", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? IssueDate { get; } + /// Certificate issuer. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate issuer.", + SerializedName = @"issuer", + PossibleTypes = new [] { typeof(string) })] + string Issuer { get; } + /// Certificate password. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Certificate password.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + string Password { get; set; } + /// Provisioning state of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the certificate.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? ProvisioningState { get; } + /// Public key hash. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Public key hash.", + SerializedName = @"publicKeyHash", + PossibleTypes = new [] { typeof(string) })] + string PublicKeyHash { get; } + /// Subject alternative names the certificate applies to. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Subject alternative names the certificate applies to.", + SerializedName = @"subjectAlternativeNames", + PossibleTypes = new [] { typeof(string) })] + string[] SubjectAlternativeName { get; } + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Subject name of the certificate.", + SerializedName = @"subjectName", + PossibleTypes = new [] { typeof(string) })] + string SubjectName { get; } + /// Certificate thumbprint. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate thumbprint.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string Thumbprint { get; } + /// Is the certificate valid?. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Is the certificate valid?.", + SerializedName = @"valid", + PossibleTypes = new [] { typeof(bool) })] + bool? Valid { get; } + /// PFX or PEM blob + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"PFX or PEM blob", + SerializedName = @"value", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] Value { get; set; } + + } + /// Certificate resource specific properties + internal partial interface ICertificatePropertiesInternal + + { + /// Certificate expiration date. + global::System.DateTime? ExpirationDate { get; set; } + /// Certificate issue Date. + global::System.DateTime? IssueDate { get; set; } + /// Certificate issuer. + string Issuer { get; set; } + /// Certificate password. + string Password { get; set; } + /// Provisioning state of the certificate. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? ProvisioningState { get; set; } + /// Public key hash. + string PublicKeyHash { get; set; } + /// Subject alternative names the certificate applies to. + string[] SubjectAlternativeName { get; set; } + /// Subject name of the certificate. + string SubjectName { get; set; } + /// Certificate thumbprint. + string Thumbprint { get; set; } + /// Is the certificate valid?. + bool? Valid { get; set; } + /// PFX or PEM blob + byte[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.json.cs new file mode 100644 index 000000000000..9db2ce103f6a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CertificateProperties.json.cs @@ -0,0 +1,163 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Certificate resource specific properties + 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.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal CertificateProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_password = If( json?.PropertyT("password"), out var __jsonPassword) ? (string)__jsonPassword : (string)Password;} + {_subjectName = If( json?.PropertyT("subjectName"), out var __jsonSubjectName) ? (string)__jsonSubjectName : (string)SubjectName;} + {_subjectAlternativeName = If( json?.PropertyT("subjectAlternativeNames"), out var __jsonSubjectAlternativeNames) ? If( __jsonSubjectAlternativeNames as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : SubjectAlternativeName;} + {_value = If( json?.PropertyT("value"), out var __r) ? System.Convert.FromBase64String( ((string)__r).Replace("_","/").Replace("-","+").PadRight( ((string)__r).Length + ((string)__r).Length * 3 % 4, '=') ) : null;} + {_issuer = If( json?.PropertyT("issuer"), out var __jsonIssuer) ? (string)__jsonIssuer : (string)Issuer;} + {_issueDate = If( json?.PropertyT("issueDate"), out var __jsonIssueDate) ? global::System.DateTime.TryParse((string)__jsonIssueDate, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonIssueDateValue) ? __jsonIssueDateValue : IssueDate : IssueDate;} + {_expirationDate = If( json?.PropertyT("expirationDate"), out var __jsonExpirationDate) ? global::System.DateTime.TryParse((string)__jsonExpirationDate, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonExpirationDateValue) ? __jsonExpirationDateValue : ExpirationDate : ExpirationDate;} + {_thumbprint = If( json?.PropertyT("thumbprint"), out var __jsonThumbprint) ? (string)__jsonThumbprint : (string)Thumbprint;} + {_valid = If( json?.PropertyT("valid"), out var __jsonValid) ? (bool?)__jsonValid : Valid;} + {_publicKeyHash = If( json?.PropertyT("publicKeyHash"), out var __jsonPublicKeyHash) ? (string)__jsonPublicKeyHash : (string)PublicKeyHash;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != (((object)this._password)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._password.ToString()) : null, "password" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._subjectName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._subjectName.ToString()) : null, "subjectName" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._subjectAlternativeName) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._subjectAlternativeName ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("subjectAlternativeNames",__w); + } + } + AddIf( null != this._value ? global::System.Convert.ToBase64String( this._value) : null ,(v)=> container.Add( "value",v) ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._issuer)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._issuer.ToString()) : null, "issuer" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._issueDate ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._issueDate?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "issueDate" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._expirationDate ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._expirationDate?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "expirationDate" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._thumbprint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._thumbprint.ToString()) : null, "thumbprint" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._valid ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._valid) : null, "valid" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._publicKeyHash)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._publicKeyHash.ToString()) : null, "publicKeyHash" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.PowerShell.cs new file mode 100644 index 000000000000..67c397e1493c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.PowerShell.cs @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The configuration settings of the app registration for providers that have client ids and client secrets + /// + [System.ComponentModel.TypeConverter(typeof(ClientRegistrationTypeConverter))] + public partial class ClientRegistration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ClientRegistration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)this).ClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)this).ClientSecretSettingName = (string) content.GetValueForProperty("ClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)this).ClientSecretSettingName, 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 ClientRegistration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)this).ClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)this).ClientSecretSettingName = (string) content.GetValueForProperty("ClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)this).ClientSecretSettingName, 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.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ClientRegistration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ClientRegistration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the app registration for providers that have client ids and client secrets + [System.ComponentModel.TypeConverter(typeof(ClientRegistrationTypeConverter))] + public partial interface IClientRegistration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.TypeConverter.cs new file mode 100644 index 000000000000..a091412264f1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ClientRegistrationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ClientRegistration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ClientRegistration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ClientRegistration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.cs new file mode 100644 index 000000000000..fdaffa4fe105 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.cs @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the app registration for providers that have client ids and client secrets + /// + public partial class ClientRegistration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal + { + + /// Backing field for property. + private string _clientId; + + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientId { get => this._clientId; set => this._clientId = value; } + + /// Backing field for property. + private string _clientSecretSettingName; + + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientSecretSettingName { get => this._clientSecretSettingName; set => this._clientSecretSettingName = value; } + + /// Creates an new instance. + public ClientRegistration() + { + + } + } + /// The configuration settings of the app registration for providers that have client ids and client secrets + public partial interface IClientRegistration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Client ID of the app used for login.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string ClientId { get; set; } + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the client secret.", + SerializedName = @"clientSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string ClientSecretSettingName { get; set; } + + } + /// The configuration settings of the app registration for providers that have client ids and client secrets + internal partial interface IClientRegistrationInternal + + { + /// The Client ID of the app used for login. + string ClientId { get; set; } + /// The app setting name that contains the client secret. + string ClientSecretSettingName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.json.cs new file mode 100644 index 000000000000..d41432607a7e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ClientRegistration.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the app registration for providers that have client ids and client secrets + /// + public partial class ClientRegistration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ClientRegistration(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_clientId = If( json?.PropertyT("clientId"), out var __jsonClientId) ? (string)__jsonClientId : (string)ClientId;} + {_clientSecretSettingName = If( json?.PropertyT("clientSecretSettingName"), out var __jsonClientSecretSettingName) ? (string)__jsonClientSecretSettingName : (string)ClientSecretSettingName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ClientRegistration(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._clientId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientId.ToString()) : null, "clientId" ,container.Add ); + AddIf( null != (((object)this._clientSecretSettingName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientSecretSettingName.ToString()) : null, "clientSecretSettingName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.PowerShell.cs new file mode 100644 index 000000000000..3f23b5f79293 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.PowerShell.cs @@ -0,0 +1,324 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// Non versioned Container App configuration properties that define the mutable settings of a Container app + /// + [System.ComponentModel.TypeConverter(typeof(ConfigurationTypeConverter))] + public partial class Configuration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 Configuration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Ingress")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Ingress = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress) content.GetValueForProperty("Ingress",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Ingress, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IngressTypeConverter.ConvertFrom); + } + if (content.Contains("Dapr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Dapr = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr) content.GetValueForProperty("Dapr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Dapr, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprTypeConverter.ConvertFrom); + } + if (content.Contains("Secret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Secret = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]) content.GetValueForProperty("Secret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Secret, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SecretTypeConverter.ConvertFrom)); + } + if (content.Contains("ActiveRevisionsMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).ActiveRevisionsMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode?) content.GetValueForProperty("ActiveRevisionsMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).ActiveRevisionsMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode.CreateFrom); + } + if (content.Contains("Registry")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Registry = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[]) content.GetValueForProperty("Registry",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Registry, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryCredentialsTypeConverter.ConvertFrom)); + } + if (content.Contains("MaxInactiveRevision")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).MaxInactiveRevision = (int?) content.GetValueForProperty("MaxInactiveRevision",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).MaxInactiveRevision, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressFqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressFqdn = (string) content.GetValueForProperty("IngressFqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressFqdn, global::System.Convert.ToString); + } + if (content.Contains("IngressTargetPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressTargetPort = (int?) content.GetValueForProperty("IngressTargetPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressTargetPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressExposedPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressExposedPort = (int?) content.GetValueForProperty("IngressExposedPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressExposedPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressTraffic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressTraffic = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[]) content.GetValueForProperty("IngressTraffic",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TrafficWeightTypeConverter.ConvertFrom)); + } + if (content.Contains("IngressCustomDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressCustomDomain = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[]) content.GetValueForProperty("IngressCustomDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressCustomDomain, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainTypeConverter.ConvertFrom)); + } + if (content.Contains("DaprAppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprAppId = (string) content.GetValueForProperty("DaprAppId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprAppId, global::System.Convert.ToString); + } + if (content.Contains("DaprAppProtocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprAppProtocol = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol?) content.GetValueForProperty("DaprAppProtocol",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprAppProtocol, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol.CreateFrom); + } + if (content.Contains("DaprAppPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprAppPort = (int?) content.GetValueForProperty("DaprAppPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprAppPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprLogLevel")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprLogLevel = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel?) content.GetValueForProperty("DaprLogLevel",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprLogLevel, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel.CreateFrom); + } + if (content.Contains("IngressExternal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressExternal = (bool?) content.GetValueForProperty("IngressExternal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressExternal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IngressTransport")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressTransport = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod?) content.GetValueForProperty("IngressTransport",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressTransport, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod.CreateFrom); + } + if (content.Contains("IngressAllowInsecure")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressAllowInsecure = (bool?) content.GetValueForProperty("IngressAllowInsecure",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressAllowInsecure, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IngressIPSecurityRestriction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressIPSecurityRestriction = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[]) content.GetValueForProperty("IngressIPSecurityRestriction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressIPSecurityRestriction, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IPSecurityRestrictionRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DaprEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprEnabled = (bool?) content.GetValueForProperty("DaprEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DaprHttpReadBufferSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprHttpReadBufferSize = (int?) content.GetValueForProperty("DaprHttpReadBufferSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprHttpReadBufferSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprHttpMaxRequestSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprHttpMaxRequestSize = (int?) content.GetValueForProperty("DaprHttpMaxRequestSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprHttpMaxRequestSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprEnableApiLogging")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprEnableApiLogging = (bool?) content.GetValueForProperty("DaprEnableApiLogging",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprEnableApiLogging, (__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 Configuration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Ingress")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Ingress = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress) content.GetValueForProperty("Ingress",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Ingress, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IngressTypeConverter.ConvertFrom); + } + if (content.Contains("Dapr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Dapr = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr) content.GetValueForProperty("Dapr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Dapr, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprTypeConverter.ConvertFrom); + } + if (content.Contains("Secret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Secret = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]) content.GetValueForProperty("Secret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Secret, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SecretTypeConverter.ConvertFrom)); + } + if (content.Contains("ActiveRevisionsMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).ActiveRevisionsMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode?) content.GetValueForProperty("ActiveRevisionsMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).ActiveRevisionsMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode.CreateFrom); + } + if (content.Contains("Registry")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Registry = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[]) content.GetValueForProperty("Registry",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).Registry, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryCredentialsTypeConverter.ConvertFrom)); + } + if (content.Contains("MaxInactiveRevision")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).MaxInactiveRevision = (int?) content.GetValueForProperty("MaxInactiveRevision",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).MaxInactiveRevision, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressFqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressFqdn = (string) content.GetValueForProperty("IngressFqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressFqdn, global::System.Convert.ToString); + } + if (content.Contains("IngressTargetPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressTargetPort = (int?) content.GetValueForProperty("IngressTargetPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressTargetPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressExposedPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressExposedPort = (int?) content.GetValueForProperty("IngressExposedPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressExposedPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressTraffic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressTraffic = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[]) content.GetValueForProperty("IngressTraffic",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TrafficWeightTypeConverter.ConvertFrom)); + } + if (content.Contains("IngressCustomDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressCustomDomain = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[]) content.GetValueForProperty("IngressCustomDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressCustomDomain, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainTypeConverter.ConvertFrom)); + } + if (content.Contains("DaprAppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprAppId = (string) content.GetValueForProperty("DaprAppId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprAppId, global::System.Convert.ToString); + } + if (content.Contains("DaprAppProtocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprAppProtocol = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol?) content.GetValueForProperty("DaprAppProtocol",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprAppProtocol, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol.CreateFrom); + } + if (content.Contains("DaprAppPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprAppPort = (int?) content.GetValueForProperty("DaprAppPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprAppPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprLogLevel")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprLogLevel = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel?) content.GetValueForProperty("DaprLogLevel",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprLogLevel, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel.CreateFrom); + } + if (content.Contains("IngressExternal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressExternal = (bool?) content.GetValueForProperty("IngressExternal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressExternal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IngressTransport")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressTransport = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod?) content.GetValueForProperty("IngressTransport",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressTransport, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod.CreateFrom); + } + if (content.Contains("IngressAllowInsecure")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressAllowInsecure = (bool?) content.GetValueForProperty("IngressAllowInsecure",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressAllowInsecure, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IngressIPSecurityRestriction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressIPSecurityRestriction = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[]) content.GetValueForProperty("IngressIPSecurityRestriction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).IngressIPSecurityRestriction, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IPSecurityRestrictionRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DaprEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprEnabled = (bool?) content.GetValueForProperty("DaprEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DaprHttpReadBufferSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprHttpReadBufferSize = (int?) content.GetValueForProperty("DaprHttpReadBufferSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprHttpReadBufferSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprHttpMaxRequestSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprHttpMaxRequestSize = (int?) content.GetValueForProperty("DaprHttpMaxRequestSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprHttpMaxRequestSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprEnableApiLogging")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprEnableApiLogging = (bool?) content.GetValueForProperty("DaprEnableApiLogging",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)this).DaprEnableApiLogging, (__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.ContainerAppsApi.Models.Api20221101Preview.IConfiguration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Configuration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Configuration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Non versioned Container App configuration properties that define the mutable settings of a Container app + [System.ComponentModel.TypeConverter(typeof(ConfigurationTypeConverter))] + public partial interface IConfiguration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.TypeConverter.cs new file mode 100644 index 000000000000..d648d28e32da --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigurationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Configuration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Configuration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Configuration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.cs new file mode 100644 index 000000000000..e163fcf409da --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.cs @@ -0,0 +1,424 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Non versioned Container App configuration properties that define the mutable settings of a Container app + /// + public partial class Configuration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode? _activeRevisionsMode; + + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app: + /// Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + /// Revision weights can not be used in this mode. If no value if provided, this is the default. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode? ActiveRevisionsMode { get => this._activeRevisionsMode; set => this._activeRevisionsMode = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr _dapr; + + /// Dapr configuration for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr Dapr { get => (this._dapr = this._dapr ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Dapr()); set => this._dapr = value; } + + /// Dapr application identifier + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DaprAppId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).AppId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).AppId = value ?? null; } + + /// Tells Dapr which port your application is listening on + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? DaprAppPort { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).AppPort; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).AppPort = value ?? default(int); } + + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol? DaprAppProtocol { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).AppProtocol; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).AppProtocol = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol)""); } + + /// Enables API logging for the Dapr sidecar + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? DaprEnableApiLogging { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).EnableApiLogging; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).EnableApiLogging = value ?? default(bool); } + + /// Boolean indicating if the Dapr side car is enabled + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? DaprEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).Enabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).Enabled = value ?? default(bool); } + + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? DaprHttpMaxRequestSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).HttpMaxRequestSize; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).HttpMaxRequestSize = value ?? default(int); } + + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? DaprHttpReadBufferSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).HttpReadBufferSize; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).HttpReadBufferSize = value ?? default(int); } + + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel? DaprLogLevel { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).LogLevel; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)Dapr).LogLevel = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress _ingress; + + /// Ingress configurations. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress Ingress { get => (this._ingress = this._ingress ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Ingress()); set => this._ingress = value; } + + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? IngressAllowInsecure { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).AllowInsecure; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).AllowInsecure = value ?? default(bool); } + + /// custom domain bindings for Container Apps' hostnames. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] IngressCustomDomain { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).CustomDomain; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).CustomDomain = value ?? null /* arrayOf */; } + + /// Exposed Port in containers for TCP traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? IngressExposedPort { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).ExposedPort; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).ExposedPort = value ?? default(int); } + + /// Bool indicating if app exposes an external http endpoint + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? IngressExternal { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).External; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).External = value ?? default(bool); } + + /// Hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string IngressFqdn { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).Fqdn; } + + /// Rules to restrict incoming IP address. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IngressIPSecurityRestriction { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).IPSecurityRestriction; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).IPSecurityRestriction = value ?? null /* arrayOf */; } + + /// Target Port in containers for traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? IngressTargetPort { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).TargetPort; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).TargetPort = value ?? default(int); } + + /// Traffic weights for app's revisions + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] IngressTraffic { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).Traffic; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).Traffic = value ?? null /* arrayOf */; } + + /// Ingress transport protocol + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod? IngressTransport { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).Transport; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).Transport = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod)""); } + + /// Backing field for property. + private int? _maxInactiveRevision; + + /// Optional. Max inactive revisions a Container App can have. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? MaxInactiveRevision { get => this._maxInactiveRevision; set => this._maxInactiveRevision = value; } + + /// Internal Acessors for Dapr + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal.Dapr { get => (this._dapr = this._dapr ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Dapr()); set { {_dapr = value;} } } + + /// Internal Acessors for Ingress + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal.Ingress { get => (this._ingress = this._ingress ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Ingress()); set { {_ingress = value;} } } + + /// Internal Acessors for IngressFqdn + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal.IngressFqdn { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).Fqdn; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)Ingress).Fqdn = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] _registry; + + /// + /// Collection of private container registry credentials for containers used by the Container app + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] Registry { get => this._registry; set => this._registry = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] _secret; + + /// Collection of secrets used by a Container app + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] Secret { get => this._secret; set => this._secret = value; } + + /// Creates an new instance. + public Configuration() + { + + } + } + /// Non versioned Container App configuration properties that define the mutable settings of a Container app + public partial interface IConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app: + /// Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + /// Revision weights can not be used in this mode. If no value if provided, this is the default. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ActiveRevisionsMode controls how active revisions are handled for the Container app: + Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. Revision weights can not be used in this mode. If no value if provided, this is the default.", + SerializedName = @"activeRevisionsMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode? ActiveRevisionsMode { get; set; } + /// Dapr application identifier + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dapr application identifier", + SerializedName = @"appId", + PossibleTypes = new [] { typeof(string) })] + string DaprAppId { get; set; } + /// Tells Dapr which port your application is listening on + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tells Dapr which port your application is listening on", + SerializedName = @"appPort", + PossibleTypes = new [] { typeof(int) })] + int? DaprAppPort { get; set; } + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http", + SerializedName = @"appProtocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol? DaprAppProtocol { get; set; } + /// Enables API logging for the Dapr sidecar + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enables API logging for the Dapr sidecar", + SerializedName = @"enableApiLogging", + PossibleTypes = new [] { typeof(bool) })] + bool? DaprEnableApiLogging { get; set; } + /// Boolean indicating if the Dapr side car is enabled + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean indicating if the Dapr side car is enabled", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? DaprEnabled { get; set; } + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is 4 MB.", + SerializedName = @"httpMaxRequestSize", + PossibleTypes = new [] { typeof(int) })] + int? DaprHttpMaxRequestSize { get; set; } + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB.", + SerializedName = @"httpReadBufferSize", + PossibleTypes = new [] { typeof(int) })] + int? DaprHttpReadBufferSize { get; set; } + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info.", + SerializedName = @"logLevel", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel? DaprLogLevel { get; set; } + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS connections", + SerializedName = @"allowInsecure", + PossibleTypes = new [] { typeof(bool) })] + bool? IngressAllowInsecure { get; set; } + /// custom domain bindings for Container Apps' hostnames. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"custom domain bindings for Container Apps' hostnames.", + SerializedName = @"customDomains", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] IngressCustomDomain { get; set; } + /// Exposed Port in containers for TCP traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Exposed Port in containers for TCP traffic from ingress", + SerializedName = @"exposedPort", + PossibleTypes = new [] { typeof(int) })] + int? IngressExposedPort { get; set; } + /// Bool indicating if app exposes an external http endpoint + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Bool indicating if app exposes an external http endpoint", + SerializedName = @"external", + PossibleTypes = new [] { typeof(bool) })] + bool? IngressExternal { get; set; } + /// Hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Hostname.", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + string IngressFqdn { get; } + /// Rules to restrict incoming IP address. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Rules to restrict incoming IP address.", + SerializedName = @"ipSecurityRestrictions", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IngressIPSecurityRestriction { get; set; } + /// Target Port in containers for traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Target Port in containers for traffic from ingress", + SerializedName = @"targetPort", + PossibleTypes = new [] { typeof(int) })] + int? IngressTargetPort { get; set; } + /// Traffic weights for app's revisions + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Traffic weights for app's revisions", + SerializedName = @"traffic", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] IngressTraffic { get; set; } + /// Ingress transport protocol + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress transport protocol", + SerializedName = @"transport", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod? IngressTransport { get; set; } + /// Optional. Max inactive revisions a Container App can have. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Max inactive revisions a Container App can have.", + SerializedName = @"maxInactiveRevisions", + PossibleTypes = new [] { typeof(int) })] + int? MaxInactiveRevision { get; set; } + /// + /// Collection of private container registry credentials for containers used by the Container app + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of private container registry credentials for containers used by the Container app", + SerializedName = @"registries", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] Registry { get; set; } + /// Collection of secrets used by a Container app + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of secrets used by a Container app", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] Secret { get; set; } + + } + /// Non versioned Container App configuration properties that define the mutable settings of a Container app + internal partial interface IConfigurationInternal + + { + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app: + /// Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + /// Revision weights can not be used in this mode. If no value if provided, this is the default. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode? ActiveRevisionsMode { get; set; } + /// Dapr configuration for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr Dapr { get; set; } + /// Dapr application identifier + string DaprAppId { get; set; } + /// Tells Dapr which port your application is listening on + int? DaprAppPort { get; set; } + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol? DaprAppProtocol { get; set; } + /// Enables API logging for the Dapr sidecar + bool? DaprEnableApiLogging { get; set; } + /// Boolean indicating if the Dapr side car is enabled + bool? DaprEnabled { get; set; } + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + int? DaprHttpMaxRequestSize { get; set; } + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + int? DaprHttpReadBufferSize { get; set; } + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel? DaprLogLevel { get; set; } + /// Ingress configurations. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress Ingress { get; set; } + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + bool? IngressAllowInsecure { get; set; } + /// custom domain bindings for Container Apps' hostnames. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] IngressCustomDomain { get; set; } + /// Exposed Port in containers for TCP traffic from ingress + int? IngressExposedPort { get; set; } + /// Bool indicating if app exposes an external http endpoint + bool? IngressExternal { get; set; } + /// Hostname. + string IngressFqdn { get; set; } + /// Rules to restrict incoming IP address. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IngressIPSecurityRestriction { get; set; } + /// Target Port in containers for traffic from ingress + int? IngressTargetPort { get; set; } + /// Traffic weights for app's revisions + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] IngressTraffic { get; set; } + /// Ingress transport protocol + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod? IngressTransport { get; set; } + /// Optional. Max inactive revisions a Container App can have. + int? MaxInactiveRevision { get; set; } + /// + /// Collection of private container registry credentials for containers used by the Container app + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] Registry { get; set; } + /// Collection of secrets used by a Container app + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] Secret { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.json.cs new file mode 100644 index 000000000000..c1949a3ed36a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Configuration.json.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Non versioned Container App configuration properties that define the mutable settings of a Container app + /// + public partial class Configuration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Configuration(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_ingress = If( json?.PropertyT("ingress"), out var __jsonIngress) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Ingress.FromJson(__jsonIngress) : Ingress;} + {_dapr = If( json?.PropertyT("dapr"), out var __jsonDapr) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Dapr.FromJson(__jsonDapr) : Dapr;} + {_secret = If( json?.PropertyT("secrets"), out var __jsonSecrets) ? If( __jsonSecrets as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.ISecret) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Secret.FromJson(__u) )) ))() : null : Secret;} + {_activeRevisionsMode = If( json?.PropertyT("activeRevisionsMode"), out var __jsonActiveRevisionsMode) ? (string)__jsonActiveRevisionsMode : (string)ActiveRevisionsMode;} + {_registry = If( json?.PropertyT("registries"), out var __jsonRegistries) ? If( __jsonRegistries as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryCredentials.FromJson(__p) )) ))() : null : Registry;} + {_maxInactiveRevision = If( json?.PropertyT("maxInactiveRevisions"), out var __jsonMaxInactiveRevisions) ? (int?)__jsonMaxInactiveRevisions : MaxInactiveRevision;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Configuration(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._ingress ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._ingress.ToJson(null,serializationMode) : null, "ingress" ,container.Add ); + AddIf( null != this._dapr ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._dapr.ToJson(null,serializationMode) : null, "dapr" ,container.Add ); + if (null != this._secret) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._secret ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("secrets",__w); + } + AddIf( null != (((object)this._activeRevisionsMode)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._activeRevisionsMode.ToString()) : null, "activeRevisionsMode" ,container.Add ); + if (null != this._registry) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._registry ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("registries",__r); + } + AddIf( null != this._maxInactiveRevision ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._maxInactiveRevision) : null, "maxInactiveRevisions" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.PowerShell.cs new file mode 100644 index 000000000000..254ab2d2ff10 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.PowerShell.cs @@ -0,0 +1,372 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// An environment for Kubernetes cluster specialized for web workloads by Azure App Service + /// + [System.ComponentModel.TypeConverter(typeof(ConnectedEnvironmentTypeConverter))] + public partial class ConnectedEnvironment + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ConnectedEnvironment(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ExtendedLocation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ExtendedLocation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation) content.GetValueForProperty("ExtendedLocation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ExtendedLocation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ExtendedLocationTypeConverter.ConvertFrom); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("ExtendedLocationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ExtendedLocationName = (string) content.GetValueForProperty("ExtendedLocationName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ExtendedLocationName, global::System.Convert.ToString); + } + if (content.Contains("ExtendedLocationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ExtendedLocationType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes?) content.GetValueForProperty("ExtendedLocationType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ExtendedLocationType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes.CreateFrom); + } + if (content.Contains("CustomDomainConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration) content.GetValueForProperty("CustomDomainConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState.CreateFrom); + } + if (content.Contains("DeploymentError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).DeploymentError = (string) content.GetValueForProperty("DeploymentError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).DeploymentError, global::System.Convert.ToString); + } + if (content.Contains("DefaultDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).DefaultDomain = (string) content.GetValueForProperty("DefaultDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).DefaultDomain, global::System.Convert.ToString); + } + if (content.Contains("StaticIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).StaticIP = (string) content.GetValueForProperty("StaticIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).StaticIP, global::System.Convert.ToString); + } + if (content.Contains("DaprAiConnectionString")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).DaprAiConnectionString = (string) content.GetValueForProperty("DaprAiConnectionString",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).DaprAiConnectionString, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationDnsSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationDnsSuffix = (string) content.GetValueForProperty("CustomDomainConfigurationDnsSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationDnsSuffix, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCertificateValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationCertificateValue = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificateValue",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationCertificateValue, i => i); + } + if (content.Contains("CustomDomainConfigurationCertificatePassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationCertificatePassword = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificatePassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationCertificatePassword, i => i); + } + if (content.Contains("CustomDomainConfigurationExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationExpirationDate = (global::System.DateTime?) content.GetValueForProperty("CustomDomainConfigurationExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationExpirationDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("CustomDomainConfigurationThumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationThumbprint = (string) content.GetValueForProperty("CustomDomainConfigurationThumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationThumbprint, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationSubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationSubjectName = (string) content.GetValueForProperty("CustomDomainConfigurationSubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationSubjectName, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCustomDomainVerificationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationCustomDomainVerificationId = (string) content.GetValueForProperty("CustomDomainConfigurationCustomDomainVerificationId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationCustomDomainVerificationId, 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 ConnectedEnvironment(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ExtendedLocation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ExtendedLocation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation) content.GetValueForProperty("ExtendedLocation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ExtendedLocation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ExtendedLocationTypeConverter.ConvertFrom); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("ExtendedLocationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ExtendedLocationName = (string) content.GetValueForProperty("ExtendedLocationName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ExtendedLocationName, global::System.Convert.ToString); + } + if (content.Contains("ExtendedLocationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ExtendedLocationType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes?) content.GetValueForProperty("ExtendedLocationType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ExtendedLocationType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes.CreateFrom); + } + if (content.Contains("CustomDomainConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration) content.GetValueForProperty("CustomDomainConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState.CreateFrom); + } + if (content.Contains("DeploymentError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).DeploymentError = (string) content.GetValueForProperty("DeploymentError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).DeploymentError, global::System.Convert.ToString); + } + if (content.Contains("DefaultDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).DefaultDomain = (string) content.GetValueForProperty("DefaultDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).DefaultDomain, global::System.Convert.ToString); + } + if (content.Contains("StaticIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).StaticIP = (string) content.GetValueForProperty("StaticIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).StaticIP, global::System.Convert.ToString); + } + if (content.Contains("DaprAiConnectionString")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).DaprAiConnectionString = (string) content.GetValueForProperty("DaprAiConnectionString",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).DaprAiConnectionString, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationDnsSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationDnsSuffix = (string) content.GetValueForProperty("CustomDomainConfigurationDnsSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationDnsSuffix, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCertificateValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationCertificateValue = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificateValue",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationCertificateValue, i => i); + } + if (content.Contains("CustomDomainConfigurationCertificatePassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationCertificatePassword = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificatePassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationCertificatePassword, i => i); + } + if (content.Contains("CustomDomainConfigurationExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationExpirationDate = (global::System.DateTime?) content.GetValueForProperty("CustomDomainConfigurationExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationExpirationDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("CustomDomainConfigurationThumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationThumbprint = (string) content.GetValueForProperty("CustomDomainConfigurationThumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationThumbprint, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationSubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationSubjectName = (string) content.GetValueForProperty("CustomDomainConfigurationSubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationSubjectName, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCustomDomainVerificationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationCustomDomainVerificationId = (string) content.GetValueForProperty("CustomDomainConfigurationCustomDomainVerificationId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal)this).CustomDomainConfigurationCustomDomainVerificationId, 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.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConnectedEnvironment(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConnectedEnvironment(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// An environment for Kubernetes cluster specialized for web workloads by Azure App Service + [System.ComponentModel.TypeConverter(typeof(ConnectedEnvironmentTypeConverter))] + public partial interface IConnectedEnvironment + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.TypeConverter.cs new file mode 100644 index 000000000000..e2055a3b5180 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConnectedEnvironmentTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConnectedEnvironment.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConnectedEnvironment.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConnectedEnvironment.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.cs new file mode 100644 index 000000000000..a2e1f49309d0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.cs @@ -0,0 +1,373 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// An environment for Kubernetes cluster specialized for web workloads by Azure App Service + /// + public partial class ConnectedEnvironment : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource(); + + /// Certificate password + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public byte[] CustomDomainConfigurationCertificatePassword { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationCertificatePassword; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationCertificatePassword = value ?? null /* byte array */; } + + /// PFX or PEM blob + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public byte[] CustomDomainConfigurationCertificateValue { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationCertificateValue; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationCertificateValue = value ?? null /* byte array */; } + + /// Id used to verify domain name ownership + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationCustomDomainVerificationId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationCustomDomainVerificationId; } + + /// Dns suffix for the environment domain + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationDnsSuffix { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationDnsSuffix; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationDnsSuffix = value ?? null; } + + /// Certificate expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public global::System.DateTime? CustomDomainConfigurationExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationExpirationDate; } + + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationSubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationSubjectName; } + + /// Certificate thumbprint. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationThumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationThumbprint; } + + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DaprAiConnectionString { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).DaprAiConnectionString; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).DaprAiConnectionString = value ?? null; } + + /// Default Domain Name for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DefaultDomain { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).DefaultDomain; } + + /// Any errors that occurred during deployment or deployment validation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DeploymentError { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).DeploymentError; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation _extendedLocation; + + /// The complex type of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation ExtendedLocation { get => (this._extendedLocation = this._extendedLocation ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ExtendedLocation()); set => this._extendedLocation = value; } + + /// The name of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ExtendedLocationName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)ExtendedLocation).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)ExtendedLocation).Name = value ?? null; } + + /// The type of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes? ExtendedLocationType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)ExtendedLocation).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)ExtendedLocation).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes)""); } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id; } + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// Internal Acessors for CustomDomainConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal.CustomDomainConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfiguration = value; } + + /// Internal Acessors for CustomDomainConfigurationCustomDomainVerificationId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal.CustomDomainConfigurationCustomDomainVerificationId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationCustomDomainVerificationId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationCustomDomainVerificationId = value; } + + /// Internal Acessors for CustomDomainConfigurationExpirationDate + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal.CustomDomainConfigurationExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationExpirationDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationExpirationDate = value; } + + /// Internal Acessors for CustomDomainConfigurationSubjectName + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal.CustomDomainConfigurationSubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationSubjectName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationSubjectName = value; } + + /// Internal Acessors for CustomDomainConfigurationThumbprint + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal.CustomDomainConfigurationThumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationThumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationThumbprint = value; } + + /// Internal Acessors for DefaultDomain + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal.DefaultDomain { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).DefaultDomain; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).DefaultDomain = value; } + + /// Internal Acessors for DeploymentError + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal.DeploymentError { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).DeploymentError; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).DeploymentError = value; } + + /// Internal Acessors for ExtendedLocation + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal.ExtendedLocation { get => (this._extendedLocation = this._extendedLocation ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ExtendedLocation()); set { {_extendedLocation = value;} } } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties _property; + + /// ConnectedEnvironment resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentProperties()); set => this._property = value; } + + /// Provisioning state of the Kubernetes Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).ProvisioningState; } + + /// Static IP of the connectedEnvironment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string StaticIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).StaticIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)Property).StaticIP = value ?? null; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type; } + + /// Creates an new instance. + public ConnectedEnvironment() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// An environment for Kubernetes cluster specialized for web workloads by Azure App Service + public partial interface IConnectedEnvironment : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource + { + /// Certificate password + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Certificate password", + SerializedName = @"certificatePassword", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] CustomDomainConfigurationCertificatePassword { get; set; } + /// PFX or PEM blob + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"PFX or PEM blob", + SerializedName = @"certificateValue", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] CustomDomainConfigurationCertificateValue { get; set; } + /// Id used to verify domain name ownership + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Id used to verify domain name ownership", + SerializedName = @"customDomainVerificationId", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationCustomDomainVerificationId { get; } + /// Dns suffix for the environment domain + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dns suffix for the environment domain", + SerializedName = @"dnsSuffix", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationDnsSuffix { get; set; } + /// Certificate expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate expiration date.", + SerializedName = @"expirationDate", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CustomDomainConfigurationExpirationDate { get; } + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Subject name of the certificate.", + SerializedName = @"subjectName", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationSubjectName { get; } + /// Certificate thumbprint. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate thumbprint.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationThumbprint { get; } + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application Insights connection string used by Dapr to export Service to Service communication telemetry", + SerializedName = @"daprAIConnectionString", + PossibleTypes = new [] { typeof(string) })] + string DaprAiConnectionString { get; set; } + /// Default Domain Name for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Default Domain Name for the cluster", + SerializedName = @"defaultDomain", + PossibleTypes = new [] { typeof(string) })] + string DefaultDomain { get; } + /// Any errors that occurred during deployment or deployment validation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Any errors that occurred during deployment or deployment validation", + SerializedName = @"deploymentErrors", + PossibleTypes = new [] { typeof(string) })] + string DeploymentError { get; } + /// The name of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the extended location.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string ExtendedLocationName { get; set; } + /// The type of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the extended location.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes? ExtendedLocationType { get; set; } + /// Provisioning state of the Kubernetes Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Kubernetes Environment.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState? ProvisioningState { get; } + /// Static IP of the connectedEnvironment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Static IP of the connectedEnvironment", + SerializedName = @"staticIp", + PossibleTypes = new [] { typeof(string) })] + string StaticIP { get; set; } + + } + /// An environment for Kubernetes cluster specialized for web workloads by Azure App Service + internal partial interface IConnectedEnvironmentInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal + { + /// Custom domain configuration for the environment + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration CustomDomainConfiguration { get; set; } + /// Certificate password + byte[] CustomDomainConfigurationCertificatePassword { get; set; } + /// PFX or PEM blob + byte[] CustomDomainConfigurationCertificateValue { get; set; } + /// Id used to verify domain name ownership + string CustomDomainConfigurationCustomDomainVerificationId { get; set; } + /// Dns suffix for the environment domain + string CustomDomainConfigurationDnsSuffix { get; set; } + /// Certificate expiration date. + global::System.DateTime? CustomDomainConfigurationExpirationDate { get; set; } + /// Subject name of the certificate. + string CustomDomainConfigurationSubjectName { get; set; } + /// Certificate thumbprint. + string CustomDomainConfigurationThumbprint { get; set; } + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + string DaprAiConnectionString { get; set; } + /// Default Domain Name for the cluster + string DefaultDomain { get; set; } + /// Any errors that occurred during deployment or deployment validation + string DeploymentError { get; set; } + /// The complex type of the extended location. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation ExtendedLocation { get; set; } + /// The name of the extended location. + string ExtendedLocationName { get; set; } + /// The type of the extended location. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes? ExtendedLocationType { get; set; } + /// ConnectedEnvironment resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties Property { get; set; } + /// Provisioning state of the Kubernetes Environment. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState? ProvisioningState { get; set; } + /// Static IP of the connectedEnvironment + string StaticIP { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.json.cs new file mode 100644 index 000000000000..d975a57de32a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironment.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// An environment for Kubernetes cluster specialized for web workloads by Azure App Service + /// + public partial class ConnectedEnvironment + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ConnectedEnvironment(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource(json); + {_extendedLocation = If( json?.PropertyT("extendedLocation"), out var __jsonExtendedLocation) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ExtendedLocation.FromJson(__jsonExtendedLocation) : ExtendedLocation;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ConnectedEnvironment(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __trackedResource?.ToJson(container, serializationMode); + AddIf( null != this._extendedLocation ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._extendedLocation.ToJson(null,serializationMode) : null, "extendedLocation" ,container.Add ); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.PowerShell.cs new file mode 100644 index 000000000000..1e7f303dcab6 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Collection of connectedEnvironments + [System.ComponentModel.TypeConverter(typeof(ConnectedEnvironmentCollectionTypeConverter))] + public partial class ConnectedEnvironmentCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ConnectedEnvironmentCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollectionInternal)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 ConnectedEnvironmentCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollectionInternal)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.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConnectedEnvironmentCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConnectedEnvironmentCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of connectedEnvironments + [System.ComponentModel.TypeConverter(typeof(ConnectedEnvironmentCollectionTypeConverter))] + public partial interface IConnectedEnvironmentCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.TypeConverter.cs new file mode 100644 index 000000000000..b1d8f18f9915 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConnectedEnvironmentCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConnectedEnvironmentCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConnectedEnvironmentCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConnectedEnvironmentCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.cs new file mode 100644 index 000000000000..8dbcae663cba --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of connectedEnvironments + public partial class ConnectedEnvironmentCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollectionInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollectionInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment[] _value; + + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ConnectedEnvironmentCollection() + { + + } + } + /// Collection of connectedEnvironments + public partial interface IConnectedEnvironmentCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to next page of resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment[] Value { get; set; } + + } + /// Collection of connectedEnvironments + internal partial interface IConnectedEnvironmentCollectionInternal + + { + /// Link to next page of resources. + string NextLink { get; set; } + /// Collection of resources. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.json.cs new file mode 100644 index 000000000000..5ca1df9539a7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentCollection.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of connectedEnvironments + public partial class ConnectedEnvironmentCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ConnectedEnvironmentCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironment.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.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ConnectedEnvironmentCollection(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.PowerShell.cs new file mode 100644 index 000000000000..f0cf20463cee --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.PowerShell.cs @@ -0,0 +1,242 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// ConnectedEnvironment resource specific properties + [System.ComponentModel.TypeConverter(typeof(ConnectedEnvironmentPropertiesTypeConverter))] + public partial class ConnectedEnvironmentProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ConnectedEnvironmentProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CustomDomainConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration) content.GetValueForProperty("CustomDomainConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState.CreateFrom); + } + if (content.Contains("DeploymentError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).DeploymentError = (string) content.GetValueForProperty("DeploymentError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).DeploymentError, global::System.Convert.ToString); + } + if (content.Contains("DefaultDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).DefaultDomain = (string) content.GetValueForProperty("DefaultDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).DefaultDomain, global::System.Convert.ToString); + } + if (content.Contains("StaticIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).StaticIP = (string) content.GetValueForProperty("StaticIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).StaticIP, global::System.Convert.ToString); + } + if (content.Contains("DaprAiConnectionString")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).DaprAiConnectionString = (string) content.GetValueForProperty("DaprAiConnectionString",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).DaprAiConnectionString, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationDnsSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationDnsSuffix = (string) content.GetValueForProperty("CustomDomainConfigurationDnsSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationDnsSuffix, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCertificateValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificateValue = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificateValue",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificateValue, i => i); + } + if (content.Contains("CustomDomainConfigurationCertificatePassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificatePassword = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificatePassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificatePassword, i => i); + } + if (content.Contains("CustomDomainConfigurationExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationExpirationDate = (global::System.DateTime?) content.GetValueForProperty("CustomDomainConfigurationExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationExpirationDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("CustomDomainConfigurationThumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationThumbprint = (string) content.GetValueForProperty("CustomDomainConfigurationThumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationThumbprint, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationSubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationSubjectName = (string) content.GetValueForProperty("CustomDomainConfigurationSubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationSubjectName, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCustomDomainVerificationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCustomDomainVerificationId = (string) content.GetValueForProperty("CustomDomainConfigurationCustomDomainVerificationId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCustomDomainVerificationId, 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 ConnectedEnvironmentProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CustomDomainConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration) content.GetValueForProperty("CustomDomainConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState.CreateFrom); + } + if (content.Contains("DeploymentError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).DeploymentError = (string) content.GetValueForProperty("DeploymentError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).DeploymentError, global::System.Convert.ToString); + } + if (content.Contains("DefaultDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).DefaultDomain = (string) content.GetValueForProperty("DefaultDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).DefaultDomain, global::System.Convert.ToString); + } + if (content.Contains("StaticIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).StaticIP = (string) content.GetValueForProperty("StaticIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).StaticIP, global::System.Convert.ToString); + } + if (content.Contains("DaprAiConnectionString")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).DaprAiConnectionString = (string) content.GetValueForProperty("DaprAiConnectionString",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).DaprAiConnectionString, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationDnsSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationDnsSuffix = (string) content.GetValueForProperty("CustomDomainConfigurationDnsSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationDnsSuffix, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCertificateValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificateValue = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificateValue",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificateValue, i => i); + } + if (content.Contains("CustomDomainConfigurationCertificatePassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificatePassword = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificatePassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificatePassword, i => i); + } + if (content.Contains("CustomDomainConfigurationExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationExpirationDate = (global::System.DateTime?) content.GetValueForProperty("CustomDomainConfigurationExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationExpirationDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("CustomDomainConfigurationThumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationThumbprint = (string) content.GetValueForProperty("CustomDomainConfigurationThumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationThumbprint, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationSubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationSubjectName = (string) content.GetValueForProperty("CustomDomainConfigurationSubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationSubjectName, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCustomDomainVerificationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCustomDomainVerificationId = (string) content.GetValueForProperty("CustomDomainConfigurationCustomDomainVerificationId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCustomDomainVerificationId, 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.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConnectedEnvironmentProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConnectedEnvironmentProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// ConnectedEnvironment resource specific properties + [System.ComponentModel.TypeConverter(typeof(ConnectedEnvironmentPropertiesTypeConverter))] + public partial interface IConnectedEnvironmentProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.TypeConverter.cs new file mode 100644 index 000000000000..205ed4267149 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConnectedEnvironmentPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConnectedEnvironmentProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConnectedEnvironmentProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConnectedEnvironmentProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.cs new file mode 100644 index 000000000000..8ed59ac0e766 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.cs @@ -0,0 +1,256 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// ConnectedEnvironment resource specific properties + public partial class ConnectedEnvironmentProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration _customDomainConfiguration; + + /// Custom domain configuration for the environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration CustomDomainConfiguration { get => (this._customDomainConfiguration = this._customDomainConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfiguration()); set => this._customDomainConfiguration = value; } + + /// Certificate password + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public byte[] CustomDomainConfigurationCertificatePassword { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).CertificatePassword; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).CertificatePassword = value ?? null /* byte array */; } + + /// PFX or PEM blob + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public byte[] CustomDomainConfigurationCertificateValue { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).CertificateValue; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).CertificateValue = value ?? null /* byte array */; } + + /// Id used to verify domain name ownership + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationCustomDomainVerificationId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).CustomDomainVerificationId; } + + /// Dns suffix for the environment domain + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationDnsSuffix { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).DnsSuffix; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).DnsSuffix = value ?? null; } + + /// Certificate expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public global::System.DateTime? CustomDomainConfigurationExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).ExpirationDate; } + + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationSubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).SubjectName; } + + /// Certificate thumbprint. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationThumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).Thumbprint; } + + /// Backing field for property. + private string _daprAiConnectionString; + + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string DaprAiConnectionString { get => this._daprAiConnectionString; set => this._daprAiConnectionString = value; } + + /// Backing field for property. + private string _defaultDomain; + + /// Default Domain Name for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string DefaultDomain { get => this._defaultDomain; } + + /// Backing field for property. + private string _deploymentError; + + /// Any errors that occurred during deployment or deployment validation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string DeploymentError { get => this._deploymentError; } + + /// Internal Acessors for CustomDomainConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal.CustomDomainConfiguration { get => (this._customDomainConfiguration = this._customDomainConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfiguration()); set { {_customDomainConfiguration = value;} } } + + /// Internal Acessors for CustomDomainConfigurationCustomDomainVerificationId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal.CustomDomainConfigurationCustomDomainVerificationId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).CustomDomainVerificationId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).CustomDomainVerificationId = value; } + + /// Internal Acessors for CustomDomainConfigurationExpirationDate + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal.CustomDomainConfigurationExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).ExpirationDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).ExpirationDate = value; } + + /// Internal Acessors for CustomDomainConfigurationSubjectName + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal.CustomDomainConfigurationSubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).SubjectName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).SubjectName = value; } + + /// Internal Acessors for CustomDomainConfigurationThumbprint + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal.CustomDomainConfigurationThumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).Thumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).Thumbprint = value; } + + /// Internal Acessors for DefaultDomain + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal.DefaultDomain { get => this._defaultDomain; set { {_defaultDomain = value;} } } + + /// Internal Acessors for DeploymentError + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal.DeploymentError { get => this._deploymentError; set { {_deploymentError = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState? _provisioningState; + + /// Provisioning state of the Kubernetes Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _staticIP; + + /// Static IP of the connectedEnvironment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string StaticIP { get => this._staticIP; set => this._staticIP = value; } + + /// Creates an new instance. + public ConnectedEnvironmentProperties() + { + + } + } + /// ConnectedEnvironment resource specific properties + public partial interface IConnectedEnvironmentProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Certificate password + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Certificate password", + SerializedName = @"certificatePassword", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] CustomDomainConfigurationCertificatePassword { get; set; } + /// PFX or PEM blob + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"PFX or PEM blob", + SerializedName = @"certificateValue", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] CustomDomainConfigurationCertificateValue { get; set; } + /// Id used to verify domain name ownership + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Id used to verify domain name ownership", + SerializedName = @"customDomainVerificationId", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationCustomDomainVerificationId { get; } + /// Dns suffix for the environment domain + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dns suffix for the environment domain", + SerializedName = @"dnsSuffix", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationDnsSuffix { get; set; } + /// Certificate expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate expiration date.", + SerializedName = @"expirationDate", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CustomDomainConfigurationExpirationDate { get; } + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Subject name of the certificate.", + SerializedName = @"subjectName", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationSubjectName { get; } + /// Certificate thumbprint. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate thumbprint.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationThumbprint { get; } + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application Insights connection string used by Dapr to export Service to Service communication telemetry", + SerializedName = @"daprAIConnectionString", + PossibleTypes = new [] { typeof(string) })] + string DaprAiConnectionString { get; set; } + /// Default Domain Name for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Default Domain Name for the cluster", + SerializedName = @"defaultDomain", + PossibleTypes = new [] { typeof(string) })] + string DefaultDomain { get; } + /// Any errors that occurred during deployment or deployment validation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Any errors that occurred during deployment or deployment validation", + SerializedName = @"deploymentErrors", + PossibleTypes = new [] { typeof(string) })] + string DeploymentError { get; } + /// Provisioning state of the Kubernetes Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Kubernetes Environment.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState? ProvisioningState { get; } + /// Static IP of the connectedEnvironment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Static IP of the connectedEnvironment", + SerializedName = @"staticIp", + PossibleTypes = new [] { typeof(string) })] + string StaticIP { get; set; } + + } + /// ConnectedEnvironment resource specific properties + internal partial interface IConnectedEnvironmentPropertiesInternal + + { + /// Custom domain configuration for the environment + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration CustomDomainConfiguration { get; set; } + /// Certificate password + byte[] CustomDomainConfigurationCertificatePassword { get; set; } + /// PFX or PEM blob + byte[] CustomDomainConfigurationCertificateValue { get; set; } + /// Id used to verify domain name ownership + string CustomDomainConfigurationCustomDomainVerificationId { get; set; } + /// Dns suffix for the environment domain + string CustomDomainConfigurationDnsSuffix { get; set; } + /// Certificate expiration date. + global::System.DateTime? CustomDomainConfigurationExpirationDate { get; set; } + /// Subject name of the certificate. + string CustomDomainConfigurationSubjectName { get; set; } + /// Certificate thumbprint. + string CustomDomainConfigurationThumbprint { get; set; } + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + string DaprAiConnectionString { get; set; } + /// Default Domain Name for the cluster + string DefaultDomain { get; set; } + /// Any errors that occurred during deployment or deployment validation + string DeploymentError { get; set; } + /// Provisioning state of the Kubernetes Environment. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState? ProvisioningState { get; set; } + /// Static IP of the connectedEnvironment + string StaticIP { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.json.cs new file mode 100644 index 000000000000..4d30ae100332 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentProperties.json.cs @@ -0,0 +1,127 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// ConnectedEnvironment resource specific properties + public partial class ConnectedEnvironmentProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ConnectedEnvironmentProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_customDomainConfiguration = If( json?.PropertyT("customDomainConfiguration"), out var __jsonCustomDomainConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfiguration.FromJson(__jsonCustomDomainConfiguration) : CustomDomainConfiguration;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_deploymentError = If( json?.PropertyT("deploymentErrors"), out var __jsonDeploymentErrors) ? (string)__jsonDeploymentErrors : (string)DeploymentError;} + {_defaultDomain = If( json?.PropertyT("defaultDomain"), out var __jsonDefaultDomain) ? (string)__jsonDefaultDomain : (string)DefaultDomain;} + {_staticIP = If( json?.PropertyT("staticIp"), out var __jsonStaticIP) ? (string)__jsonStaticIP : (string)StaticIP;} + {_daprAiConnectionString = If( json?.PropertyT("daprAIConnectionString"), out var __jsonDaprAiConnectionString) ? (string)__jsonDaprAiConnectionString : (string)DaprAiConnectionString;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ConnectedEnvironmentProperties(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._customDomainConfiguration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._customDomainConfiguration.ToJson(null,serializationMode) : null, "customDomainConfiguration" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._deploymentError)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._deploymentError.ToString()) : null, "deploymentErrors" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._defaultDomain)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._defaultDomain.ToString()) : null, "defaultDomain" ,container.Add ); + } + AddIf( null != (((object)this._staticIP)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._staticIP.ToString()) : null, "staticIp" ,container.Add ); + AddIf( null != (((object)this._daprAiConnectionString)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._daprAiConnectionString.ToString()) : null, "daprAIConnectionString" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.PowerShell.cs new file mode 100644 index 000000000000..a26068a2398f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.PowerShell.cs @@ -0,0 +1,266 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Storage resource for connectedEnvironment. + [System.ComponentModel.TypeConverter(typeof(ConnectedEnvironmentStorageTypeConverter))] + public partial class ConnectedEnvironmentStorage + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ConnectedEnvironmentStorage(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentStoragePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("AzureFile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFile = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties) content.GetValueForProperty("AzureFile",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFile, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFilePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("AzureFileAccessMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileAccessMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode?) content.GetValueForProperty("AzureFileAccessMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileAccessMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode.CreateFrom); + } + if (content.Contains("AzureFileAccountName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileAccountName = (string) content.GetValueForProperty("AzureFileAccountName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileAccountName, global::System.Convert.ToString); + } + if (content.Contains("AzureFileAccountKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileAccountKey = (string) content.GetValueForProperty("AzureFileAccountKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileAccountKey, global::System.Convert.ToString); + } + if (content.Contains("AzureFileShareName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileShareName = (string) content.GetValueForProperty("AzureFileShareName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileShareName, 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 ConnectedEnvironmentStorage(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentStoragePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("AzureFile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFile = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties) content.GetValueForProperty("AzureFile",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFile, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFilePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("AzureFileAccessMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileAccessMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode?) content.GetValueForProperty("AzureFileAccessMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileAccessMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode.CreateFrom); + } + if (content.Contains("AzureFileAccountName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileAccountName = (string) content.GetValueForProperty("AzureFileAccountName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileAccountName, global::System.Convert.ToString); + } + if (content.Contains("AzureFileAccountKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileAccountKey = (string) content.GetValueForProperty("AzureFileAccountKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileAccountKey, global::System.Convert.ToString); + } + if (content.Contains("AzureFileShareName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileShareName = (string) content.GetValueForProperty("AzureFileShareName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal)this).AzureFileShareName, 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.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConnectedEnvironmentStorage(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConnectedEnvironmentStorage(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Storage resource for connectedEnvironment. + [System.ComponentModel.TypeConverter(typeof(ConnectedEnvironmentStorageTypeConverter))] + public partial interface IConnectedEnvironmentStorage + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.TypeConverter.cs new file mode 100644 index 000000000000..7944b47737aa --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConnectedEnvironmentStorageTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConnectedEnvironmentStorage.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConnectedEnvironmentStorage.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConnectedEnvironmentStorage.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.cs new file mode 100644 index 000000000000..c50bf208917d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.cs @@ -0,0 +1,184 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Storage resource for connectedEnvironment. + public partial class ConnectedEnvironmentStorage : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(); + + /// Access mode for storage + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AzureFileAccessMode { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)Property).AzureFileAccessMode; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)Property).AzureFileAccessMode = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode)""); } + + /// Storage account key for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureFileAccountKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)Property).AzureFileAccountKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)Property).AzureFileAccountKey = value ?? null; } + + /// Storage account name for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureFileAccountName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)Property).AzureFileAccountName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)Property).AzureFileAccountName = value ?? null; } + + /// Azure file share name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureFileShareName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)Property).AzureFileShareName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)Property).AzureFileShareName = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; } + + /// Internal Acessors for AzureFile + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal.AzureFile { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)Property).AzureFile; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)Property).AzureFile = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentStorageProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties _property; + + /// Storage properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentStorageProperties()); set => this._property = value; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ConnectedEnvironmentStorage() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Storage resource for connectedEnvironment. + public partial interface IConnectedEnvironmentStorage : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource + { + /// Access mode for storage + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Access mode for storage", + SerializedName = @"accessMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AzureFileAccessMode { get; set; } + /// Storage account key for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage account key for azure file.", + SerializedName = @"accountKey", + PossibleTypes = new [] { typeof(string) })] + string AzureFileAccountKey { get; set; } + /// Storage account name for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage account name for azure file.", + SerializedName = @"accountName", + PossibleTypes = new [] { typeof(string) })] + string AzureFileAccountName { get; set; } + /// Azure file share name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure file share name.", + SerializedName = @"shareName", + PossibleTypes = new [] { typeof(string) })] + string AzureFileShareName { get; set; } + + } + /// Storage resource for connectedEnvironment. + internal partial interface IConnectedEnvironmentStorageInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal + { + /// Azure file properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties AzureFile { get; set; } + /// Access mode for storage + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AzureFileAccessMode { get; set; } + /// Storage account key for azure file. + string AzureFileAccountKey { get; set; } + /// Storage account name for azure file. + string AzureFileAccountName { get; set; } + /// Azure file share name. + string AzureFileShareName { get; set; } + /// Storage properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.json.cs new file mode 100644 index 000000000000..906fb02130d9 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorage.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Storage resource for connectedEnvironment. + public partial class ConnectedEnvironmentStorage + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ConnectedEnvironmentStorage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentStorageProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ConnectedEnvironmentStorage(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.PowerShell.cs new file mode 100644 index 000000000000..40fa32485510 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.PowerShell.cs @@ -0,0 +1,181 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Storage properties + [System.ComponentModel.TypeConverter(typeof(ConnectedEnvironmentStoragePropertiesTypeConverter))] + public partial class ConnectedEnvironmentStorageProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ConnectedEnvironmentStorageProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureFile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFile = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties) content.GetValueForProperty("AzureFile",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFile, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFilePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("AzureFileAccessMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileAccessMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode?) content.GetValueForProperty("AzureFileAccessMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileAccessMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode.CreateFrom); + } + if (content.Contains("AzureFileAccountName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileAccountName = (string) content.GetValueForProperty("AzureFileAccountName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileAccountName, global::System.Convert.ToString); + } + if (content.Contains("AzureFileAccountKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileAccountKey = (string) content.GetValueForProperty("AzureFileAccountKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileAccountKey, global::System.Convert.ToString); + } + if (content.Contains("AzureFileShareName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileShareName = (string) content.GetValueForProperty("AzureFileShareName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileShareName, 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 ConnectedEnvironmentStorageProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureFile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFile = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties) content.GetValueForProperty("AzureFile",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFile, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFilePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("AzureFileAccessMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileAccessMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode?) content.GetValueForProperty("AzureFileAccessMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileAccessMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode.CreateFrom); + } + if (content.Contains("AzureFileAccountName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileAccountName = (string) content.GetValueForProperty("AzureFileAccountName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileAccountName, global::System.Convert.ToString); + } + if (content.Contains("AzureFileAccountKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileAccountKey = (string) content.GetValueForProperty("AzureFileAccountKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileAccountKey, global::System.Convert.ToString); + } + if (content.Contains("AzureFileShareName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileShareName = (string) content.GetValueForProperty("AzureFileShareName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal)this).AzureFileShareName, 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.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConnectedEnvironmentStorageProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConnectedEnvironmentStorageProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Storage properties + [System.ComponentModel.TypeConverter(typeof(ConnectedEnvironmentStoragePropertiesTypeConverter))] + public partial interface IConnectedEnvironmentStorageProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.TypeConverter.cs new file mode 100644 index 000000000000..4dfbe3528a5d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConnectedEnvironmentStoragePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConnectedEnvironmentStorageProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConnectedEnvironmentStorageProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConnectedEnvironmentStorageProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.cs new file mode 100644 index 000000000000..e10ad5fa6aa8 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Storage properties + public partial class ConnectedEnvironmentStorageProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties _azureFile; + + /// Azure file properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties AzureFile { get => (this._azureFile = this._azureFile ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFileProperties()); set => this._azureFile = value; } + + /// Access mode for storage + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AzureFileAccessMode { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).AccessMode; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).AccessMode = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode)""); } + + /// Storage account key for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureFileAccountKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).AccountKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).AccountKey = value ?? null; } + + /// Storage account name for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureFileAccountName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).AccountName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).AccountName = value ?? null; } + + /// Azure file share name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureFileShareName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).ShareName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).ShareName = value ?? null; } + + /// Internal Acessors for AzureFile + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragePropertiesInternal.AzureFile { get => (this._azureFile = this._azureFile ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFileProperties()); set { {_azureFile = value;} } } + + /// Creates an new instance. + public ConnectedEnvironmentStorageProperties() + { + + } + } + /// Storage properties + public partial interface IConnectedEnvironmentStorageProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Access mode for storage + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Access mode for storage", + SerializedName = @"accessMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AzureFileAccessMode { get; set; } + /// Storage account key for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage account key for azure file.", + SerializedName = @"accountKey", + PossibleTypes = new [] { typeof(string) })] + string AzureFileAccountKey { get; set; } + /// Storage account name for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage account name for azure file.", + SerializedName = @"accountName", + PossibleTypes = new [] { typeof(string) })] + string AzureFileAccountName { get; set; } + /// Azure file share name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure file share name.", + SerializedName = @"shareName", + PossibleTypes = new [] { typeof(string) })] + string AzureFileShareName { get; set; } + + } + /// Storage properties + internal partial interface IConnectedEnvironmentStoragePropertiesInternal + + { + /// Azure file properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties AzureFile { get; set; } + /// Access mode for storage + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AzureFileAccessMode { get; set; } + /// Storage account key for azure file. + string AzureFileAccountKey { get; set; } + /// Storage account name for azure file. + string AzureFileAccountName { get; set; } + /// Azure file share name. + string AzureFileShareName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.json.cs new file mode 100644 index 000000000000..e3663fc17945 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStorageProperties.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Storage properties + public partial class ConnectedEnvironmentStorageProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ConnectedEnvironmentStorageProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_azureFile = If( json?.PropertyT("azureFile"), out var __jsonAzureFile) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFileProperties.FromJson(__jsonAzureFile) : AzureFile;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorageProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ConnectedEnvironmentStorageProperties(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._azureFile ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._azureFile.ToJson(null,serializationMode) : null, "azureFile" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.PowerShell.cs new file mode 100644 index 000000000000..d87d4ad41559 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.PowerShell.cs @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Collection of Storage for Environments + [System.ComponentModel.TypeConverter(typeof(ConnectedEnvironmentStoragesCollectionTypeConverter))] + public partial class ConnectedEnvironmentStoragesCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ConnectedEnvironmentStoragesCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentStorageTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ConnectedEnvironmentStoragesCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentStorageTypeConverter.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.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConnectedEnvironmentStoragesCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConnectedEnvironmentStoragesCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of Storage for Environments + [System.ComponentModel.TypeConverter(typeof(ConnectedEnvironmentStoragesCollectionTypeConverter))] + public partial interface IConnectedEnvironmentStoragesCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.TypeConverter.cs new file mode 100644 index 000000000000..ecd9bc4da9ce --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.TypeConverter.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConnectedEnvironmentStoragesCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConnectedEnvironmentStoragesCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConnectedEnvironmentStoragesCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConnectedEnvironmentStoragesCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.cs new file mode 100644 index 000000000000..cc829728a627 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of Storage for Environments + public partial class ConnectedEnvironmentStoragesCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollectionInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage[] _value; + + /// Collection of storage resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ConnectedEnvironmentStoragesCollection() + { + + } + } + /// Collection of Storage for Environments + public partial interface IConnectedEnvironmentStoragesCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Collection of storage resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of storage resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage[] Value { get; set; } + + } + /// Collection of Storage for Environments + internal partial interface IConnectedEnvironmentStoragesCollectionInternal + + { + /// Collection of storage resources. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.json.cs new file mode 100644 index 000000000000..eecbc905b3ac --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ConnectedEnvironmentStoragesCollection.json.cs @@ -0,0 +1,117 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of Storage for Environments + public partial class ConnectedEnvironmentStoragesCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ConnectedEnvironmentStoragesCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentStorage.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ConnectedEnvironmentStoragesCollection(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/Container.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Container.PowerShell.cs new file mode 100644 index 000000000000..dfbca9820281 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Container.PowerShell.cs @@ -0,0 +1,224 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App container definition + [System.ComponentModel.TypeConverter(typeof(ContainerTypeConverter))] + public partial class Container + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 Container(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Probe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerInternal)this).Probe = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe[]) content.GetValueForProperty("Probe",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerInternal)this).Probe, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceCpu = (double?) content.GetValueForProperty("ResourceCpu",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceCpu, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("ResourceMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceMemory = (string) content.GetValueForProperty("ResourceMemory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceEphemeralStorage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceEphemeralStorage = (string) content.GetValueForProperty("ResourceEphemeralStorage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceEphemeralStorage, global::System.Convert.ToString); + } + if (content.Contains("Resource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Resource = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Resource, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerResourcesTypeConverter.ConvertFrom); + } + if (content.Contains("Image")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Image = (string) content.GetValueForProperty("Image",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Image, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Command")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Command = (string[]) content.GetValueForProperty("Command",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Command, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Arg")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Arg = (string[]) content.GetValueForProperty("Arg",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Arg, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Env")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Env = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar[]) content.GetValueForProperty("Env",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Env, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentVarTypeConverter.ConvertFrom)); + } + if (content.Contains("VolumeMount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).VolumeMount = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount[]) content.GetValueForProperty("VolumeMount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).VolumeMount, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeMountTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Container(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Probe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerInternal)this).Probe = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe[]) content.GetValueForProperty("Probe",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerInternal)this).Probe, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceCpu = (double?) content.GetValueForProperty("ResourceCpu",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceCpu, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("ResourceMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceMemory = (string) content.GetValueForProperty("ResourceMemory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceEphemeralStorage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceEphemeralStorage = (string) content.GetValueForProperty("ResourceEphemeralStorage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceEphemeralStorage, global::System.Convert.ToString); + } + if (content.Contains("Resource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Resource = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Resource, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerResourcesTypeConverter.ConvertFrom); + } + if (content.Contains("Image")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Image = (string) content.GetValueForProperty("Image",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Image, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Command")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Command = (string[]) content.GetValueForProperty("Command",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Command, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Arg")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Arg = (string[]) content.GetValueForProperty("Arg",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Arg, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Env")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Env = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar[]) content.GetValueForProperty("Env",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Env, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentVarTypeConverter.ConvertFrom)); + } + if (content.Contains("VolumeMount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).VolumeMount = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount[]) content.GetValueForProperty("VolumeMount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).VolumeMount, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeMountTypeConverter.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.ContainerAppsApi.Models.Api20221101Preview.IContainer DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Container(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Container(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App container definition + [System.ComponentModel.TypeConverter(typeof(ContainerTypeConverter))] + public partial interface IContainer + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Container.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Container.TypeConverter.cs new file mode 100644 index 000000000000..ac9116e2a30a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Container.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContainerTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Container.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Container.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Container.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Container.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Container.cs new file mode 100644 index 000000000000..781510e5cfc1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Container.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container definition + public partial class Container : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer __baseContainer = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainer(); + + /// Container start command arguments. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string[] Arg { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Arg; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Arg = value ?? null /* arrayOf */; } + + /// Container start command. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string[] Command { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Command; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Command = value ?? null /* arrayOf */; } + + /// Container environment variables. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar[] Env { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Env; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Env = value ?? null /* arrayOf */; } + + /// Container image tag. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Image { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Image; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Image = value ?? null; } + + /// Internal Acessors for ResourceEphemeralStorage + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal.ResourceEphemeralStorage { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).ResourceEphemeralStorage; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).ResourceEphemeralStorage = value; } + + /// Custom container name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Name = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe[] _probe; + + /// List of probes for the container. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe[] Probe { get => this._probe; set => this._probe = value; } + + /// Container resource requirements. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources Resource { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Resource; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Resource = value ?? null /* model class */; } + + /// Required CPU in cores, e.g. 0.5 + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public double? ResourceCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).ResourceCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).ResourceCpu = value ?? default(double); } + + /// Ephemeral Storage, e.g. "1Gi" + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string ResourceEphemeralStorage { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).ResourceEphemeralStorage; } + + /// Required memory, e.g. "250Mb" + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string ResourceMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).ResourceMemory; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).ResourceMemory = value ?? null; } + + /// Container volume mounts. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount[] VolumeMount { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).VolumeMount; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).VolumeMount = value ?? null /* arrayOf */; } + + /// Creates an new instance. + public Container() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__baseContainer), __baseContainer); + await eventListener.AssertObjectIsValid(nameof(__baseContainer), __baseContainer); + } + } + /// Container App container definition + public partial interface IContainer : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer + { + /// List of probes for the container. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of probes for the container.", + SerializedName = @"probes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe[] Probe { get; set; } + + } + /// Container App container definition + internal partial interface IContainerInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal + { + /// List of probes for the container. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe[] Probe { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Container.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Container.json.cs new file mode 100644 index 000000000000..fff1ab11c410 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Container.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container definition + public partial class Container + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Container(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __baseContainer = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainer(json); + {_probe = If( json?.PropertyT("probes"), out var __jsonProbes) ? If( __jsonProbes as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbe.FromJson(__u) )) ))() : null : Probe;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Container(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __baseContainer?.ToJson(container, serializationMode); + if (null != this._probe) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._probe ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("probes",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.PowerShell.cs new file mode 100644 index 000000000000..02c9a017b78d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.PowerShell.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App. + [System.ComponentModel.TypeConverter(typeof(ContainerAppTypeConverter))] + public partial class ContainerApp + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ContainerApp(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ExtendedLocation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ExtendedLocation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation) content.GetValueForProperty("ExtendedLocation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ExtendedLocation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ExtendedLocationTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ManagedServiceIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("ExtendedLocationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ExtendedLocationName = (string) content.GetValueForProperty("ExtendedLocationName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ExtendedLocationName, global::System.Convert.ToString); + } + if (content.Contains("Configuration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Configuration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration) content.GetValueForProperty("Configuration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Configuration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("Template")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Template = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate) content.GetValueForProperty("Template",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Template, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TemplateTypeConverter.ConvertFrom); + } + if (content.Contains("ExtendedLocationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ExtendedLocationType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes?) content.GetValueForProperty("ExtendedLocationType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ExtendedLocationType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType.CreateFrom); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.UserAssignedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState.CreateFrom); + } + if (content.Contains("ManagedEnvironmentId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ManagedEnvironmentId = (string) content.GetValueForProperty("ManagedEnvironmentId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ManagedEnvironmentId, global::System.Convert.ToString); + } + if (content.Contains("EnvironmentId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).EnvironmentId = (string) content.GetValueForProperty("EnvironmentId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).EnvironmentId, global::System.Convert.ToString); + } + if (content.Contains("WorkloadProfileType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).WorkloadProfileType = (string) content.GetValueForProperty("WorkloadProfileType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).WorkloadProfileType, global::System.Convert.ToString); + } + if (content.Contains("LatestRevisionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).LatestRevisionName = (string) content.GetValueForProperty("LatestRevisionName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).LatestRevisionName, global::System.Convert.ToString); + } + if (content.Contains("LatestRevisionFqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).LatestRevisionFqdn = (string) content.GetValueForProperty("LatestRevisionFqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).LatestRevisionFqdn, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainVerificationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).CustomDomainVerificationId = (string) content.GetValueForProperty("CustomDomainVerificationId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).CustomDomainVerificationId, global::System.Convert.ToString); + } + if (content.Contains("OutboundIPAddress")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).OutboundIPAddress = (string[]) content.GetValueForProperty("OutboundIPAddress",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).OutboundIPAddress, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("EventStreamEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).EventStreamEndpoint = (string) content.GetValueForProperty("EventStreamEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).EventStreamEndpoint, global::System.Convert.ToString); + } + if (content.Contains("ConfigurationIngress")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationIngress = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress) content.GetValueForProperty("ConfigurationIngress",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationIngress, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IngressTypeConverter.ConvertFrom); + } + if (content.Contains("ConfigurationDapr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationDapr = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr) content.GetValueForProperty("ConfigurationDapr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationDapr, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprTypeConverter.ConvertFrom); + } + if (content.Contains("ConfigurationSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationSecret = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]) content.GetValueForProperty("ConfigurationSecret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationSecret, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SecretTypeConverter.ConvertFrom)); + } + if (content.Contains("ConfigurationRegistry")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationRegistry = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[]) content.GetValueForProperty("ConfigurationRegistry",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationRegistry, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryCredentialsTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateScale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateScale = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale) content.GetValueForProperty("TemplateScale",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateScale, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleTypeConverter.ConvertFrom); + } + if (content.Contains("TemplateRevisionSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateRevisionSuffix = (string) content.GetValueForProperty("TemplateRevisionSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateRevisionSuffix, global::System.Convert.ToString); + } + if (content.Contains("TemplateInitContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateInitContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[]) content.GetValueForProperty("TemplateInitContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateInitContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[]) content.GetValueForProperty("TemplateContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateVolume")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateVolume = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[]) content.GetValueForProperty("TemplateVolume",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateVolume, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeTypeConverter.ConvertFrom)); + } + if (content.Contains("ConfigurationActiveRevisionsMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationActiveRevisionsMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode?) content.GetValueForProperty("ConfigurationActiveRevisionsMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationActiveRevisionsMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode.CreateFrom); + } + if (content.Contains("ConfigurationMaxInactiveRevision")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationMaxInactiveRevision = (int?) content.GetValueForProperty("ConfigurationMaxInactiveRevision",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationMaxInactiveRevision, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressFqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressFqdn = (string) content.GetValueForProperty("IngressFqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressFqdn, global::System.Convert.ToString); + } + if (content.Contains("IngressTargetPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressTargetPort = (int?) content.GetValueForProperty("IngressTargetPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressTargetPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressExposedPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressExposedPort = (int?) content.GetValueForProperty("IngressExposedPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressExposedPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressTraffic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressTraffic = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[]) content.GetValueForProperty("IngressTraffic",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TrafficWeightTypeConverter.ConvertFrom)); + } + if (content.Contains("IngressCustomDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressCustomDomain = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[]) content.GetValueForProperty("IngressCustomDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressCustomDomain, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainTypeConverter.ConvertFrom)); + } + if (content.Contains("DaprAppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprAppId = (string) content.GetValueForProperty("DaprAppId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprAppId, global::System.Convert.ToString); + } + if (content.Contains("DaprAppProtocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprAppProtocol = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol?) content.GetValueForProperty("DaprAppProtocol",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprAppProtocol, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol.CreateFrom); + } + if (content.Contains("DaprAppPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprAppPort = (int?) content.GetValueForProperty("DaprAppPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprAppPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprLogLevel")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprLogLevel = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel?) content.GetValueForProperty("DaprLogLevel",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprLogLevel, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel.CreateFrom); + } + if (content.Contains("ScaleMinReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ScaleMinReplica = (int?) content.GetValueForProperty("ScaleMinReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ScaleMinReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleMaxReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ScaleMaxReplica = (int?) content.GetValueForProperty("ScaleMaxReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ScaleMaxReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ScaleRule = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]) content.GetValueForProperty("ScaleRule",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ScaleRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("IngressExternal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressExternal = (bool?) content.GetValueForProperty("IngressExternal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressExternal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IngressTransport")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressTransport = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod?) content.GetValueForProperty("IngressTransport",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressTransport, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod.CreateFrom); + } + if (content.Contains("IngressAllowInsecure")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressAllowInsecure = (bool?) content.GetValueForProperty("IngressAllowInsecure",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressAllowInsecure, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IngressIPSecurityRestriction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressIPSecurityRestriction = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[]) content.GetValueForProperty("IngressIPSecurityRestriction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressIPSecurityRestriction, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IPSecurityRestrictionRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DaprEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprEnabled = (bool?) content.GetValueForProperty("DaprEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DaprHttpReadBufferSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprHttpReadBufferSize = (int?) content.GetValueForProperty("DaprHttpReadBufferSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprHttpReadBufferSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprHttpMaxRequestSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprHttpMaxRequestSize = (int?) content.GetValueForProperty("DaprHttpMaxRequestSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprHttpMaxRequestSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprEnableApiLogging")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprEnableApiLogging = (bool?) content.GetValueForProperty("DaprEnableApiLogging",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprEnableApiLogging, (__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 ContainerApp(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ExtendedLocation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ExtendedLocation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation) content.GetValueForProperty("ExtendedLocation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ExtendedLocation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ExtendedLocationTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ManagedServiceIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("ExtendedLocationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ExtendedLocationName = (string) content.GetValueForProperty("ExtendedLocationName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ExtendedLocationName, global::System.Convert.ToString); + } + if (content.Contains("Configuration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Configuration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration) content.GetValueForProperty("Configuration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Configuration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("Template")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Template = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate) content.GetValueForProperty("Template",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).Template, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TemplateTypeConverter.ConvertFrom); + } + if (content.Contains("ExtendedLocationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ExtendedLocationType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes?) content.GetValueForProperty("ExtendedLocationType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ExtendedLocationType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType.CreateFrom); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.UserAssignedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState.CreateFrom); + } + if (content.Contains("ManagedEnvironmentId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ManagedEnvironmentId = (string) content.GetValueForProperty("ManagedEnvironmentId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ManagedEnvironmentId, global::System.Convert.ToString); + } + if (content.Contains("EnvironmentId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).EnvironmentId = (string) content.GetValueForProperty("EnvironmentId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).EnvironmentId, global::System.Convert.ToString); + } + if (content.Contains("WorkloadProfileType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).WorkloadProfileType = (string) content.GetValueForProperty("WorkloadProfileType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).WorkloadProfileType, global::System.Convert.ToString); + } + if (content.Contains("LatestRevisionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).LatestRevisionName = (string) content.GetValueForProperty("LatestRevisionName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).LatestRevisionName, global::System.Convert.ToString); + } + if (content.Contains("LatestRevisionFqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).LatestRevisionFqdn = (string) content.GetValueForProperty("LatestRevisionFqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).LatestRevisionFqdn, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainVerificationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).CustomDomainVerificationId = (string) content.GetValueForProperty("CustomDomainVerificationId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).CustomDomainVerificationId, global::System.Convert.ToString); + } + if (content.Contains("OutboundIPAddress")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).OutboundIPAddress = (string[]) content.GetValueForProperty("OutboundIPAddress",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).OutboundIPAddress, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("EventStreamEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).EventStreamEndpoint = (string) content.GetValueForProperty("EventStreamEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).EventStreamEndpoint, global::System.Convert.ToString); + } + if (content.Contains("ConfigurationIngress")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationIngress = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress) content.GetValueForProperty("ConfigurationIngress",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationIngress, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IngressTypeConverter.ConvertFrom); + } + if (content.Contains("ConfigurationDapr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationDapr = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr) content.GetValueForProperty("ConfigurationDapr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationDapr, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprTypeConverter.ConvertFrom); + } + if (content.Contains("ConfigurationSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationSecret = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]) content.GetValueForProperty("ConfigurationSecret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationSecret, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SecretTypeConverter.ConvertFrom)); + } + if (content.Contains("ConfigurationRegistry")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationRegistry = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[]) content.GetValueForProperty("ConfigurationRegistry",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationRegistry, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryCredentialsTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateScale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateScale = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale) content.GetValueForProperty("TemplateScale",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateScale, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleTypeConverter.ConvertFrom); + } + if (content.Contains("TemplateRevisionSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateRevisionSuffix = (string) content.GetValueForProperty("TemplateRevisionSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateRevisionSuffix, global::System.Convert.ToString); + } + if (content.Contains("TemplateInitContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateInitContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[]) content.GetValueForProperty("TemplateInitContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateInitContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[]) content.GetValueForProperty("TemplateContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateVolume")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateVolume = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[]) content.GetValueForProperty("TemplateVolume",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).TemplateVolume, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeTypeConverter.ConvertFrom)); + } + if (content.Contains("ConfigurationActiveRevisionsMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationActiveRevisionsMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode?) content.GetValueForProperty("ConfigurationActiveRevisionsMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationActiveRevisionsMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode.CreateFrom); + } + if (content.Contains("ConfigurationMaxInactiveRevision")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationMaxInactiveRevision = (int?) content.GetValueForProperty("ConfigurationMaxInactiveRevision",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ConfigurationMaxInactiveRevision, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressFqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressFqdn = (string) content.GetValueForProperty("IngressFqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressFqdn, global::System.Convert.ToString); + } + if (content.Contains("IngressTargetPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressTargetPort = (int?) content.GetValueForProperty("IngressTargetPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressTargetPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressExposedPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressExposedPort = (int?) content.GetValueForProperty("IngressExposedPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressExposedPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressTraffic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressTraffic = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[]) content.GetValueForProperty("IngressTraffic",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TrafficWeightTypeConverter.ConvertFrom)); + } + if (content.Contains("IngressCustomDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressCustomDomain = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[]) content.GetValueForProperty("IngressCustomDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressCustomDomain, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainTypeConverter.ConvertFrom)); + } + if (content.Contains("DaprAppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprAppId = (string) content.GetValueForProperty("DaprAppId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprAppId, global::System.Convert.ToString); + } + if (content.Contains("DaprAppProtocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprAppProtocol = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol?) content.GetValueForProperty("DaprAppProtocol",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprAppProtocol, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol.CreateFrom); + } + if (content.Contains("DaprAppPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprAppPort = (int?) content.GetValueForProperty("DaprAppPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprAppPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprLogLevel")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprLogLevel = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel?) content.GetValueForProperty("DaprLogLevel",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprLogLevel, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel.CreateFrom); + } + if (content.Contains("ScaleMinReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ScaleMinReplica = (int?) content.GetValueForProperty("ScaleMinReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ScaleMinReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleMaxReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ScaleMaxReplica = (int?) content.GetValueForProperty("ScaleMaxReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ScaleMaxReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ScaleRule = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]) content.GetValueForProperty("ScaleRule",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).ScaleRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("IngressExternal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressExternal = (bool?) content.GetValueForProperty("IngressExternal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressExternal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IngressTransport")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressTransport = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod?) content.GetValueForProperty("IngressTransport",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressTransport, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod.CreateFrom); + } + if (content.Contains("IngressAllowInsecure")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressAllowInsecure = (bool?) content.GetValueForProperty("IngressAllowInsecure",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressAllowInsecure, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IngressIPSecurityRestriction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressIPSecurityRestriction = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[]) content.GetValueForProperty("IngressIPSecurityRestriction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).IngressIPSecurityRestriction, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IPSecurityRestrictionRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DaprEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprEnabled = (bool?) content.GetValueForProperty("DaprEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DaprHttpReadBufferSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprHttpReadBufferSize = (int?) content.GetValueForProperty("DaprHttpReadBufferSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprHttpReadBufferSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprHttpMaxRequestSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprHttpMaxRequestSize = (int?) content.GetValueForProperty("DaprHttpMaxRequestSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprHttpMaxRequestSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprEnableApiLogging")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprEnableApiLogging = (bool?) content.GetValueForProperty("DaprEnableApiLogging",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal)this).DaprEnableApiLogging, (__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.ContainerAppsApi.Models.Api20221101Preview.IContainerApp DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ContainerApp(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ContainerApp(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App. + [System.ComponentModel.TypeConverter(typeof(ContainerAppTypeConverter))] + public partial interface IContainerApp + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.TypeConverter.cs new file mode 100644 index 000000000000..da6c5019a6d7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContainerAppTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ContainerApp.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ContainerApp.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ContainerApp.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.cs new file mode 100644 index 000000000000..152446a43500 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.cs @@ -0,0 +1,900 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App. + public partial class ContainerApp : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource(); + + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app: + /// Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + /// Revision weights can not be used in this mode. If no value if provided, this is the default. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode? ConfigurationActiveRevisionsMode { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ConfigurationActiveRevisionsMode; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ConfigurationActiveRevisionsMode = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode)""); } + + /// Optional. Max inactive revisions a Container App can have. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? ConfigurationMaxInactiveRevision { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ConfigurationMaxInactiveRevision; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ConfigurationMaxInactiveRevision = value ?? default(int); } + + /// + /// Collection of private container registry credentials for containers used by the Container app + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] ConfigurationRegistry { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ConfigurationRegistry; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ConfigurationRegistry = value ?? null /* arrayOf */; } + + /// Collection of secrets used by a Container app + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] ConfigurationSecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ConfigurationSecret; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ConfigurationSecret = value ?? null /* arrayOf */; } + + /// Id used to verify domain name ownership + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainVerificationId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).CustomDomainVerificationId; } + + /// Dapr application identifier + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DaprAppId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprAppId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprAppId = value ?? null; } + + /// Tells Dapr which port your application is listening on + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? DaprAppPort { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprAppPort; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprAppPort = value ?? default(int); } + + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol? DaprAppProtocol { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprAppProtocol; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprAppProtocol = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol)""); } + + /// Enables API logging for the Dapr sidecar + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? DaprEnableApiLogging { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprEnableApiLogging; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprEnableApiLogging = value ?? default(bool); } + + /// Boolean indicating if the Dapr side car is enabled + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? DaprEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprEnabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprEnabled = value ?? default(bool); } + + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? DaprHttpMaxRequestSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprHttpMaxRequestSize; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprHttpMaxRequestSize = value ?? default(int); } + + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? DaprHttpReadBufferSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprHttpReadBufferSize; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprHttpReadBufferSize = value ?? default(int); } + + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel? DaprLogLevel { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprLogLevel; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).DaprLogLevel = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel)""); } + + /// Resource ID of environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string EnvironmentId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).EnvironmentId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).EnvironmentId = value ?? null; } + + /// The endpoint of the eventstream of the container app. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string EventStreamEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).EventStreamEndpoint; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation _extendedLocation; + + /// The complex type of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation ExtendedLocation { get => (this._extendedLocation = this._extendedLocation ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ExtendedLocation()); set => this._extendedLocation = value; } + + /// The name of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ExtendedLocationName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)ExtendedLocation).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)ExtendedLocation).Name = value ?? null; } + + /// The type of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes? ExtendedLocationType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)ExtendedLocation).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)ExtendedLocation).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes)""); } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentity _identity; + + /// + /// managed identities for the Container App to interact with other Azure services without maintaining any secrets or credentials + /// in code. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentity Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ManagedServiceIdentity()); set => this._identity = value; } + + /// + /// The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)Identity).PrincipalId; } + + /// + /// The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)Identity).TenantId; } + + /// + /// Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType)""); } + + /// + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities IdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)Identity).UserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)Identity).UserAssignedIdentity = value ?? null /* model class */; } + + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? IngressAllowInsecure { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressAllowInsecure; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressAllowInsecure = value ?? default(bool); } + + /// custom domain bindings for Container Apps' hostnames. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] IngressCustomDomain { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressCustomDomain; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressCustomDomain = value ?? null /* arrayOf */; } + + /// Exposed Port in containers for TCP traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? IngressExposedPort { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressExposedPort; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressExposedPort = value ?? default(int); } + + /// Bool indicating if app exposes an external http endpoint + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? IngressExternal { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressExternal; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressExternal = value ?? default(bool); } + + /// Hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string IngressFqdn { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressFqdn; } + + /// Rules to restrict incoming IP address. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IngressIPSecurityRestriction { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressIPSecurityRestriction; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressIPSecurityRestriction = value ?? null /* arrayOf */; } + + /// Target Port in containers for traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? IngressTargetPort { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressTargetPort; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressTargetPort = value ?? default(int); } + + /// Traffic weights for app's revisions + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] IngressTraffic { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressTraffic; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressTraffic = value ?? null /* arrayOf */; } + + /// Ingress transport protocol + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod? IngressTransport { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressTransport; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressTransport = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod)""); } + + /// Fully Qualified Domain Name of the latest revision of the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string LatestRevisionFqdn { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).LatestRevisionFqdn; } + + /// Name of the latest revision of the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string LatestRevisionName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).LatestRevisionName; } + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// Deprecated. Resource ID of the Container App's environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ManagedEnvironmentId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ManagedEnvironmentId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ManagedEnvironmentId = value ?? null; } + + /// Internal Acessors for Configuration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.Configuration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).Configuration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).Configuration = value; } + + /// Internal Acessors for ConfigurationDapr + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.ConfigurationDapr { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ConfigurationDapr; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ConfigurationDapr = value; } + + /// Internal Acessors for ConfigurationIngress + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.ConfigurationIngress { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ConfigurationIngress; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ConfigurationIngress = value; } + + /// Internal Acessors for CustomDomainVerificationId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.CustomDomainVerificationId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).CustomDomainVerificationId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).CustomDomainVerificationId = value; } + + /// Internal Acessors for EventStreamEndpoint + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.EventStreamEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).EventStreamEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).EventStreamEndpoint = value; } + + /// Internal Acessors for ExtendedLocation + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.ExtendedLocation { get => (this._extendedLocation = this._extendedLocation ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ExtendedLocation()); set { {_extendedLocation = value;} } } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentity Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ManagedServiceIdentity()); set { {_identity = value;} } } + + /// Internal Acessors for IdentityPrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)Identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)Identity).PrincipalId = value; } + + /// Internal Acessors for IdentityTenantId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)Identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)Identity).TenantId = value; } + + /// Internal Acessors for IngressFqdn + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.IngressFqdn { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressFqdn; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).IngressFqdn = value; } + + /// Internal Acessors for LatestRevisionFqdn + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.LatestRevisionFqdn { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).LatestRevisionFqdn; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).LatestRevisionFqdn = value; } + + /// Internal Acessors for LatestRevisionName + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.LatestRevisionName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).LatestRevisionName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).LatestRevisionName = value; } + + /// Internal Acessors for OutboundIPAddress + string[] Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.OutboundIPAddress { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).OutboundIPAddress; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).OutboundIPAddress = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Template + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.Template { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).Template; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).Template = value; } + + /// Internal Acessors for TemplateScale + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppInternal.TemplateScale { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).TemplateScale; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).TemplateScale = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name; } + + /// Outbound IP Addresses for container app. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] OutboundIPAddress { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).OutboundIPAddress; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties _property; + + /// ContainerApp resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProperties()); set => this._property = value; } + + /// Provisioning state of the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ProvisioningState; } + + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? ScaleMaxReplica { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ScaleMaxReplica; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ScaleMaxReplica = value ?? default(int); } + + /// Optional. Minimum number of container replicas. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? ScaleMinReplica { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ScaleMinReplica; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ScaleMinReplica = value ?? default(int); } + + /// Scaling rules. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ScaleRule; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).ScaleRule = value ?? null /* arrayOf */; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// List of container definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).TemplateContainer; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).TemplateContainer = value ?? null /* arrayOf */; } + + /// List of specialized containers that run before app containers. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).TemplateInitContainer; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).TemplateInitContainer = value ?? null /* arrayOf */; } + + /// User friendly suffix that is appended to the revision name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string TemplateRevisionSuffix { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).TemplateRevisionSuffix; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).TemplateRevisionSuffix = value ?? null; } + + /// List of volume definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).TemplateVolume; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).TemplateVolume = value ?? null /* arrayOf */; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type; } + + /// Workload profile type to pin for container app execution. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string WorkloadProfileType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).WorkloadProfileType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)Property).WorkloadProfileType = value ?? null; } + + /// Creates an new instance. + public ContainerApp() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// Container App. + public partial interface IContainerApp : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource + { + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app: + /// Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + /// Revision weights can not be used in this mode. If no value if provided, this is the default. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ActiveRevisionsMode controls how active revisions are handled for the Container app: + Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. Revision weights can not be used in this mode. If no value if provided, this is the default.", + SerializedName = @"activeRevisionsMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode? ConfigurationActiveRevisionsMode { get; set; } + /// Optional. Max inactive revisions a Container App can have. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Max inactive revisions a Container App can have.", + SerializedName = @"maxInactiveRevisions", + PossibleTypes = new [] { typeof(int) })] + int? ConfigurationMaxInactiveRevision { get; set; } + /// + /// Collection of private container registry credentials for containers used by the Container app + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of private container registry credentials for containers used by the Container app", + SerializedName = @"registries", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] ConfigurationRegistry { get; set; } + /// Collection of secrets used by a Container app + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of secrets used by a Container app", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] ConfigurationSecret { get; set; } + /// Id used to verify domain name ownership + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Id used to verify domain name ownership", + SerializedName = @"customDomainVerificationId", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainVerificationId { get; } + /// Dapr application identifier + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dapr application identifier", + SerializedName = @"appId", + PossibleTypes = new [] { typeof(string) })] + string DaprAppId { get; set; } + /// Tells Dapr which port your application is listening on + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tells Dapr which port your application is listening on", + SerializedName = @"appPort", + PossibleTypes = new [] { typeof(int) })] + int? DaprAppPort { get; set; } + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http", + SerializedName = @"appProtocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol? DaprAppProtocol { get; set; } + /// Enables API logging for the Dapr sidecar + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enables API logging for the Dapr sidecar", + SerializedName = @"enableApiLogging", + PossibleTypes = new [] { typeof(bool) })] + bool? DaprEnableApiLogging { get; set; } + /// Boolean indicating if the Dapr side car is enabled + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean indicating if the Dapr side car is enabled", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? DaprEnabled { get; set; } + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is 4 MB.", + SerializedName = @"httpMaxRequestSize", + PossibleTypes = new [] { typeof(int) })] + int? DaprHttpMaxRequestSize { get; set; } + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB.", + SerializedName = @"httpReadBufferSize", + PossibleTypes = new [] { typeof(int) })] + int? DaprHttpReadBufferSize { get; set; } + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info.", + SerializedName = @"logLevel", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel? DaprLogLevel { get; set; } + /// Resource ID of environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of environment.", + SerializedName = @"environmentId", + PossibleTypes = new [] { typeof(string) })] + string EnvironmentId { get; set; } + /// The endpoint of the eventstream of the container app. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The endpoint of the eventstream of the container app.", + SerializedName = @"eventStreamEndpoint", + PossibleTypes = new [] { typeof(string) })] + string EventStreamEndpoint { get; } + /// The name of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the extended location.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string ExtendedLocationName { get; set; } + /// The type of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the extended location.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes? ExtendedLocationType { get; set; } + /// + /// The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string IdentityPrincipalId { get; } + /// + /// The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string IdentityTenantId { get; } + /// + /// Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType? IdentityType { get; set; } + /// + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS connections", + SerializedName = @"allowInsecure", + PossibleTypes = new [] { typeof(bool) })] + bool? IngressAllowInsecure { get; set; } + /// custom domain bindings for Container Apps' hostnames. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"custom domain bindings for Container Apps' hostnames.", + SerializedName = @"customDomains", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] IngressCustomDomain { get; set; } + /// Exposed Port in containers for TCP traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Exposed Port in containers for TCP traffic from ingress", + SerializedName = @"exposedPort", + PossibleTypes = new [] { typeof(int) })] + int? IngressExposedPort { get; set; } + /// Bool indicating if app exposes an external http endpoint + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Bool indicating if app exposes an external http endpoint", + SerializedName = @"external", + PossibleTypes = new [] { typeof(bool) })] + bool? IngressExternal { get; set; } + /// Hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Hostname.", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + string IngressFqdn { get; } + /// Rules to restrict incoming IP address. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Rules to restrict incoming IP address.", + SerializedName = @"ipSecurityRestrictions", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IngressIPSecurityRestriction { get; set; } + /// Target Port in containers for traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Target Port in containers for traffic from ingress", + SerializedName = @"targetPort", + PossibleTypes = new [] { typeof(int) })] + int? IngressTargetPort { get; set; } + /// Traffic weights for app's revisions + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Traffic weights for app's revisions", + SerializedName = @"traffic", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] IngressTraffic { get; set; } + /// Ingress transport protocol + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress transport protocol", + SerializedName = @"transport", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod? IngressTransport { get; set; } + /// Fully Qualified Domain Name of the latest revision of the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Fully Qualified Domain Name of the latest revision of the Container App.", + SerializedName = @"latestRevisionFqdn", + PossibleTypes = new [] { typeof(string) })] + string LatestRevisionFqdn { get; } + /// Name of the latest revision of the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the latest revision of the Container App.", + SerializedName = @"latestRevisionName", + PossibleTypes = new [] { typeof(string) })] + string LatestRevisionName { get; } + /// Deprecated. Resource ID of the Container App's environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Deprecated. Resource ID of the Container App's environment.", + SerializedName = @"managedEnvironmentId", + PossibleTypes = new [] { typeof(string) })] + string ManagedEnvironmentId { get; set; } + /// Outbound IP Addresses for container app. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Outbound IP Addresses for container app.", + SerializedName = @"outboundIPAddresses", + PossibleTypes = new [] { typeof(string) })] + string[] OutboundIPAddress { get; } + /// Provisioning state of the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Container App.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState? ProvisioningState { get; } + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Maximum number of container replicas. Defaults to 10 if not set.", + SerializedName = @"maxReplicas", + PossibleTypes = new [] { typeof(int) })] + int? ScaleMaxReplica { get; set; } + /// Optional. Minimum number of container replicas. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Minimum number of container replicas.", + SerializedName = @"minReplicas", + PossibleTypes = new [] { typeof(int) })] + int? ScaleMinReplica { get; set; } + /// Scaling rules. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Scaling rules.", + SerializedName = @"rules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get; set; } + /// List of container definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of container definitions for the Container App.", + SerializedName = @"containers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get; set; } + /// List of specialized containers that run before app containers. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of specialized containers that run before app containers.", + SerializedName = @"initContainers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get; set; } + /// User friendly suffix that is appended to the revision name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly suffix that is appended to the revision name", + SerializedName = @"revisionSuffix", + PossibleTypes = new [] { typeof(string) })] + string TemplateRevisionSuffix { get; set; } + /// List of volume definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of volume definitions for the Container App.", + SerializedName = @"volumes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get; set; } + /// Workload profile type to pin for container app execution. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Workload profile type to pin for container app execution.", + SerializedName = @"workloadProfileType", + PossibleTypes = new [] { typeof(string) })] + string WorkloadProfileType { get; set; } + + } + /// Container App. + internal partial interface IContainerAppInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal + { + /// Non versioned Container App configuration properties. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration Configuration { get; set; } + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app: + /// Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + /// Revision weights can not be used in this mode. If no value if provided, this is the default. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode? ConfigurationActiveRevisionsMode { get; set; } + /// Dapr configuration for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr ConfigurationDapr { get; set; } + /// Ingress configurations. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress ConfigurationIngress { get; set; } + /// Optional. Max inactive revisions a Container App can have. + int? ConfigurationMaxInactiveRevision { get; set; } + /// + /// Collection of private container registry credentials for containers used by the Container app + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] ConfigurationRegistry { get; set; } + /// Collection of secrets used by a Container app + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] ConfigurationSecret { get; set; } + /// Id used to verify domain name ownership + string CustomDomainVerificationId { get; set; } + /// Dapr application identifier + string DaprAppId { get; set; } + /// Tells Dapr which port your application is listening on + int? DaprAppPort { get; set; } + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol? DaprAppProtocol { get; set; } + /// Enables API logging for the Dapr sidecar + bool? DaprEnableApiLogging { get; set; } + /// Boolean indicating if the Dapr side car is enabled + bool? DaprEnabled { get; set; } + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + int? DaprHttpMaxRequestSize { get; set; } + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + int? DaprHttpReadBufferSize { get; set; } + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel? DaprLogLevel { get; set; } + /// Resource ID of environment. + string EnvironmentId { get; set; } + /// The endpoint of the eventstream of the container app. + string EventStreamEndpoint { get; set; } + /// The complex type of the extended location. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation ExtendedLocation { get; set; } + /// The name of the extended location. + string ExtendedLocationName { get; set; } + /// The type of the extended location. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes? ExtendedLocationType { get; set; } + /// + /// managed identities for the Container App to interact with other Azure services without maintaining any secrets or credentials + /// in code. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentity Identity { get; set; } + /// + /// The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. + /// + string IdentityPrincipalId { get; set; } + /// + /// The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. + /// + string IdentityTenantId { get; set; } + /// + /// Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType? IdentityType { get; set; } + /// + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + bool? IngressAllowInsecure { get; set; } + /// custom domain bindings for Container Apps' hostnames. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] IngressCustomDomain { get; set; } + /// Exposed Port in containers for TCP traffic from ingress + int? IngressExposedPort { get; set; } + /// Bool indicating if app exposes an external http endpoint + bool? IngressExternal { get; set; } + /// Hostname. + string IngressFqdn { get; set; } + /// Rules to restrict incoming IP address. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IngressIPSecurityRestriction { get; set; } + /// Target Port in containers for traffic from ingress + int? IngressTargetPort { get; set; } + /// Traffic weights for app's revisions + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] IngressTraffic { get; set; } + /// Ingress transport protocol + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod? IngressTransport { get; set; } + /// Fully Qualified Domain Name of the latest revision of the Container App. + string LatestRevisionFqdn { get; set; } + /// Name of the latest revision of the Container App. + string LatestRevisionName { get; set; } + /// Deprecated. Resource ID of the Container App's environment. + string ManagedEnvironmentId { get; set; } + /// Outbound IP Addresses for container app. + string[] OutboundIPAddress { get; set; } + /// ContainerApp resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties Property { get; set; } + /// Provisioning state of the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState? ProvisioningState { get; set; } + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + int? ScaleMaxReplica { get; set; } + /// Optional. Minimum number of container replicas. + int? ScaleMinReplica { get; set; } + /// Scaling rules. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get; set; } + /// Container App versioned application definition. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate Template { get; set; } + /// List of container definitions for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get; set; } + /// List of specialized containers that run before app containers. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get; set; } + /// User friendly suffix that is appended to the revision name + string TemplateRevisionSuffix { get; set; } + /// Scaling properties for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale TemplateScale { get; set; } + /// List of volume definitions for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get; set; } + /// Workload profile type to pin for container app execution. + string WorkloadProfileType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.json.cs new file mode 100644 index 000000000000..78f2768fbb98 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerApp.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App. + public partial class ContainerApp + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ContainerApp(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource(json); + {_extendedLocation = If( json?.PropertyT("extendedLocation"), out var __jsonExtendedLocation) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ExtendedLocation.FromJson(__jsonExtendedLocation) : ExtendedLocation;} + {_identity = If( json?.PropertyT("identity"), out var __jsonIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ManagedServiceIdentity.FromJson(__jsonIdentity) : Identity;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ContainerApp(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __trackedResource?.ToJson(container, serializationMode); + AddIf( null != this._extendedLocation ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._extendedLocation.ToJson(null,serializationMode) : null, "extendedLocation" ,container.Add ); + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.PowerShell.cs new file mode 100644 index 000000000000..8c409617eaf1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.PowerShell.cs @@ -0,0 +1,258 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App Auth Token. + [System.ComponentModel.TypeConverter(typeof(ContainerAppAuthTokenTypeConverter))] + public partial class ContainerAppAuthToken + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ContainerAppAuthToken(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppAuthTokenPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Token")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal)this).Token = (string) content.GetValueForProperty("Token",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal)this).Token, global::System.Convert.ToString); + } + if (content.Contains("Expire")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal)this).Expire = (global::System.DateTime?) content.GetValueForProperty("Expire",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal)this).Expire, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ContainerAppAuthToken(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppAuthTokenPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Token")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal)this).Token = (string) content.GetValueForProperty("Token",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal)this).Token, global::System.Convert.ToString); + } + if (content.Contains("Expire")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal)this).Expire = (global::System.DateTime?) content.GetValueForProperty("Expire",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal)this).Expire, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + 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.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ContainerAppAuthToken(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ContainerAppAuthToken(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App Auth Token. + [System.ComponentModel.TypeConverter(typeof(ContainerAppAuthTokenTypeConverter))] + public partial interface IContainerAppAuthToken + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.TypeConverter.cs new file mode 100644 index 000000000000..c1d4981b9269 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContainerAppAuthTokenTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ContainerAppAuthToken.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ContainerAppAuthToken.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ContainerAppAuthToken.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.cs new file mode 100644 index 000000000000..07957e361e57 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.cs @@ -0,0 +1,165 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Auth Token. + public partial class ContainerAppAuthToken : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource(); + + /// Token expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public global::System.DateTime? Expire { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal)Property).Expire; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id; } + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// Internal Acessors for Expire + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal.Expire { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal)Property).Expire; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal)Property).Expire = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppAuthTokenProperties()); set { {_property = value;} } } + + /// Internal Acessors for Token + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenInternal.Token { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal)Property).Token; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal)Property).Token = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties _property; + + /// Container App auth token resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppAuthTokenProperties()); set => this._property = value; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// Auth token value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Token { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal)Property).Token; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type; } + + /// Creates an new instance. + public ContainerAppAuthToken() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// Container App Auth Token. + public partial interface IContainerAppAuthToken : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource + { + /// Token expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Token expiration date.", + SerializedName = @"expires", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? Expire { get; } + /// Auth token value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Auth token value.", + SerializedName = @"token", + PossibleTypes = new [] { typeof(string) })] + string Token { get; } + + } + /// Container App Auth Token. + internal partial interface IContainerAppAuthTokenInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal + { + /// Token expiration date. + global::System.DateTime? Expire { get; set; } + /// Container App auth token resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties Property { get; set; } + /// Auth token value. + string Token { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.json.cs new file mode 100644 index 000000000000..4adf56fd1829 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthToken.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Auth Token. + public partial class ContainerAppAuthToken + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ContainerAppAuthToken(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppAuthTokenProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ContainerAppAuthToken(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.PowerShell.cs new file mode 100644 index 000000000000..1db8cab46ed7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App auth token resource specific properties + [System.ComponentModel.TypeConverter(typeof(ContainerAppAuthTokenPropertiesTypeConverter))] + public partial class ContainerAppAuthTokenProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ContainerAppAuthTokenProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Token")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal)this).Token = (string) content.GetValueForProperty("Token",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal)this).Token, global::System.Convert.ToString); + } + if (content.Contains("Expire")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal)this).Expire = (global::System.DateTime?) content.GetValueForProperty("Expire",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal)this).Expire, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ContainerAppAuthTokenProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Token")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal)this).Token = (string) content.GetValueForProperty("Token",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal)this).Token, global::System.Convert.ToString); + } + if (content.Contains("Expire")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal)this).Expire = (global::System.DateTime?) content.GetValueForProperty("Expire",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal)this).Expire, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + 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.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ContainerAppAuthTokenProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ContainerAppAuthTokenProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App auth token resource specific properties + [System.ComponentModel.TypeConverter(typeof(ContainerAppAuthTokenPropertiesTypeConverter))] + public partial interface IContainerAppAuthTokenProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.TypeConverter.cs new file mode 100644 index 000000000000..9b66a3466e6d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContainerAppAuthTokenPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ContainerAppAuthTokenProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ContainerAppAuthTokenProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ContainerAppAuthTokenProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.cs new file mode 100644 index 000000000000..1b520766c140 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App auth token resource specific properties + public partial class ContainerAppAuthTokenProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal + { + + /// Backing field for property. + private global::System.DateTime? _expire; + + /// Token expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public global::System.DateTime? Expire { get => this._expire; } + + /// Internal Acessors for Expire + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal.Expire { get => this._expire; set { {_expire = value;} } } + + /// Internal Acessors for Token + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenPropertiesInternal.Token { get => this._token; set { {_token = value;} } } + + /// Backing field for property. + private string _token; + + /// Auth token value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Token { get => this._token; } + + /// Creates an new instance. + public ContainerAppAuthTokenProperties() + { + + } + } + /// Container App auth token resource specific properties + public partial interface IContainerAppAuthTokenProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Token expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Token expiration date.", + SerializedName = @"expires", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? Expire { get; } + /// Auth token value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Auth token value.", + SerializedName = @"token", + PossibleTypes = new [] { typeof(string) })] + string Token { get; } + + } + /// Container App auth token resource specific properties + internal partial interface IContainerAppAuthTokenPropertiesInternal + + { + /// Token expiration date. + global::System.DateTime? Expire { get; set; } + /// Auth token value. + string Token { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.json.cs new file mode 100644 index 000000000000..8c70951eb658 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppAuthTokenProperties.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App auth token resource specific properties + public partial class ContainerAppAuthTokenProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ContainerAppAuthTokenProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_token = If( json?.PropertyT("token"), out var __jsonToken) ? (string)__jsonToken : (string)Token;} + {_expire = If( json?.PropertyT("expires"), out var __jsonExpires) ? global::System.DateTime.TryParse((string)__jsonExpires, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonExpiresValue) ? __jsonExpiresValue : Expire : Expire;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthTokenProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ContainerAppAuthTokenProperties(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._token)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._token.ToString()) : null, "token" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._expire ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._expire?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "expires" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.PowerShell.cs new file mode 100644 index 000000000000..207e648d3d0f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App collection ARM resource. + [System.ComponentModel.TypeConverter(typeof(ContainerAppCollectionTypeConverter))] + public partial class ContainerAppCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ContainerAppCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollectionInternal)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 ContainerAppCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollectionInternal)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.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ContainerAppCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ContainerAppCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App collection ARM resource. + [System.ComponentModel.TypeConverter(typeof(ContainerAppCollectionTypeConverter))] + public partial interface IContainerAppCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.TypeConverter.cs new file mode 100644 index 000000000000..5dcec305d838 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContainerAppCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ContainerAppCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ContainerAppCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ContainerAppCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.cs new file mode 100644 index 000000000000..e06d4f0b00d3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App collection ARM resource. + public partial class ContainerAppCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollectionInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollectionInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp[] _value; + + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ContainerAppCollection() + { + + } + } + /// Container App collection ARM resource. + public partial interface IContainerAppCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to next page of resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp[] Value { get; set; } + + } + /// Container App collection ARM resource. + internal partial interface IContainerAppCollectionInternal + + { + /// Link to next page of resources. + string NextLink { get; set; } + /// Collection of resources. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.json.cs new file mode 100644 index 000000000000..4e1c31943326 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppCollection.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App collection ARM resource. + public partial class ContainerAppCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ContainerAppCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IContainerApp) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerApp.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.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ContainerAppCollection(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.PowerShell.cs new file mode 100644 index 000000000000..a63430d385dd --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.PowerShell.cs @@ -0,0 +1,270 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive + /// traffic. + /// + [System.ComponentModel.TypeConverter(typeof(ContainerAppProbeTypeConverter))] + public partial class ContainerAppProbe + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ContainerAppProbe(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("HttpGet")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGet = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet) content.GetValueForProperty("HttpGet",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGet, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeHttpGetTypeConverter.ConvertFrom); + } + if (content.Contains("TcpSocket")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TcpSocket = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket) content.GetValueForProperty("TcpSocket",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TcpSocket, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeTcpSocketTypeConverter.ConvertFrom); + } + if (content.Contains("FailureThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).FailureThreshold = (int?) content.GetValueForProperty("FailureThreshold",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).FailureThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("InitialDelaySecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).InitialDelaySecond = (int?) content.GetValueForProperty("InitialDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).InitialDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PeriodSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).PeriodSecond = (int?) content.GetValueForProperty("PeriodSecond",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).PeriodSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SuccessThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).SuccessThreshold = (int?) content.GetValueForProperty("SuccessThreshold",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).SuccessThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("TerminationGracePeriodSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TerminationGracePeriodSecond = (long?) content.GetValueForProperty("TerminationGracePeriodSecond",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TerminationGracePeriodSecond, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long))); + } + if (content.Contains("TimeoutSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TimeoutSecond = (int?) content.GetValueForProperty("TimeoutSecond",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TimeoutSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type.CreateFrom); + } + if (content.Contains("HttpGetScheme")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetScheme = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme?) content.GetValueForProperty("HttpGetScheme",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetScheme, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme.CreateFrom); + } + if (content.Contains("HttpGetHost")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetHost = (string) content.GetValueForProperty("HttpGetHost",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetHost, global::System.Convert.ToString); + } + if (content.Contains("HttpGetHttpHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetHttpHeader = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem[]) content.GetValueForProperty("HttpGetHttpHeader",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetHttpHeader, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeHttpGetHttpHeadersItemTypeConverter.ConvertFrom)); + } + if (content.Contains("HttpGetPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetPath = (string) content.GetValueForProperty("HttpGetPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetPath, global::System.Convert.ToString); + } + if (content.Contains("HttpGetPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetPort = (int) content.GetValueForProperty("HttpGetPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("TcpSocketHost")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TcpSocketHost = (string) content.GetValueForProperty("TcpSocketHost",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TcpSocketHost, global::System.Convert.ToString); + } + if (content.Contains("TcpSocketPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TcpSocketPort = (int) content.GetValueForProperty("TcpSocketPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TcpSocketPort, (__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 ContainerAppProbe(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("HttpGet")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGet = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet) content.GetValueForProperty("HttpGet",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGet, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeHttpGetTypeConverter.ConvertFrom); + } + if (content.Contains("TcpSocket")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TcpSocket = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket) content.GetValueForProperty("TcpSocket",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TcpSocket, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeTcpSocketTypeConverter.ConvertFrom); + } + if (content.Contains("FailureThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).FailureThreshold = (int?) content.GetValueForProperty("FailureThreshold",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).FailureThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("InitialDelaySecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).InitialDelaySecond = (int?) content.GetValueForProperty("InitialDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).InitialDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PeriodSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).PeriodSecond = (int?) content.GetValueForProperty("PeriodSecond",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).PeriodSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SuccessThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).SuccessThreshold = (int?) content.GetValueForProperty("SuccessThreshold",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).SuccessThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("TerminationGracePeriodSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TerminationGracePeriodSecond = (long?) content.GetValueForProperty("TerminationGracePeriodSecond",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TerminationGracePeriodSecond, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long))); + } + if (content.Contains("TimeoutSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TimeoutSecond = (int?) content.GetValueForProperty("TimeoutSecond",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TimeoutSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type.CreateFrom); + } + if (content.Contains("HttpGetScheme")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetScheme = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme?) content.GetValueForProperty("HttpGetScheme",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetScheme, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme.CreateFrom); + } + if (content.Contains("HttpGetHost")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetHost = (string) content.GetValueForProperty("HttpGetHost",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetHost, global::System.Convert.ToString); + } + if (content.Contains("HttpGetHttpHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetHttpHeader = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem[]) content.GetValueForProperty("HttpGetHttpHeader",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetHttpHeader, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeHttpGetHttpHeadersItemTypeConverter.ConvertFrom)); + } + if (content.Contains("HttpGetPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetPath = (string) content.GetValueForProperty("HttpGetPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetPath, global::System.Convert.ToString); + } + if (content.Contains("HttpGetPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetPort = (int) content.GetValueForProperty("HttpGetPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).HttpGetPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("TcpSocketHost")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TcpSocketHost = (string) content.GetValueForProperty("TcpSocketHost",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TcpSocketHost, global::System.Convert.ToString); + } + if (content.Contains("TcpSocketPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TcpSocketPort = (int) content.GetValueForProperty("TcpSocketPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal)this).TcpSocketPort, (__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.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ContainerAppProbe(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ContainerAppProbe(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive + /// traffic. + [System.ComponentModel.TypeConverter(typeof(ContainerAppProbeTypeConverter))] + public partial interface IContainerAppProbe + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.TypeConverter.cs new file mode 100644 index 000000000000..9c952e2414c4 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContainerAppProbeTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ContainerAppProbe.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ContainerAppProbe.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ContainerAppProbe.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.cs new file mode 100644 index 000000000000..8ce9f0a5cde2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.cs @@ -0,0 +1,365 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive + /// traffic. + /// + public partial class ContainerAppProbe : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal + { + + /// Backing field for property. + private int? _failureThreshold; + + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value + /// is 1. Maximum value is 10. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? FailureThreshold { get => this._failureThreshold; set => this._failureThreshold = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet _httpGet; + + /// HTTPGet specifies the http request to perform. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet HttpGet { get => (this._httpGet = this._httpGet ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeHttpGet()); set => this._httpGet = value; } + + /// + /// Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string HttpGetHost { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)HttpGet).Host; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)HttpGet).Host = value ?? null; } + + /// Custom headers to set in the request. HTTP allows repeated headers. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem[] HttpGetHttpHeader { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)HttpGet).HttpHeader; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)HttpGet).HttpHeader = value ?? null /* arrayOf */; } + + /// Path to access on the HTTP server. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string HttpGetPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)HttpGet).Path; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)HttpGet).Path = value ?? null; } + + /// + /// Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? HttpGetPort { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)HttpGet).Port; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)HttpGet).Port = value ?? default(int); } + + /// Scheme to use for connecting to the host. Defaults to HTTP. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme? HttpGetScheme { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)HttpGet).Scheme; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)HttpGet).Scheme = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme)""); } + + /// Backing field for property. + private int? _initialDelaySecond; + + /// + /// Number of seconds after the container has started before liveness probes are initiated. Minimum value is 1. Maximum value + /// is 60. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? InitialDelaySecond { get => this._initialDelaySecond; set => this._initialDelaySecond = value; } + + /// Internal Acessors for HttpGet + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal.HttpGet { get => (this._httpGet = this._httpGet ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeHttpGet()); set { {_httpGet = value;} } } + + /// Internal Acessors for TcpSocket + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeInternal.TcpSocket { get => (this._tcpSocket = this._tcpSocket ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeTcpSocket()); set { {_tcpSocket = value;} } } + + /// Backing field for property. + private int? _periodSecond; + + /// + /// How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value is 240. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? PeriodSecond { get => this._periodSecond; set => this._periodSecond = value; } + + /// Backing field for property. + private int? _successThreshold; + + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 + /// for liveness and startup. Minimum value is 1. Maximum value is 10. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? SuccessThreshold { get => this._successThreshold; set => this._successThreshold = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket _tcpSocket; + + /// + /// TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket TcpSocket { get => (this._tcpSocket = this._tcpSocket ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeTcpSocket()); set => this._tcpSocket = value; } + + /// Optional: Host name to connect to, defaults to the pod IP. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string TcpSocketHost { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocketInternal)TcpSocket).Host; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocketInternal)TcpSocket).Host = value ?? null; } + + /// + /// Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? TcpSocketPort { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocketInternal)TcpSocket).Port; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocketInternal)TcpSocket).Port = value ?? default(int); } + + /// Backing field for property. + private long? _terminationGracePeriodSecond; + + /// + /// Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration + /// in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly + /// halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, + /// the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. + /// Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut + /// down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. Maximum value is 3600 seconds + /// (1 hour) + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public long? TerminationGracePeriodSecond { get => this._terminationGracePeriodSecond; set => this._terminationGracePeriodSecond = value; } + + /// Backing field for property. + private int? _timeoutSecond; + + /// + /// Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 240. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? TimeoutSecond { get => this._timeoutSecond; set => this._timeoutSecond = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type? _type; + + /// The type of probe. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type? Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public ContainerAppProbe() + { + + } + } + /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive + /// traffic. + public partial interface IContainerAppProbe : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value + /// is 1. Maximum value is 10. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. Maximum value is 10.", + SerializedName = @"failureThreshold", + PossibleTypes = new [] { typeof(int) })] + int? FailureThreshold { get; set; } + /// + /// Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Host name to connect to, defaults to the pod IP. You probably want to set ""Host"" in httpHeaders instead.", + SerializedName = @"host", + PossibleTypes = new [] { typeof(string) })] + string HttpGetHost { get; set; } + /// Custom headers to set in the request. HTTP allows repeated headers. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Custom headers to set in the request. HTTP allows repeated headers.", + SerializedName = @"httpHeaders", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem[] HttpGetHttpHeader { get; set; } + /// Path to access on the HTTP server. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to access on the HTTP server.", + SerializedName = @"path", + PossibleTypes = new [] { typeof(string) })] + string HttpGetPath { get; set; } + /// + /// Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", + SerializedName = @"port", + PossibleTypes = new [] { typeof(int) })] + int? HttpGetPort { get; set; } + /// Scheme to use for connecting to the host. Defaults to HTTP. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Scheme to use for connecting to the host. Defaults to HTTP.", + SerializedName = @"scheme", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme? HttpGetScheme { get; set; } + /// + /// Number of seconds after the container has started before liveness probes are initiated. Minimum value is 1. Maximum value + /// is 60. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of seconds after the container has started before liveness probes are initiated. Minimum value is 1. Maximum value is 60.", + SerializedName = @"initialDelaySeconds", + PossibleTypes = new [] { typeof(int) })] + int? InitialDelaySecond { get; set; } + /// + /// How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value is 240. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value is 240.", + SerializedName = @"periodSeconds", + PossibleTypes = new [] { typeof(int) })] + int? PeriodSecond { get; set; } + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 + /// for liveness and startup. Minimum value is 1. Maximum value is 10. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. Maximum value is 10.", + SerializedName = @"successThreshold", + PossibleTypes = new [] { typeof(int) })] + int? SuccessThreshold { get; set; } + /// Optional: Host name to connect to, defaults to the pod IP. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional: Host name to connect to, defaults to the pod IP.", + SerializedName = @"host", + PossibleTypes = new [] { typeof(string) })] + string TcpSocketHost { get; set; } + /// + /// Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", + SerializedName = @"port", + PossibleTypes = new [] { typeof(int) })] + int? TcpSocketPort { get; set; } + /// + /// Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration + /// in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly + /// halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, + /// the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. + /// Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut + /// down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. Maximum value is 3600 seconds + /// (1 hour) + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. Maximum value is 3600 seconds (1 hour)", + SerializedName = @"terminationGracePeriodSeconds", + PossibleTypes = new [] { typeof(long) })] + long? TerminationGracePeriodSecond { get; set; } + /// + /// Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 240. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 240.", + SerializedName = @"timeoutSeconds", + PossibleTypes = new [] { typeof(int) })] + int? TimeoutSecond { get; set; } + /// The type of probe. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of probe.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type? Type { get; set; } + + } + /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive + /// traffic. + internal partial interface IContainerAppProbeInternal + + { + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value + /// is 1. Maximum value is 10. + /// + int? FailureThreshold { get; set; } + /// HTTPGet specifies the http request to perform. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet HttpGet { get; set; } + /// + /// Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + /// + string HttpGetHost { get; set; } + /// Custom headers to set in the request. HTTP allows repeated headers. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem[] HttpGetHttpHeader { get; set; } + /// Path to access on the HTTP server. + string HttpGetPath { get; set; } + /// + /// Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + /// + int? HttpGetPort { get; set; } + /// Scheme to use for connecting to the host. Defaults to HTTP. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme? HttpGetScheme { get; set; } + /// + /// Number of seconds after the container has started before liveness probes are initiated. Minimum value is 1. Maximum value + /// is 60. + /// + int? InitialDelaySecond { get; set; } + /// + /// How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value is 240. + /// + int? PeriodSecond { get; set; } + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 + /// for liveness and startup. Minimum value is 1. Maximum value is 10. + /// + int? SuccessThreshold { get; set; } + /// + /// TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket TcpSocket { get; set; } + /// Optional: Host name to connect to, defaults to the pod IP. + string TcpSocketHost { get; set; } + /// + /// Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + /// + int? TcpSocketPort { get; set; } + /// + /// Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration + /// in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly + /// halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, + /// the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. + /// Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut + /// down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. Maximum value is 3600 seconds + /// (1 hour) + /// + long? TerminationGracePeriodSecond { get; set; } + /// + /// Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 240. + /// + int? TimeoutSecond { get; set; } + /// The type of probe. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type? Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.json.cs new file mode 100644 index 000000000000..09f338952e51 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbe.json.cs @@ -0,0 +1,127 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive + /// traffic. + /// + public partial class ContainerAppProbe + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ContainerAppProbe(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_httpGet = If( json?.PropertyT("httpGet"), out var __jsonHttpGet) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeHttpGet.FromJson(__jsonHttpGet) : HttpGet;} + {_tcpSocket = If( json?.PropertyT("tcpSocket"), out var __jsonTcpSocket) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeTcpSocket.FromJson(__jsonTcpSocket) : TcpSocket;} + {_failureThreshold = If( json?.PropertyT("failureThreshold"), out var __jsonFailureThreshold) ? (int?)__jsonFailureThreshold : FailureThreshold;} + {_initialDelaySecond = If( json?.PropertyT("initialDelaySeconds"), out var __jsonInitialDelaySeconds) ? (int?)__jsonInitialDelaySeconds : InitialDelaySecond;} + {_periodSecond = If( json?.PropertyT("periodSeconds"), out var __jsonPeriodSeconds) ? (int?)__jsonPeriodSeconds : PeriodSecond;} + {_successThreshold = If( json?.PropertyT("successThreshold"), out var __jsonSuccessThreshold) ? (int?)__jsonSuccessThreshold : SuccessThreshold;} + {_terminationGracePeriodSecond = If( json?.PropertyT("terminationGracePeriodSeconds"), out var __jsonTerminationGracePeriodSeconds) ? (long?)__jsonTerminationGracePeriodSeconds : TerminationGracePeriodSecond;} + {_timeoutSecond = If( json?.PropertyT("timeoutSeconds"), out var __jsonTimeoutSeconds) ? (int?)__jsonTimeoutSeconds : TimeoutSecond;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbe FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ContainerAppProbe(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._httpGet ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._httpGet.ToJson(null,serializationMode) : null, "httpGet" ,container.Add ); + AddIf( null != this._tcpSocket ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._tcpSocket.ToJson(null,serializationMode) : null, "tcpSocket" ,container.Add ); + AddIf( null != this._failureThreshold ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._failureThreshold) : null, "failureThreshold" ,container.Add ); + AddIf( null != this._initialDelaySecond ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._initialDelaySecond) : null, "initialDelaySeconds" ,container.Add ); + AddIf( null != this._periodSecond ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._periodSecond) : null, "periodSeconds" ,container.Add ); + AddIf( null != this._successThreshold ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._successThreshold) : null, "successThreshold" ,container.Add ); + AddIf( null != this._terminationGracePeriodSecond ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((long)this._terminationGracePeriodSecond) : null, "terminationGracePeriodSeconds" ,container.Add ); + AddIf( null != this._timeoutSecond ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._timeoutSecond) : null, "timeoutSeconds" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.PowerShell.cs new file mode 100644 index 000000000000..613f1a7c855f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.PowerShell.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// HTTPGet specifies the http request to perform. + [System.ComponentModel.TypeConverter(typeof(ContainerAppProbeHttpGetTypeConverter))] + public partial class ContainerAppProbeHttpGet + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ContainerAppProbeHttpGet(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Host")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Host = (string) content.GetValueForProperty("Host",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Host, global::System.Convert.ToString); + } + if (content.Contains("HttpHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).HttpHeader = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem[]) content.GetValueForProperty("HttpHeader",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).HttpHeader, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeHttpGetHttpHeadersItemTypeConverter.ConvertFrom)); + } + if (content.Contains("Path")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Path = (string) content.GetValueForProperty("Path",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Path, global::System.Convert.ToString); + } + if (content.Contains("Port")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Port = (int) content.GetValueForProperty("Port",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Port, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Scheme")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Scheme = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme?) content.GetValueForProperty("Scheme",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Scheme, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ContainerAppProbeHttpGet(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Host")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Host = (string) content.GetValueForProperty("Host",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Host, global::System.Convert.ToString); + } + if (content.Contains("HttpHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).HttpHeader = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem[]) content.GetValueForProperty("HttpHeader",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).HttpHeader, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeHttpGetHttpHeadersItemTypeConverter.ConvertFrom)); + } + if (content.Contains("Path")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Path = (string) content.GetValueForProperty("Path",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Path, global::System.Convert.ToString); + } + if (content.Contains("Port")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Port = (int) content.GetValueForProperty("Port",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Port, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Scheme")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Scheme = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme?) content.GetValueForProperty("Scheme",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal)this).Scheme, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ContainerAppProbeHttpGet(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ContainerAppProbeHttpGet(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// HTTPGet specifies the http request to perform. + [System.ComponentModel.TypeConverter(typeof(ContainerAppProbeHttpGetTypeConverter))] + public partial interface IContainerAppProbeHttpGet + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.TypeConverter.cs new file mode 100644 index 000000000000..50f1fc53c45d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContainerAppProbeHttpGetTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ContainerAppProbeHttpGet.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ContainerAppProbeHttpGet.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ContainerAppProbeHttpGet.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.cs new file mode 100644 index 000000000000..6d2e959c1b7a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.cs @@ -0,0 +1,131 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// HTTPGet specifies the http request to perform. + public partial class ContainerAppProbeHttpGet : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetInternal + { + + /// Backing field for property. + private string _host; + + /// + /// Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Host { get => this._host; set => this._host = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem[] _httpHeader; + + /// Custom headers to set in the request. HTTP allows repeated headers. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem[] HttpHeader { get => this._httpHeader; set => this._httpHeader = value; } + + /// Backing field for property. + private string _path; + + /// Path to access on the HTTP server. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Path { get => this._path; set => this._path = value; } + + /// Backing field for property. + private int _port; + + /// + /// Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int Port { get => this._port; set => this._port = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme? _scheme; + + /// Scheme to use for connecting to the host. Defaults to HTTP. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme? Scheme { get => this._scheme; set => this._scheme = value; } + + /// Creates an new instance. + public ContainerAppProbeHttpGet() + { + + } + } + /// HTTPGet specifies the http request to perform. + public partial interface IContainerAppProbeHttpGet : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Host name to connect to, defaults to the pod IP. You probably want to set ""Host"" in httpHeaders instead.", + SerializedName = @"host", + PossibleTypes = new [] { typeof(string) })] + string Host { get; set; } + /// Custom headers to set in the request. HTTP allows repeated headers. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Custom headers to set in the request. HTTP allows repeated headers.", + SerializedName = @"httpHeaders", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem[] HttpHeader { get; set; } + /// Path to access on the HTTP server. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to access on the HTTP server.", + SerializedName = @"path", + PossibleTypes = new [] { typeof(string) })] + string Path { get; set; } + /// + /// Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", + SerializedName = @"port", + PossibleTypes = new [] { typeof(int) })] + int Port { get; set; } + /// Scheme to use for connecting to the host. Defaults to HTTP. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Scheme to use for connecting to the host. Defaults to HTTP.", + SerializedName = @"scheme", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme? Scheme { get; set; } + + } + /// HTTPGet specifies the http request to perform. + internal partial interface IContainerAppProbeHttpGetInternal + + { + /// + /// Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + /// + string Host { get; set; } + /// Custom headers to set in the request. HTTP allows repeated headers. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem[] HttpHeader { get; set; } + /// Path to access on the HTTP server. + string Path { get; set; } + /// + /// Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + /// + int Port { get; set; } + /// Scheme to use for connecting to the host. Defaults to HTTP. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme? Scheme { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.json.cs new file mode 100644 index 000000000000..622a566a93f5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGet.json.cs @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// HTTPGet specifies the http request to perform. + public partial class ContainerAppProbeHttpGet + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ContainerAppProbeHttpGet(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_host = If( json?.PropertyT("host"), out var __jsonHost) ? (string)__jsonHost : (string)Host;} + {_httpHeader = If( json?.PropertyT("httpHeaders"), out var __jsonHttpHeaders) ? If( __jsonHttpHeaders as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppProbeHttpGetHttpHeadersItem.FromJson(__u) )) ))() : null : HttpHeader;} + {_path = If( json?.PropertyT("path"), out var __jsonPath) ? (string)__jsonPath : (string)Path;} + {_port = If( json?.PropertyT("port"), out var __jsonPort) ? (int)__jsonPort : Port;} + {_scheme = If( json?.PropertyT("scheme"), out var __jsonScheme) ? (string)__jsonScheme : (string)Scheme;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGet FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ContainerAppProbeHttpGet(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._host)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._host.ToString()) : null, "host" ,container.Add ); + if (null != this._httpHeader) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._httpHeader ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("httpHeaders",__w); + } + AddIf( null != (((object)this._path)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._path.ToString()) : null, "path" ,container.Add ); + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber(this._port), "port" ,container.Add ); + AddIf( null != (((object)this._scheme)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._scheme.ToString()) : null, "scheme" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.PowerShell.cs new file mode 100644 index 000000000000..ce7df9d5e36b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.PowerShell.cs @@ -0,0 +1,157 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// HTTPHeader describes a custom header to be used in HTTP probes + [System.ComponentModel.TypeConverter(typeof(ContainerAppProbeHttpGetHttpHeadersItemTypeConverter))] + public partial class ContainerAppProbeHttpGetHttpHeadersItem + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ContainerAppProbeHttpGetHttpHeadersItem(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItemInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItemInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItemInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItemInternal)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 ContainerAppProbeHttpGetHttpHeadersItem(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItemInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItemInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItemInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItemInternal)this).Value, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ContainerAppProbeHttpGetHttpHeadersItem(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ContainerAppProbeHttpGetHttpHeadersItem(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// HTTPHeader describes a custom header to be used in HTTP probes + [System.ComponentModel.TypeConverter(typeof(ContainerAppProbeHttpGetHttpHeadersItemTypeConverter))] + public partial interface IContainerAppProbeHttpGetHttpHeadersItem + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.TypeConverter.cs new file mode 100644 index 000000000000..795e1d334d54 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.TypeConverter.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContainerAppProbeHttpGetHttpHeadersItemTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ContainerAppProbeHttpGetHttpHeadersItem.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ContainerAppProbeHttpGetHttpHeadersItem.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ContainerAppProbeHttpGetHttpHeadersItem.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.cs new file mode 100644 index 000000000000..470dce658858 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// HTTPHeader describes a custom header to be used in HTTP probes + public partial class ContainerAppProbeHttpGetHttpHeadersItem : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItemInternal + { + + /// Backing field for property. + private string _name; + + /// The header field name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _value; + + /// The header field value + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ContainerAppProbeHttpGetHttpHeadersItem() + { + + } + } + /// HTTPHeader describes a custom header to be used in HTTP probes + public partial interface IContainerAppProbeHttpGetHttpHeadersItem : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The header field name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The header field name", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// The header field value + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The header field value", + SerializedName = @"value", + PossibleTypes = new [] { typeof(string) })] + string Value { get; set; } + + } + /// HTTPHeader describes a custom header to be used in HTTP probes + internal partial interface IContainerAppProbeHttpGetHttpHeadersItemInternal + + { + /// The header field name + string Name { get; set; } + /// The header field value + string Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.json.cs new file mode 100644 index 000000000000..cfc8cf1ee2de --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeHttpGetHttpHeadersItem.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// HTTPHeader describes a custom header to be used in HTTP probes + public partial class ContainerAppProbeHttpGetHttpHeadersItem + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ContainerAppProbeHttpGetHttpHeadersItem(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeHttpGetHttpHeadersItem FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ContainerAppProbeHttpGetHttpHeadersItem(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._value)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.PowerShell.cs new file mode 100644 index 000000000000..163e9689831b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.PowerShell.cs @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported. + /// + [System.ComponentModel.TypeConverter(typeof(ContainerAppProbeTcpSocketTypeConverter))] + public partial class ContainerAppProbeTcpSocket + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ContainerAppProbeTcpSocket(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Host")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocketInternal)this).Host = (string) content.GetValueForProperty("Host",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocketInternal)this).Host, global::System.Convert.ToString); + } + if (content.Contains("Port")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocketInternal)this).Port = (int) content.GetValueForProperty("Port",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocketInternal)this).Port, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ContainerAppProbeTcpSocket(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Host")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocketInternal)this).Host = (string) content.GetValueForProperty("Host",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocketInternal)this).Host, global::System.Convert.ToString); + } + if (content.Contains("Port")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocketInternal)this).Port = (int) content.GetValueForProperty("Port",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocketInternal)this).Port, (__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.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ContainerAppProbeTcpSocket(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ContainerAppProbeTcpSocket(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported. + [System.ComponentModel.TypeConverter(typeof(ContainerAppProbeTcpSocketTypeConverter))] + public partial interface IContainerAppProbeTcpSocket + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.TypeConverter.cs new file mode 100644 index 000000000000..be0c5a75bacc --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContainerAppProbeTcpSocketTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ContainerAppProbeTcpSocket.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ContainerAppProbeTcpSocket.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ContainerAppProbeTcpSocket.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.cs new file mode 100644 index 000000000000..ced81f030305 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.cs @@ -0,0 +1,76 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported. + /// + public partial class ContainerAppProbeTcpSocket : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocketInternal + { + + /// Backing field for property. + private string _host; + + /// Optional: Host name to connect to, defaults to the pod IP. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Host { get => this._host; set => this._host = value; } + + /// Backing field for property. + private int _port; + + /// + /// Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int Port { get => this._port; set => this._port = value; } + + /// Creates an new instance. + public ContainerAppProbeTcpSocket() + { + + } + } + /// TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported. + public partial interface IContainerAppProbeTcpSocket : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Optional: Host name to connect to, defaults to the pod IP. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional: Host name to connect to, defaults to the pod IP.", + SerializedName = @"host", + PossibleTypes = new [] { typeof(string) })] + string Host { get; set; } + /// + /// Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", + SerializedName = @"port", + PossibleTypes = new [] { typeof(int) })] + int Port { get; set; } + + } + /// TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported. + internal partial interface IContainerAppProbeTcpSocketInternal + + { + /// Optional: Host name to connect to, defaults to the pod IP. + string Host { get; set; } + /// + /// Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + /// + int Port { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.json.cs new file mode 100644 index 000000000000..c486af6e90ed --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProbeTcpSocket.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported. + /// + public partial class ContainerAppProbeTcpSocket + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ContainerAppProbeTcpSocket(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_host = If( json?.PropertyT("host"), out var __jsonHost) ? (string)__jsonHost : (string)Host;} + {_port = If( json?.PropertyT("port"), out var __jsonPort) ? (int)__jsonPort : Port;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProbeTcpSocket FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ContainerAppProbeTcpSocket(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._host)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._host.ToString()) : null, "host" ,container.Add ); + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber(this._port), "port" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.PowerShell.cs new file mode 100644 index 000000000000..40bde0ff87ba --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.PowerShell.cs @@ -0,0 +1,474 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// ContainerApp resource specific properties + [System.ComponentModel.TypeConverter(typeof(ContainerAppPropertiesTypeConverter))] + public partial class ContainerAppProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ContainerAppProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Configuration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).Configuration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration) content.GetValueForProperty("Configuration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).Configuration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("Template")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).Template = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate) content.GetValueForProperty("Template",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).Template, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TemplateTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState.CreateFrom); + } + if (content.Contains("ManagedEnvironmentId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ManagedEnvironmentId = (string) content.GetValueForProperty("ManagedEnvironmentId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ManagedEnvironmentId, global::System.Convert.ToString); + } + if (content.Contains("EnvironmentId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).EnvironmentId = (string) content.GetValueForProperty("EnvironmentId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).EnvironmentId, global::System.Convert.ToString); + } + if (content.Contains("WorkloadProfileType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).WorkloadProfileType = (string) content.GetValueForProperty("WorkloadProfileType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).WorkloadProfileType, global::System.Convert.ToString); + } + if (content.Contains("LatestRevisionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).LatestRevisionName = (string) content.GetValueForProperty("LatestRevisionName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).LatestRevisionName, global::System.Convert.ToString); + } + if (content.Contains("LatestRevisionFqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).LatestRevisionFqdn = (string) content.GetValueForProperty("LatestRevisionFqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).LatestRevisionFqdn, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainVerificationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).CustomDomainVerificationId = (string) content.GetValueForProperty("CustomDomainVerificationId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).CustomDomainVerificationId, global::System.Convert.ToString); + } + if (content.Contains("OutboundIPAddress")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).OutboundIPAddress = (string[]) content.GetValueForProperty("OutboundIPAddress",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).OutboundIPAddress, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("EventStreamEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).EventStreamEndpoint = (string) content.GetValueForProperty("EventStreamEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).EventStreamEndpoint, global::System.Convert.ToString); + } + if (content.Contains("ConfigurationIngress")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationIngress = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress) content.GetValueForProperty("ConfigurationIngress",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationIngress, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IngressTypeConverter.ConvertFrom); + } + if (content.Contains("ConfigurationDapr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationDapr = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr) content.GetValueForProperty("ConfigurationDapr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationDapr, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprTypeConverter.ConvertFrom); + } + if (content.Contains("ConfigurationSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationSecret = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]) content.GetValueForProperty("ConfigurationSecret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationSecret, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SecretTypeConverter.ConvertFrom)); + } + if (content.Contains("ConfigurationRegistry")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationRegistry = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[]) content.GetValueForProperty("ConfigurationRegistry",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationRegistry, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryCredentialsTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateScale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateScale = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale) content.GetValueForProperty("TemplateScale",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateScale, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleTypeConverter.ConvertFrom); + } + if (content.Contains("TemplateRevisionSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateRevisionSuffix = (string) content.GetValueForProperty("TemplateRevisionSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateRevisionSuffix, global::System.Convert.ToString); + } + if (content.Contains("TemplateInitContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateInitContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[]) content.GetValueForProperty("TemplateInitContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateInitContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[]) content.GetValueForProperty("TemplateContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateVolume")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateVolume = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[]) content.GetValueForProperty("TemplateVolume",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateVolume, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeTypeConverter.ConvertFrom)); + } + if (content.Contains("ConfigurationActiveRevisionsMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationActiveRevisionsMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode?) content.GetValueForProperty("ConfigurationActiveRevisionsMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationActiveRevisionsMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode.CreateFrom); + } + if (content.Contains("ConfigurationMaxInactiveRevision")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationMaxInactiveRevision = (int?) content.GetValueForProperty("ConfigurationMaxInactiveRevision",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationMaxInactiveRevision, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressFqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressFqdn = (string) content.GetValueForProperty("IngressFqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressFqdn, global::System.Convert.ToString); + } + if (content.Contains("IngressTargetPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressTargetPort = (int?) content.GetValueForProperty("IngressTargetPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressTargetPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressExposedPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressExposedPort = (int?) content.GetValueForProperty("IngressExposedPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressExposedPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressTraffic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressTraffic = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[]) content.GetValueForProperty("IngressTraffic",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TrafficWeightTypeConverter.ConvertFrom)); + } + if (content.Contains("IngressCustomDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressCustomDomain = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[]) content.GetValueForProperty("IngressCustomDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressCustomDomain, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainTypeConverter.ConvertFrom)); + } + if (content.Contains("DaprAppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprAppId = (string) content.GetValueForProperty("DaprAppId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprAppId, global::System.Convert.ToString); + } + if (content.Contains("DaprAppProtocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprAppProtocol = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol?) content.GetValueForProperty("DaprAppProtocol",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprAppProtocol, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol.CreateFrom); + } + if (content.Contains("DaprAppPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprAppPort = (int?) content.GetValueForProperty("DaprAppPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprAppPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprLogLevel")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprLogLevel = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel?) content.GetValueForProperty("DaprLogLevel",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprLogLevel, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel.CreateFrom); + } + if (content.Contains("ScaleMinReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ScaleMinReplica = (int?) content.GetValueForProperty("ScaleMinReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ScaleMinReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleMaxReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ScaleMaxReplica = (int?) content.GetValueForProperty("ScaleMaxReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ScaleMaxReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ScaleRule = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]) content.GetValueForProperty("ScaleRule",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ScaleRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("IngressExternal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressExternal = (bool?) content.GetValueForProperty("IngressExternal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressExternal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IngressTransport")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressTransport = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod?) content.GetValueForProperty("IngressTransport",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressTransport, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod.CreateFrom); + } + if (content.Contains("IngressAllowInsecure")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressAllowInsecure = (bool?) content.GetValueForProperty("IngressAllowInsecure",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressAllowInsecure, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IngressIPSecurityRestriction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressIPSecurityRestriction = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[]) content.GetValueForProperty("IngressIPSecurityRestriction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressIPSecurityRestriction, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IPSecurityRestrictionRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DaprEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprEnabled = (bool?) content.GetValueForProperty("DaprEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DaprHttpReadBufferSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprHttpReadBufferSize = (int?) content.GetValueForProperty("DaprHttpReadBufferSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprHttpReadBufferSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprHttpMaxRequestSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprHttpMaxRequestSize = (int?) content.GetValueForProperty("DaprHttpMaxRequestSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprHttpMaxRequestSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprEnableApiLogging")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprEnableApiLogging = (bool?) content.GetValueForProperty("DaprEnableApiLogging",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprEnableApiLogging, (__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 ContainerAppProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Configuration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).Configuration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration) content.GetValueForProperty("Configuration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).Configuration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("Template")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).Template = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate) content.GetValueForProperty("Template",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).Template, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TemplateTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState.CreateFrom); + } + if (content.Contains("ManagedEnvironmentId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ManagedEnvironmentId = (string) content.GetValueForProperty("ManagedEnvironmentId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ManagedEnvironmentId, global::System.Convert.ToString); + } + if (content.Contains("EnvironmentId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).EnvironmentId = (string) content.GetValueForProperty("EnvironmentId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).EnvironmentId, global::System.Convert.ToString); + } + if (content.Contains("WorkloadProfileType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).WorkloadProfileType = (string) content.GetValueForProperty("WorkloadProfileType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).WorkloadProfileType, global::System.Convert.ToString); + } + if (content.Contains("LatestRevisionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).LatestRevisionName = (string) content.GetValueForProperty("LatestRevisionName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).LatestRevisionName, global::System.Convert.ToString); + } + if (content.Contains("LatestRevisionFqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).LatestRevisionFqdn = (string) content.GetValueForProperty("LatestRevisionFqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).LatestRevisionFqdn, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainVerificationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).CustomDomainVerificationId = (string) content.GetValueForProperty("CustomDomainVerificationId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).CustomDomainVerificationId, global::System.Convert.ToString); + } + if (content.Contains("OutboundIPAddress")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).OutboundIPAddress = (string[]) content.GetValueForProperty("OutboundIPAddress",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).OutboundIPAddress, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("EventStreamEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).EventStreamEndpoint = (string) content.GetValueForProperty("EventStreamEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).EventStreamEndpoint, global::System.Convert.ToString); + } + if (content.Contains("ConfigurationIngress")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationIngress = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress) content.GetValueForProperty("ConfigurationIngress",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationIngress, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IngressTypeConverter.ConvertFrom); + } + if (content.Contains("ConfigurationDapr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationDapr = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr) content.GetValueForProperty("ConfigurationDapr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationDapr, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprTypeConverter.ConvertFrom); + } + if (content.Contains("ConfigurationSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationSecret = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]) content.GetValueForProperty("ConfigurationSecret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationSecret, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SecretTypeConverter.ConvertFrom)); + } + if (content.Contains("ConfigurationRegistry")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationRegistry = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[]) content.GetValueForProperty("ConfigurationRegistry",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationRegistry, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryCredentialsTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateScale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateScale = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale) content.GetValueForProperty("TemplateScale",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateScale, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleTypeConverter.ConvertFrom); + } + if (content.Contains("TemplateRevisionSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateRevisionSuffix = (string) content.GetValueForProperty("TemplateRevisionSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateRevisionSuffix, global::System.Convert.ToString); + } + if (content.Contains("TemplateInitContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateInitContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[]) content.GetValueForProperty("TemplateInitContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateInitContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[]) content.GetValueForProperty("TemplateContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateVolume")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateVolume = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[]) content.GetValueForProperty("TemplateVolume",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).TemplateVolume, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeTypeConverter.ConvertFrom)); + } + if (content.Contains("ConfigurationActiveRevisionsMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationActiveRevisionsMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode?) content.GetValueForProperty("ConfigurationActiveRevisionsMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationActiveRevisionsMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode.CreateFrom); + } + if (content.Contains("ConfigurationMaxInactiveRevision")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationMaxInactiveRevision = (int?) content.GetValueForProperty("ConfigurationMaxInactiveRevision",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ConfigurationMaxInactiveRevision, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressFqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressFqdn = (string) content.GetValueForProperty("IngressFqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressFqdn, global::System.Convert.ToString); + } + if (content.Contains("IngressTargetPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressTargetPort = (int?) content.GetValueForProperty("IngressTargetPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressTargetPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressExposedPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressExposedPort = (int?) content.GetValueForProperty("IngressExposedPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressExposedPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressTraffic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressTraffic = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[]) content.GetValueForProperty("IngressTraffic",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TrafficWeightTypeConverter.ConvertFrom)); + } + if (content.Contains("IngressCustomDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressCustomDomain = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[]) content.GetValueForProperty("IngressCustomDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressCustomDomain, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainTypeConverter.ConvertFrom)); + } + if (content.Contains("DaprAppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprAppId = (string) content.GetValueForProperty("DaprAppId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprAppId, global::System.Convert.ToString); + } + if (content.Contains("DaprAppProtocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprAppProtocol = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol?) content.GetValueForProperty("DaprAppProtocol",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprAppProtocol, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol.CreateFrom); + } + if (content.Contains("DaprAppPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprAppPort = (int?) content.GetValueForProperty("DaprAppPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprAppPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprLogLevel")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprLogLevel = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel?) content.GetValueForProperty("DaprLogLevel",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprLogLevel, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel.CreateFrom); + } + if (content.Contains("ScaleMinReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ScaleMinReplica = (int?) content.GetValueForProperty("ScaleMinReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ScaleMinReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleMaxReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ScaleMaxReplica = (int?) content.GetValueForProperty("ScaleMaxReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ScaleMaxReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ScaleRule = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]) content.GetValueForProperty("ScaleRule",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).ScaleRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("IngressExternal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressExternal = (bool?) content.GetValueForProperty("IngressExternal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressExternal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IngressTransport")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressTransport = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod?) content.GetValueForProperty("IngressTransport",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressTransport, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod.CreateFrom); + } + if (content.Contains("IngressAllowInsecure")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressAllowInsecure = (bool?) content.GetValueForProperty("IngressAllowInsecure",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressAllowInsecure, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IngressIPSecurityRestriction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressIPSecurityRestriction = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[]) content.GetValueForProperty("IngressIPSecurityRestriction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).IngressIPSecurityRestriction, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IPSecurityRestrictionRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DaprEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprEnabled = (bool?) content.GetValueForProperty("DaprEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DaprHttpReadBufferSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprHttpReadBufferSize = (int?) content.GetValueForProperty("DaprHttpReadBufferSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprHttpReadBufferSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprHttpMaxRequestSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprHttpMaxRequestSize = (int?) content.GetValueForProperty("DaprHttpMaxRequestSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprHttpMaxRequestSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DaprEnableApiLogging")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprEnableApiLogging = (bool?) content.GetValueForProperty("DaprEnableApiLogging",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal)this).DaprEnableApiLogging, (__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.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ContainerAppProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ContainerAppProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// ContainerApp resource specific properties + [System.ComponentModel.TypeConverter(typeof(ContainerAppPropertiesTypeConverter))] + public partial interface IContainerAppProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.TypeConverter.cs new file mode 100644 index 000000000000..d95e51e909a6 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContainerAppPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ContainerAppProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ContainerAppProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ContainerAppProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.cs new file mode 100644 index 000000000000..b685977e5868 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.cs @@ -0,0 +1,694 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// ContainerApp resource specific properties + public partial class ContainerAppProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration _configuration; + + /// Non versioned Container App configuration properties. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration Configuration { get => (this._configuration = this._configuration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Configuration()); set => this._configuration = value; } + + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app: + /// Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + /// Revision weights can not be used in this mode. If no value if provided, this is the default. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode? ConfigurationActiveRevisionsMode { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).ActiveRevisionsMode; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).ActiveRevisionsMode = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode)""); } + + /// Optional. Max inactive revisions a Container App can have. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? ConfigurationMaxInactiveRevision { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).MaxInactiveRevision; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).MaxInactiveRevision = value ?? default(int); } + + /// + /// Collection of private container registry credentials for containers used by the Container app + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] ConfigurationRegistry { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).Registry; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).Registry = value ?? null /* arrayOf */; } + + /// Collection of secrets used by a Container app + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] ConfigurationSecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).Secret; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).Secret = value ?? null /* arrayOf */; } + + /// Backing field for property. + private string _customDomainVerificationId; + + /// Id used to verify domain name ownership + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string CustomDomainVerificationId { get => this._customDomainVerificationId; } + + /// Dapr application identifier + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DaprAppId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprAppId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprAppId = value ?? null; } + + /// Tells Dapr which port your application is listening on + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? DaprAppPort { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprAppPort; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprAppPort = value ?? default(int); } + + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol? DaprAppProtocol { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprAppProtocol; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprAppProtocol = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol)""); } + + /// Enables API logging for the Dapr sidecar + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? DaprEnableApiLogging { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprEnableApiLogging; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprEnableApiLogging = value ?? default(bool); } + + /// Boolean indicating if the Dapr side car is enabled + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? DaprEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprEnabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprEnabled = value ?? default(bool); } + + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? DaprHttpMaxRequestSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprHttpMaxRequestSize; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprHttpMaxRequestSize = value ?? default(int); } + + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? DaprHttpReadBufferSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprHttpReadBufferSize; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprHttpReadBufferSize = value ?? default(int); } + + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel? DaprLogLevel { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprLogLevel; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).DaprLogLevel = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel)""); } + + /// Backing field for property. + private string _environmentId; + + /// Resource ID of environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string EnvironmentId { get => this._environmentId; set => this._environmentId = value; } + + /// Backing field for property. + private string _eventStreamEndpoint; + + /// The endpoint of the eventstream of the container app. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string EventStreamEndpoint { get => this._eventStreamEndpoint; } + + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? IngressAllowInsecure { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressAllowInsecure; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressAllowInsecure = value ?? default(bool); } + + /// custom domain bindings for Container Apps' hostnames. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] IngressCustomDomain { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressCustomDomain; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressCustomDomain = value ?? null /* arrayOf */; } + + /// Exposed Port in containers for TCP traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? IngressExposedPort { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressExposedPort; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressExposedPort = value ?? default(int); } + + /// Bool indicating if app exposes an external http endpoint + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? IngressExternal { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressExternal; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressExternal = value ?? default(bool); } + + /// Hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string IngressFqdn { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressFqdn; } + + /// Rules to restrict incoming IP address. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IngressIPSecurityRestriction { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressIPSecurityRestriction; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressIPSecurityRestriction = value ?? null /* arrayOf */; } + + /// Target Port in containers for traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? IngressTargetPort { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressTargetPort; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressTargetPort = value ?? default(int); } + + /// Traffic weights for app's revisions + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] IngressTraffic { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressTraffic; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressTraffic = value ?? null /* arrayOf */; } + + /// Ingress transport protocol + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod? IngressTransport { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressTransport; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressTransport = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod)""); } + + /// Backing field for property. + private string _latestRevisionFqdn; + + /// Fully Qualified Domain Name of the latest revision of the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string LatestRevisionFqdn { get => this._latestRevisionFqdn; } + + /// Backing field for property. + private string _latestRevisionName; + + /// Name of the latest revision of the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string LatestRevisionName { get => this._latestRevisionName; } + + /// Backing field for property. + private string _managedEnvironmentId; + + /// Deprecated. Resource ID of the Container App's environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ManagedEnvironmentId { get => this._managedEnvironmentId; set => this._managedEnvironmentId = value; } + + /// Internal Acessors for Configuration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal.Configuration { get => (this._configuration = this._configuration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Configuration()); set { {_configuration = value;} } } + + /// Internal Acessors for ConfigurationDapr + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal.ConfigurationDapr { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).Dapr; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).Dapr = value; } + + /// Internal Acessors for ConfigurationIngress + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal.ConfigurationIngress { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).Ingress; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).Ingress = value; } + + /// Internal Acessors for CustomDomainVerificationId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal.CustomDomainVerificationId { get => this._customDomainVerificationId; set { {_customDomainVerificationId = value;} } } + + /// Internal Acessors for EventStreamEndpoint + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal.EventStreamEndpoint { get => this._eventStreamEndpoint; set { {_eventStreamEndpoint = value;} } } + + /// Internal Acessors for IngressFqdn + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal.IngressFqdn { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressFqdn; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfigurationInternal)Configuration).IngressFqdn = value; } + + /// Internal Acessors for LatestRevisionFqdn + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal.LatestRevisionFqdn { get => this._latestRevisionFqdn; set { {_latestRevisionFqdn = value;} } } + + /// Internal Acessors for LatestRevisionName + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal.LatestRevisionName { get => this._latestRevisionName; set { {_latestRevisionName = value;} } } + + /// Internal Acessors for OutboundIPAddress + string[] Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal.OutboundIPAddress { get => this._outboundIPAddress; set { {_outboundIPAddress = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for Template + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal.Template { get => (this._template = this._template ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Template()); set { {_template = value;} } } + + /// Internal Acessors for TemplateScale + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppPropertiesInternal.TemplateScale { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).Scale; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).Scale = value; } + + /// Backing field for property. + private string[] _outboundIPAddress; + + /// Outbound IP Addresses for container app. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] OutboundIPAddress { get => this._outboundIPAddress; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState? _provisioningState; + + /// Provisioning state of the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? ScaleMaxReplica { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).ScaleMaxReplica; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).ScaleMaxReplica = value ?? default(int); } + + /// Optional. Minimum number of container replicas. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? ScaleMinReplica { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).ScaleMinReplica; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).ScaleMinReplica = value ?? default(int); } + + /// Scaling rules. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).ScaleRule; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).ScaleRule = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate _template; + + /// Container App versioned application definition. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate Template { get => (this._template = this._template ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Template()); set => this._template = value; } + + /// List of container definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).Container; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).Container = value ?? null /* arrayOf */; } + + /// List of specialized containers that run before app containers. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).InitContainer; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).InitContainer = value ?? null /* arrayOf */; } + + /// User friendly suffix that is appended to the revision name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string TemplateRevisionSuffix { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).RevisionSuffix; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).RevisionSuffix = value ?? null; } + + /// List of volume definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).Volume; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).Volume = value ?? null /* arrayOf */; } + + /// Backing field for property. + private string _workloadProfileType; + + /// Workload profile type to pin for container app execution. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string WorkloadProfileType { get => this._workloadProfileType; set => this._workloadProfileType = value; } + + /// Creates an new instance. + public ContainerAppProperties() + { + + } + } + /// ContainerApp resource specific properties + public partial interface IContainerAppProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app: + /// Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + /// Revision weights can not be used in this mode. If no value if provided, this is the default. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ActiveRevisionsMode controls how active revisions are handled for the Container app: + Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. Revision weights can not be used in this mode. If no value if provided, this is the default.", + SerializedName = @"activeRevisionsMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode? ConfigurationActiveRevisionsMode { get; set; } + /// Optional. Max inactive revisions a Container App can have. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Max inactive revisions a Container App can have.", + SerializedName = @"maxInactiveRevisions", + PossibleTypes = new [] { typeof(int) })] + int? ConfigurationMaxInactiveRevision { get; set; } + /// + /// Collection of private container registry credentials for containers used by the Container app + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of private container registry credentials for containers used by the Container app", + SerializedName = @"registries", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] ConfigurationRegistry { get; set; } + /// Collection of secrets used by a Container app + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of secrets used by a Container app", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] ConfigurationSecret { get; set; } + /// Id used to verify domain name ownership + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Id used to verify domain name ownership", + SerializedName = @"customDomainVerificationId", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainVerificationId { get; } + /// Dapr application identifier + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dapr application identifier", + SerializedName = @"appId", + PossibleTypes = new [] { typeof(string) })] + string DaprAppId { get; set; } + /// Tells Dapr which port your application is listening on + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tells Dapr which port your application is listening on", + SerializedName = @"appPort", + PossibleTypes = new [] { typeof(int) })] + int? DaprAppPort { get; set; } + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http", + SerializedName = @"appProtocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol? DaprAppProtocol { get; set; } + /// Enables API logging for the Dapr sidecar + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enables API logging for the Dapr sidecar", + SerializedName = @"enableApiLogging", + PossibleTypes = new [] { typeof(bool) })] + bool? DaprEnableApiLogging { get; set; } + /// Boolean indicating if the Dapr side car is enabled + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean indicating if the Dapr side car is enabled", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? DaprEnabled { get; set; } + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is 4 MB.", + SerializedName = @"httpMaxRequestSize", + PossibleTypes = new [] { typeof(int) })] + int? DaprHttpMaxRequestSize { get; set; } + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB.", + SerializedName = @"httpReadBufferSize", + PossibleTypes = new [] { typeof(int) })] + int? DaprHttpReadBufferSize { get; set; } + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info.", + SerializedName = @"logLevel", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel? DaprLogLevel { get; set; } + /// Resource ID of environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of environment.", + SerializedName = @"environmentId", + PossibleTypes = new [] { typeof(string) })] + string EnvironmentId { get; set; } + /// The endpoint of the eventstream of the container app. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The endpoint of the eventstream of the container app.", + SerializedName = @"eventStreamEndpoint", + PossibleTypes = new [] { typeof(string) })] + string EventStreamEndpoint { get; } + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS connections", + SerializedName = @"allowInsecure", + PossibleTypes = new [] { typeof(bool) })] + bool? IngressAllowInsecure { get; set; } + /// custom domain bindings for Container Apps' hostnames. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"custom domain bindings for Container Apps' hostnames.", + SerializedName = @"customDomains", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] IngressCustomDomain { get; set; } + /// Exposed Port in containers for TCP traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Exposed Port in containers for TCP traffic from ingress", + SerializedName = @"exposedPort", + PossibleTypes = new [] { typeof(int) })] + int? IngressExposedPort { get; set; } + /// Bool indicating if app exposes an external http endpoint + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Bool indicating if app exposes an external http endpoint", + SerializedName = @"external", + PossibleTypes = new [] { typeof(bool) })] + bool? IngressExternal { get; set; } + /// Hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Hostname.", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + string IngressFqdn { get; } + /// Rules to restrict incoming IP address. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Rules to restrict incoming IP address.", + SerializedName = @"ipSecurityRestrictions", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IngressIPSecurityRestriction { get; set; } + /// Target Port in containers for traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Target Port in containers for traffic from ingress", + SerializedName = @"targetPort", + PossibleTypes = new [] { typeof(int) })] + int? IngressTargetPort { get; set; } + /// Traffic weights for app's revisions + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Traffic weights for app's revisions", + SerializedName = @"traffic", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] IngressTraffic { get; set; } + /// Ingress transport protocol + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress transport protocol", + SerializedName = @"transport", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod? IngressTransport { get; set; } + /// Fully Qualified Domain Name of the latest revision of the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Fully Qualified Domain Name of the latest revision of the Container App.", + SerializedName = @"latestRevisionFqdn", + PossibleTypes = new [] { typeof(string) })] + string LatestRevisionFqdn { get; } + /// Name of the latest revision of the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the latest revision of the Container App.", + SerializedName = @"latestRevisionName", + PossibleTypes = new [] { typeof(string) })] + string LatestRevisionName { get; } + /// Deprecated. Resource ID of the Container App's environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Deprecated. Resource ID of the Container App's environment.", + SerializedName = @"managedEnvironmentId", + PossibleTypes = new [] { typeof(string) })] + string ManagedEnvironmentId { get; set; } + /// Outbound IP Addresses for container app. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Outbound IP Addresses for container app.", + SerializedName = @"outboundIPAddresses", + PossibleTypes = new [] { typeof(string) })] + string[] OutboundIPAddress { get; } + /// Provisioning state of the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Container App.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState? ProvisioningState { get; } + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Maximum number of container replicas. Defaults to 10 if not set.", + SerializedName = @"maxReplicas", + PossibleTypes = new [] { typeof(int) })] + int? ScaleMaxReplica { get; set; } + /// Optional. Minimum number of container replicas. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Minimum number of container replicas.", + SerializedName = @"minReplicas", + PossibleTypes = new [] { typeof(int) })] + int? ScaleMinReplica { get; set; } + /// Scaling rules. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Scaling rules.", + SerializedName = @"rules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get; set; } + /// List of container definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of container definitions for the Container App.", + SerializedName = @"containers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get; set; } + /// List of specialized containers that run before app containers. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of specialized containers that run before app containers.", + SerializedName = @"initContainers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get; set; } + /// User friendly suffix that is appended to the revision name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly suffix that is appended to the revision name", + SerializedName = @"revisionSuffix", + PossibleTypes = new [] { typeof(string) })] + string TemplateRevisionSuffix { get; set; } + /// List of volume definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of volume definitions for the Container App.", + SerializedName = @"volumes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get; set; } + /// Workload profile type to pin for container app execution. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Workload profile type to pin for container app execution.", + SerializedName = @"workloadProfileType", + PossibleTypes = new [] { typeof(string) })] + string WorkloadProfileType { get; set; } + + } + /// ContainerApp resource specific properties + internal partial interface IContainerAppPropertiesInternal + + { + /// Non versioned Container App configuration properties. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConfiguration Configuration { get; set; } + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app: + /// Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + /// Revision weights can not be used in this mode. If no value if provided, this is the default. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode? ConfigurationActiveRevisionsMode { get; set; } + /// Dapr configuration for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr ConfigurationDapr { get; set; } + /// Ingress configurations. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress ConfigurationIngress { get; set; } + /// Optional. Max inactive revisions a Container App can have. + int? ConfigurationMaxInactiveRevision { get; set; } + /// + /// Collection of private container registry credentials for containers used by the Container app + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] ConfigurationRegistry { get; set; } + /// Collection of secrets used by a Container app + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] ConfigurationSecret { get; set; } + /// Id used to verify domain name ownership + string CustomDomainVerificationId { get; set; } + /// Dapr application identifier + string DaprAppId { get; set; } + /// Tells Dapr which port your application is listening on + int? DaprAppPort { get; set; } + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol? DaprAppProtocol { get; set; } + /// Enables API logging for the Dapr sidecar + bool? DaprEnableApiLogging { get; set; } + /// Boolean indicating if the Dapr side car is enabled + bool? DaprEnabled { get; set; } + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + int? DaprHttpMaxRequestSize { get; set; } + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + int? DaprHttpReadBufferSize { get; set; } + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel? DaprLogLevel { get; set; } + /// Resource ID of environment. + string EnvironmentId { get; set; } + /// The endpoint of the eventstream of the container app. + string EventStreamEndpoint { get; set; } + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + bool? IngressAllowInsecure { get; set; } + /// custom domain bindings for Container Apps' hostnames. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] IngressCustomDomain { get; set; } + /// Exposed Port in containers for TCP traffic from ingress + int? IngressExposedPort { get; set; } + /// Bool indicating if app exposes an external http endpoint + bool? IngressExternal { get; set; } + /// Hostname. + string IngressFqdn { get; set; } + /// Rules to restrict incoming IP address. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IngressIPSecurityRestriction { get; set; } + /// Target Port in containers for traffic from ingress + int? IngressTargetPort { get; set; } + /// Traffic weights for app's revisions + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] IngressTraffic { get; set; } + /// Ingress transport protocol + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod? IngressTransport { get; set; } + /// Fully Qualified Domain Name of the latest revision of the Container App. + string LatestRevisionFqdn { get; set; } + /// Name of the latest revision of the Container App. + string LatestRevisionName { get; set; } + /// Deprecated. Resource ID of the Container App's environment. + string ManagedEnvironmentId { get; set; } + /// Outbound IP Addresses for container app. + string[] OutboundIPAddress { get; set; } + /// Provisioning state of the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState? ProvisioningState { get; set; } + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + int? ScaleMaxReplica { get; set; } + /// Optional. Minimum number of container replicas. + int? ScaleMinReplica { get; set; } + /// Scaling rules. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get; set; } + /// Container App versioned application definition. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate Template { get; set; } + /// List of container definitions for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get; set; } + /// List of specialized containers that run before app containers. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get; set; } + /// User friendly suffix that is appended to the revision name + string TemplateRevisionSuffix { get; set; } + /// Scaling properties for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale TemplateScale { get; set; } + /// List of volume definitions for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get; set; } + /// Workload profile type to pin for container app execution. + string WorkloadProfileType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.json.cs new file mode 100644 index 000000000000..6c3a2b395674 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppProperties.json.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// ContainerApp resource specific properties + public partial class ContainerAppProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ContainerAppProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_configuration = If( json?.PropertyT("configuration"), out var __jsonConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Configuration.FromJson(__jsonConfiguration) : Configuration;} + {_template = If( json?.PropertyT("template"), out var __jsonTemplate) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Template.FromJson(__jsonTemplate) : Template;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_managedEnvironmentId = If( json?.PropertyT("managedEnvironmentId"), out var __jsonManagedEnvironmentId) ? (string)__jsonManagedEnvironmentId : (string)ManagedEnvironmentId;} + {_environmentId = If( json?.PropertyT("environmentId"), out var __jsonEnvironmentId) ? (string)__jsonEnvironmentId : (string)EnvironmentId;} + {_workloadProfileType = If( json?.PropertyT("workloadProfileType"), out var __jsonWorkloadProfileType) ? (string)__jsonWorkloadProfileType : (string)WorkloadProfileType;} + {_latestRevisionName = If( json?.PropertyT("latestRevisionName"), out var __jsonLatestRevisionName) ? (string)__jsonLatestRevisionName : (string)LatestRevisionName;} + {_latestRevisionFqdn = If( json?.PropertyT("latestRevisionFqdn"), out var __jsonLatestRevisionFqdn) ? (string)__jsonLatestRevisionFqdn : (string)LatestRevisionFqdn;} + {_customDomainVerificationId = If( json?.PropertyT("customDomainVerificationId"), out var __jsonCustomDomainVerificationId) ? (string)__jsonCustomDomainVerificationId : (string)CustomDomainVerificationId;} + {_outboundIPAddress = If( json?.PropertyT("outboundIPAddresses"), out var __jsonOutboundIPAddresses) ? If( __jsonOutboundIPAddresses as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : OutboundIPAddress;} + {_eventStreamEndpoint = If( json?.PropertyT("eventStreamEndpoint"), out var __jsonEventStreamEndpoint) ? (string)__jsonEventStreamEndpoint : (string)EventStreamEndpoint;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ContainerAppProperties(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._configuration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._configuration.ToJson(null,serializationMode) : null, "configuration" ,container.Add ); + AddIf( null != this._template ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._template.ToJson(null,serializationMode) : null, "template" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != (((object)this._managedEnvironmentId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._managedEnvironmentId.ToString()) : null, "managedEnvironmentId" ,container.Add ); + AddIf( null != (((object)this._environmentId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._environmentId.ToString()) : null, "environmentId" ,container.Add ); + AddIf( null != (((object)this._workloadProfileType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._workloadProfileType.ToString()) : null, "workloadProfileType" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._latestRevisionName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._latestRevisionName.ToString()) : null, "latestRevisionName" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._latestRevisionFqdn)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._latestRevisionFqdn.ToString()) : null, "latestRevisionFqdn" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._customDomainVerificationId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._customDomainVerificationId.ToString()) : null, "customDomainVerificationId" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._outboundIPAddress) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._outboundIPAddress ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("outboundIPAddresses",__w); + } + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._eventStreamEndpoint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._eventStreamEndpoint.ToString()) : null, "eventStreamEndpoint" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.PowerShell.cs new file mode 100644 index 000000000000..2b710755834c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App Secret. + [System.ComponentModel.TypeConverter(typeof(ContainerAppSecretTypeConverter))] + public partial class ContainerAppSecret + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ContainerAppSecret(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecretInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecretInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecretInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecretInternal)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 ContainerAppSecret(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecretInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecretInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecretInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecretInternal)this).Value, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ContainerAppSecret(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ContainerAppSecret(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App Secret. + [System.ComponentModel.TypeConverter(typeof(ContainerAppSecretTypeConverter))] + public partial interface IContainerAppSecret + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.TypeConverter.cs new file mode 100644 index 000000000000..fc4dd14a9d0a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContainerAppSecretTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ContainerAppSecret.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ContainerAppSecret.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ContainerAppSecret.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.cs new file mode 100644 index 000000000000..4b3da46260f3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Secret. + public partial class ContainerAppSecret : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecretInternal + { + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecretInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Value + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecretInternal.Value { get => this._value; set { {_value = value;} } } + + /// Backing field for property. + private string _name; + + /// Secret Name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _value; + + /// Secret Value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Value { get => this._value; } + + /// Creates an new instance. + public ContainerAppSecret() + { + + } + } + /// Container App Secret. + public partial interface IContainerAppSecret : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Secret Name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Secret Name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// Secret Value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Secret Value.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(string) })] + string Value { get; } + + } + /// Container App Secret. + internal partial interface IContainerAppSecretInternal + + { + /// Secret Name. + string Name { get; set; } + /// Secret Value. + string Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.json.cs new file mode 100644 index 000000000000..95d22b52d5a0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerAppSecret.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Secret. + public partial class ContainerAppSecret + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ContainerAppSecret(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ContainerAppSecret(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._value)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ContainerResources.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.PowerShell.cs new file mode 100644 index 000000000000..519327e99fb8 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App container resource requirements. + [System.ComponentModel.TypeConverter(typeof(ContainerResourcesTypeConverter))] + public partial class ContainerResources + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ContainerResources(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)this).Cpu = (double?) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)this).Cpu, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)this).Memory, global::System.Convert.ToString); + } + if (content.Contains("EphemeralStorage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)this).EphemeralStorage = (string) content.GetValueForProperty("EphemeralStorage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)this).EphemeralStorage, 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 ContainerResources(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)this).Cpu = (double?) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)this).Cpu, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)this).Memory, global::System.Convert.ToString); + } + if (content.Contains("EphemeralStorage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)this).EphemeralStorage = (string) content.GetValueForProperty("EphemeralStorage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal)this).EphemeralStorage, 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.ContainerAppsApi.Models.Api20221101Preview.IContainerResources DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ContainerResources(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ContainerResources(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App container resource requirements. + [System.ComponentModel.TypeConverter(typeof(ContainerResourcesTypeConverter))] + public partial interface IContainerResources + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.TypeConverter.cs new file mode 100644 index 000000000000..02ade9dac2e8 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContainerResourcesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ContainerResources.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ContainerResources.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ContainerResources.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.cs new file mode 100644 index 000000000000..d8c02acbfafd --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.cs @@ -0,0 +1,88 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container resource requirements. + public partial class ContainerResources : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal + { + + /// Backing field for property. + private double? _cpu; + + /// Required CPU in cores, e.g. 0.5 + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public double? Cpu { get => this._cpu; set => this._cpu = value; } + + /// Backing field for property. + private string _ephemeralStorage; + + /// Ephemeral Storage, e.g. "1Gi" + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string EphemeralStorage { get => this._ephemeralStorage; } + + /// Backing field for property. + private string _memory; + + /// Required memory, e.g. "250Mb" + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Memory { get => this._memory; set => this._memory = value; } + + /// Internal Acessors for EphemeralStorage + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResourcesInternal.EphemeralStorage { get => this._ephemeralStorage; set { {_ephemeralStorage = value;} } } + + /// Creates an new instance. + public ContainerResources() + { + + } + } + /// Container App container resource requirements. + public partial interface IContainerResources : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Required CPU in cores, e.g. 0.5 + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Required CPU in cores, e.g. 0.5", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(double) })] + double? Cpu { get; set; } + /// Ephemeral Storage, e.g. "1Gi" + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Ephemeral Storage, e.g. ""1Gi""", + SerializedName = @"ephemeralStorage", + PossibleTypes = new [] { typeof(string) })] + string EphemeralStorage { get; } + /// Required memory, e.g. "250Mb" + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Required memory, e.g. ""250Mb""", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string Memory { get; set; } + + } + /// Container App container resource requirements. + internal partial interface IContainerResourcesInternal + + { + /// Required CPU in cores, e.g. 0.5 + double? Cpu { get; set; } + /// Ephemeral Storage, e.g. "1Gi" + string EphemeralStorage { get; set; } + /// Required memory, e.g. "250Mb" + string Memory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.json.cs new file mode 100644 index 000000000000..4c2b65d01b80 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ContainerResources.json.cs @@ -0,0 +1,115 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container resource requirements. + public partial class ContainerResources + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ContainerResources(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_cpu = If( json?.PropertyT("cpu"), out var __jsonCpu) ? (double?)__jsonCpu : Cpu;} + {_memory = If( json?.PropertyT("memory"), out var __jsonMemory) ? (string)__jsonMemory : (string)Memory;} + {_ephemeralStorage = If( json?.PropertyT("ephemeralStorage"), out var __jsonEphemeralStorage) ? (string)__jsonEphemeralStorage : (string)EphemeralStorage;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ContainerResources(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._cpu ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((double)this._cpu) : null, "cpu" ,container.Add ); + AddIf( null != (((object)this._memory)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._memory.ToString()) : null, "memory" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._ephemeralStorage)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._ephemeralStorage.ToString()) : null, "ephemeralStorage" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.PowerShell.cs new file mode 100644 index 000000000000..edc8cc66e37b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the session cookie's expiration. + [System.ComponentModel.TypeConverter(typeof(CookieExpirationTypeConverter))] + public partial class CookieExpiration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 CookieExpiration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Convention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpirationInternal)this).Convention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention?) content.GetValueForProperty("Convention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpirationInternal)this).Convention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention.CreateFrom); + } + if (content.Contains("TimeToExpiration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpirationInternal)this).TimeToExpiration = (string) content.GetValueForProperty("TimeToExpiration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpirationInternal)this).TimeToExpiration, 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 CookieExpiration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Convention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpirationInternal)this).Convention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention?) content.GetValueForProperty("Convention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpirationInternal)this).Convention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention.CreateFrom); + } + if (content.Contains("TimeToExpiration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpirationInternal)this).TimeToExpiration = (string) content.GetValueForProperty("TimeToExpiration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpirationInternal)this).TimeToExpiration, 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.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CookieExpiration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CookieExpiration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the session cookie's expiration. + [System.ComponentModel.TypeConverter(typeof(CookieExpirationTypeConverter))] + public partial interface ICookieExpiration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.TypeConverter.cs new file mode 100644 index 000000000000..d05479d9cde0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CookieExpirationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CookieExpiration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CookieExpiration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CookieExpiration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.cs new file mode 100644 index 000000000000..cb8505d9e5ea --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the session cookie's expiration. + public partial class CookieExpiration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpirationInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention? _convention; + + /// The convention used when determining the session cookie's expiration. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention? Convention { get => this._convention; set => this._convention = value; } + + /// Backing field for property. + private string _timeToExpiration; + + /// The time after the request is made when the session cookie should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string TimeToExpiration { get => this._timeToExpiration; set => this._timeToExpiration = value; } + + /// Creates an new instance. + public CookieExpiration() + { + + } + } + /// The configuration settings of the session cookie's expiration. + public partial interface ICookieExpiration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The convention used when determining the session cookie's expiration. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The convention used when determining the session cookie's expiration.", + SerializedName = @"convention", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention? Convention { get; set; } + /// The time after the request is made when the session cookie should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time after the request is made when the session cookie should expire.", + SerializedName = @"timeToExpiration", + PossibleTypes = new [] { typeof(string) })] + string TimeToExpiration { get; set; } + + } + /// The configuration settings of the session cookie's expiration. + internal partial interface ICookieExpirationInternal + + { + /// The convention used when determining the session cookie's expiration. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention? Convention { get; set; } + /// The time after the request is made when the session cookie should expire. + string TimeToExpiration { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.json.cs new file mode 100644 index 000000000000..302f09a8f8ef --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CookieExpiration.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the session cookie's expiration. + public partial class CookieExpiration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal CookieExpiration(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_convention = If( json?.PropertyT("convention"), out var __jsonConvention) ? (string)__jsonConvention : (string)Convention;} + {_timeToExpiration = If( json?.PropertyT("timeToExpiration"), out var __jsonTimeToExpiration) ? (string)__jsonTimeToExpiration : (string)TimeToExpiration;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new CookieExpiration(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._convention)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._convention.ToString()) : null, "convention" ,container.Add ); + AddIf( null != (((object)this._timeToExpiration)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._timeToExpiration.ToString()) : null, "timeToExpiration" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.PowerShell.cs new file mode 100644 index 000000000000..ec51f8aebc02 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Custom Domain of a Container App + [System.ComponentModel.TypeConverter(typeof(CustomDomainTypeConverter))] + public partial class CustomDomain + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 CustomDomain(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("BindingType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainInternal)this).BindingType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType?) content.GetValueForProperty("BindingType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainInternal)this).BindingType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType.CreateFrom); + } + if (content.Contains("CertificateId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainInternal)this).CertificateId = (string) content.GetValueForProperty("CertificateId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainInternal)this).CertificateId, 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 CustomDomain(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("BindingType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainInternal)this).BindingType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType?) content.GetValueForProperty("BindingType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainInternal)this).BindingType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType.CreateFrom); + } + if (content.Contains("CertificateId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainInternal)this).CertificateId = (string) content.GetValueForProperty("CertificateId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainInternal)this).CertificateId, 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.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomDomain(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomDomain(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Custom Domain of a Container App + [System.ComponentModel.TypeConverter(typeof(CustomDomainTypeConverter))] + public partial interface ICustomDomain + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.TypeConverter.cs new file mode 100644 index 000000000000..5b21f79b4763 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomDomainTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomDomain.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomDomain.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomDomain.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.cs new file mode 100644 index 000000000000..fcf8d29b0fd7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.cs @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Custom Domain of a Container App + public partial class CustomDomain : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType? _bindingType; + + /// Custom Domain binding type. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType? BindingType { get => this._bindingType; set => this._bindingType = value; } + + /// Backing field for property. + private string _certificateId; + + /// + /// Resource Id of the Certificate to be bound to this hostname. Must exist in the Managed Environment. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string CertificateId { get => this._certificateId; set => this._certificateId = value; } + + /// Backing field for property. + private string _name; + + /// Hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Creates an new instance. + public CustomDomain() + { + + } + } + /// Custom Domain of a Container App + public partial interface ICustomDomain : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Custom Domain binding type. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Custom Domain binding type.", + SerializedName = @"bindingType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType? BindingType { get; set; } + /// + /// Resource Id of the Certificate to be bound to this hostname. Must exist in the Managed Environment. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Resource Id of the Certificate to be bound to this hostname. Must exist in the Managed Environment.", + SerializedName = @"certificateId", + PossibleTypes = new [] { typeof(string) })] + string CertificateId { get; set; } + /// Hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Hostname.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + + } + /// Custom Domain of a Container App + internal partial interface ICustomDomainInternal + + { + /// Custom Domain binding type. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType? BindingType { get; set; } + /// + /// Resource Id of the Certificate to be bound to this hostname. Must exist in the Managed Environment. + /// + string CertificateId { get; set; } + /// Hostname. + string Name { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.json.cs new file mode 100644 index 000000000000..b29e2db8a3e3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomain.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Custom Domain of a Container App + public partial class CustomDomain + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal CustomDomain(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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;} + {_bindingType = If( json?.PropertyT("bindingType"), out var __jsonBindingType) ? (string)__jsonBindingType : (string)BindingType;} + {_certificateId = If( json?.PropertyT("certificateId"), out var __jsonCertificateId) ? (string)__jsonCertificateId : (string)CertificateId;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new CustomDomain(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._bindingType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._bindingType.ToString()) : null, "bindingType" ,container.Add ); + AddIf( null != (((object)this._certificateId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._certificateId.ToString()) : null, "certificateId" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.PowerShell.cs new file mode 100644 index 000000000000..3aed2c08ead8 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.PowerShell.cs @@ -0,0 +1,194 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Configuration properties for apps environment custom domain + [System.ComponentModel.TypeConverter(typeof(CustomDomainConfigurationTypeConverter))] + public partial class CustomDomainConfiguration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 CustomDomainConfiguration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CustomDomainVerificationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).CustomDomainVerificationId = (string) content.GetValueForProperty("CustomDomainVerificationId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).CustomDomainVerificationId, global::System.Convert.ToString); + } + if (content.Contains("DnsSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).DnsSuffix = (string) content.GetValueForProperty("DnsSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).DnsSuffix, global::System.Convert.ToString); + } + if (content.Contains("CertificateValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).CertificateValue = (byte[]) content.GetValueForProperty("CertificateValue",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).CertificateValue, i => i); + } + if (content.Contains("CertificatePassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).CertificatePassword = (byte[]) content.GetValueForProperty("CertificatePassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).CertificatePassword, i => i); + } + if (content.Contains("ExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).ExpirationDate = (global::System.DateTime?) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).ExpirationDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).SubjectName, 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 CustomDomainConfiguration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CustomDomainVerificationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).CustomDomainVerificationId = (string) content.GetValueForProperty("CustomDomainVerificationId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).CustomDomainVerificationId, global::System.Convert.ToString); + } + if (content.Contains("DnsSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).DnsSuffix = (string) content.GetValueForProperty("DnsSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).DnsSuffix, global::System.Convert.ToString); + } + if (content.Contains("CertificateValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).CertificateValue = (byte[]) content.GetValueForProperty("CertificateValue",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).CertificateValue, i => i); + } + if (content.Contains("CertificatePassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).CertificatePassword = (byte[]) content.GetValueForProperty("CertificatePassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).CertificatePassword, i => i); + } + if (content.Contains("ExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).ExpirationDate = (global::System.DateTime?) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).ExpirationDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)this).SubjectName, 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.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomDomainConfiguration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomDomainConfiguration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Configuration properties for apps environment custom domain + [System.ComponentModel.TypeConverter(typeof(CustomDomainConfigurationTypeConverter))] + public partial interface ICustomDomainConfiguration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.TypeConverter.cs new file mode 100644 index 000000000000..f092e614d37c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomDomainConfigurationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomDomainConfiguration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomDomainConfiguration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomDomainConfiguration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.cs new file mode 100644 index 000000000000..e58ce1797111 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.cs @@ -0,0 +1,165 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Configuration properties for apps environment custom domain + public partial class CustomDomainConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal + { + + /// Backing field for property. + private byte[] _certificatePassword; + + /// Certificate password + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public byte[] CertificatePassword { get => this._certificatePassword; set => this._certificatePassword = value; } + + /// Backing field for property. + private byte[] _certificateValue; + + /// PFX or PEM blob + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public byte[] CertificateValue { get => this._certificateValue; set => this._certificateValue = value; } + + /// Backing field for property. + private string _customDomainVerificationId; + + /// Id used to verify domain name ownership + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string CustomDomainVerificationId { get => this._customDomainVerificationId; } + + /// Backing field for property. + private string _dnsSuffix; + + /// Dns suffix for the environment domain + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string DnsSuffix { get => this._dnsSuffix; set => this._dnsSuffix = value; } + + /// Backing field for property. + private global::System.DateTime? _expirationDate; + + /// Certificate expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public global::System.DateTime? ExpirationDate { get => this._expirationDate; } + + /// Internal Acessors for CustomDomainVerificationId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal.CustomDomainVerificationId { get => this._customDomainVerificationId; set { {_customDomainVerificationId = value;} } } + + /// Internal Acessors for ExpirationDate + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal.ExpirationDate { get => this._expirationDate; set { {_expirationDate = value;} } } + + /// Internal Acessors for SubjectName + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal.SubjectName { get => this._subjectName; set { {_subjectName = value;} } } + + /// Internal Acessors for Thumbprint + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal.Thumbprint { get => this._thumbprint; set { {_thumbprint = value;} } } + + /// Backing field for property. + private string _subjectName; + + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string SubjectName { get => this._subjectName; } + + /// Backing field for property. + private string _thumbprint; + + /// Certificate thumbprint. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Thumbprint { get => this._thumbprint; } + + /// Creates an new instance. + public CustomDomainConfiguration() + { + + } + } + /// Configuration properties for apps environment custom domain + public partial interface ICustomDomainConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Certificate password + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Certificate password", + SerializedName = @"certificatePassword", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] CertificatePassword { get; set; } + /// PFX or PEM blob + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"PFX or PEM blob", + SerializedName = @"certificateValue", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] CertificateValue { get; set; } + /// Id used to verify domain name ownership + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Id used to verify domain name ownership", + SerializedName = @"customDomainVerificationId", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainVerificationId { get; } + /// Dns suffix for the environment domain + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dns suffix for the environment domain", + SerializedName = @"dnsSuffix", + PossibleTypes = new [] { typeof(string) })] + string DnsSuffix { get; set; } + /// Certificate expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate expiration date.", + SerializedName = @"expirationDate", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationDate { get; } + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Subject name of the certificate.", + SerializedName = @"subjectName", + PossibleTypes = new [] { typeof(string) })] + string SubjectName { get; } + /// Certificate thumbprint. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate thumbprint.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string Thumbprint { get; } + + } + /// Configuration properties for apps environment custom domain + internal partial interface ICustomDomainConfigurationInternal + + { + /// Certificate password + byte[] CertificatePassword { get; set; } + /// PFX or PEM blob + byte[] CertificateValue { get; set; } + /// Id used to verify domain name ownership + string CustomDomainVerificationId { get; set; } + /// Dns suffix for the environment domain + string DnsSuffix { get; set; } + /// Certificate expiration date. + global::System.DateTime? ExpirationDate { get; set; } + /// Subject name of the certificate. + string SubjectName { get; set; } + /// Certificate thumbprint. + string Thumbprint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.json.cs new file mode 100644 index 000000000000..6fe0f472a79d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomDomainConfiguration.json.cs @@ -0,0 +1,132 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Configuration properties for apps environment custom domain + public partial class CustomDomainConfiguration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal CustomDomainConfiguration(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_customDomainVerificationId = If( json?.PropertyT("customDomainVerificationId"), out var __jsonCustomDomainVerificationId) ? (string)__jsonCustomDomainVerificationId : (string)CustomDomainVerificationId;} + {_dnsSuffix = If( json?.PropertyT("dnsSuffix"), out var __jsonDnsSuffix) ? (string)__jsonDnsSuffix : (string)DnsSuffix;} + {_certificateValue = If( json?.PropertyT("certificateValue"), out var __w) ? System.Convert.FromBase64String( ((string)__w).Replace("_","/").Replace("-","+").PadRight( ((string)__w).Length + ((string)__w).Length * 3 % 4, '=') ) : null;} + {_certificatePassword = If( json?.PropertyT("certificatePassword"), out var __u) ? System.Convert.FromBase64String( ((string)__u).Replace("_","/").Replace("-","+").PadRight( ((string)__u).Length + ((string)__u).Length * 3 % 4, '=') ) : null;} + {_expirationDate = If( json?.PropertyT("expirationDate"), out var __jsonExpirationDate) ? global::System.DateTime.TryParse((string)__jsonExpirationDate, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonExpirationDateValue) ? __jsonExpirationDateValue : ExpirationDate : ExpirationDate;} + {_thumbprint = If( json?.PropertyT("thumbprint"), out var __jsonThumbprint) ? (string)__jsonThumbprint : (string)Thumbprint;} + {_subjectName = If( json?.PropertyT("subjectName"), out var __jsonSubjectName) ? (string)__jsonSubjectName : (string)SubjectName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new CustomDomainConfiguration(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._customDomainVerificationId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._customDomainVerificationId.ToString()) : null, "customDomainVerificationId" ,container.Add ); + } + AddIf( null != (((object)this._dnsSuffix)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._dnsSuffix.ToString()) : null, "dnsSuffix" ,container.Add ); + AddIf( null != this._certificateValue ? global::System.Convert.ToBase64String( this._certificateValue) : null ,(v)=> container.Add( "certificateValue",v) ); + AddIf( null != this._certificatePassword ? global::System.Convert.ToBase64String( this._certificatePassword) : null ,(v)=> container.Add( "certificatePassword",v) ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._expirationDate ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._expirationDate?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "expirationDate" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._thumbprint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._thumbprint.ToString()) : null, "thumbprint" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._subjectName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._subjectName.ToString()) : null, "subjectName" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.PowerShell.cs new file mode 100644 index 000000000000..b291b795053e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.PowerShell.cs @@ -0,0 +1,266 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Custom domain analysis. + [System.ComponentModel.TypeConverter(typeof(CustomHostnameAnalysisResultTypeConverter))] + public partial class CustomHostnameAnalysisResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 CustomHostnameAnalysisResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CustomDomainVerificationFailureInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfo = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo) content.GetValueForProperty("CustomDomainVerificationFailureInfo",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfo, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoTypeConverter.ConvertFrom); + } + if (content.Contains("HostName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).HostName = (string) content.GetValueForProperty("HostName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).HostName, global::System.Convert.ToString); + } + if (content.Contains("IsHostnameAlreadyVerified")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).IsHostnameAlreadyVerified = (bool?) content.GetValueForProperty("IsHostnameAlreadyVerified",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).IsHostnameAlreadyVerified, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("CustomDomainVerificationTest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationTest = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult?) content.GetValueForProperty("CustomDomainVerificationTest",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationTest, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult.CreateFrom); + } + if (content.Contains("HasConflictOnManagedEnvironment")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).HasConflictOnManagedEnvironment = (bool?) content.GetValueForProperty("HasConflictOnManagedEnvironment",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).HasConflictOnManagedEnvironment, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ConflictWithEnvironmentCustomDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).ConflictWithEnvironmentCustomDomain = (bool?) content.GetValueForProperty("ConflictWithEnvironmentCustomDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).ConflictWithEnvironmentCustomDomain, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ConflictingContainerAppResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).ConflictingContainerAppResourceId = (string) content.GetValueForProperty("ConflictingContainerAppResourceId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).ConflictingContainerAppResourceId, global::System.Convert.ToString); + } + if (content.Contains("CNameRecord")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CNameRecord = (string[]) content.GetValueForProperty("CNameRecord",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CNameRecord, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TxtRecord")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).TxtRecord = (string[]) content.GetValueForProperty("TxtRecord",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).TxtRecord, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ARecord")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).ARecord = (string[]) content.GetValueForProperty("ARecord",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).ARecord, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AlternateCNameRecord")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).AlternateCNameRecord = (string[]) content.GetValueForProperty("AlternateCNameRecord",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).AlternateCNameRecord, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AlternateTxtRecord")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).AlternateTxtRecord = (string[]) content.GetValueForProperty("AlternateTxtRecord",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).AlternateTxtRecord, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CustomDomainVerificationFailureInfoCode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoCode = (string) content.GetValueForProperty("CustomDomainVerificationFailureInfoCode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoCode, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainVerificationFailureInfoMessage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoMessage = (string) content.GetValueForProperty("CustomDomainVerificationFailureInfoMessage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoMessage, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainVerificationFailureInfoTarget")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoTarget = (string) content.GetValueForProperty("CustomDomainVerificationFailureInfoTarget",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoTarget, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainVerificationFailureInfoDetail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoDetail = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem[]) content.GetValueForProperty("CustomDomainVerificationFailureInfoDetail",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoDetail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal CustomHostnameAnalysisResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CustomDomainVerificationFailureInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfo = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo) content.GetValueForProperty("CustomDomainVerificationFailureInfo",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfo, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoTypeConverter.ConvertFrom); + } + if (content.Contains("HostName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).HostName = (string) content.GetValueForProperty("HostName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).HostName, global::System.Convert.ToString); + } + if (content.Contains("IsHostnameAlreadyVerified")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).IsHostnameAlreadyVerified = (bool?) content.GetValueForProperty("IsHostnameAlreadyVerified",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).IsHostnameAlreadyVerified, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("CustomDomainVerificationTest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationTest = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult?) content.GetValueForProperty("CustomDomainVerificationTest",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationTest, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult.CreateFrom); + } + if (content.Contains("HasConflictOnManagedEnvironment")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).HasConflictOnManagedEnvironment = (bool?) content.GetValueForProperty("HasConflictOnManagedEnvironment",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).HasConflictOnManagedEnvironment, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ConflictWithEnvironmentCustomDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).ConflictWithEnvironmentCustomDomain = (bool?) content.GetValueForProperty("ConflictWithEnvironmentCustomDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).ConflictWithEnvironmentCustomDomain, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ConflictingContainerAppResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).ConflictingContainerAppResourceId = (string) content.GetValueForProperty("ConflictingContainerAppResourceId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).ConflictingContainerAppResourceId, global::System.Convert.ToString); + } + if (content.Contains("CNameRecord")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CNameRecord = (string[]) content.GetValueForProperty("CNameRecord",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CNameRecord, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TxtRecord")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).TxtRecord = (string[]) content.GetValueForProperty("TxtRecord",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).TxtRecord, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ARecord")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).ARecord = (string[]) content.GetValueForProperty("ARecord",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).ARecord, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AlternateCNameRecord")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).AlternateCNameRecord = (string[]) content.GetValueForProperty("AlternateCNameRecord",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).AlternateCNameRecord, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AlternateTxtRecord")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).AlternateTxtRecord = (string[]) content.GetValueForProperty("AlternateTxtRecord",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).AlternateTxtRecord, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CustomDomainVerificationFailureInfoCode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoCode = (string) content.GetValueForProperty("CustomDomainVerificationFailureInfoCode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoCode, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainVerificationFailureInfoMessage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoMessage = (string) content.GetValueForProperty("CustomDomainVerificationFailureInfoMessage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoMessage, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainVerificationFailureInfoTarget")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoTarget = (string) content.GetValueForProperty("CustomDomainVerificationFailureInfoTarget",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoTarget, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainVerificationFailureInfoDetail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoDetail = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem[]) content.GetValueForProperty("CustomDomainVerificationFailureInfoDetail",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal)this).CustomDomainVerificationFailureInfoDetail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemTypeConverter.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.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomHostnameAnalysisResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomHostnameAnalysisResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Custom domain analysis. + [System.ComponentModel.TypeConverter(typeof(CustomHostnameAnalysisResultTypeConverter))] + public partial interface ICustomHostnameAnalysisResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.TypeConverter.cs new file mode 100644 index 000000000000..103ed614b296 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomHostnameAnalysisResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomHostnameAnalysisResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomHostnameAnalysisResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomHostnameAnalysisResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.cs new file mode 100644 index 000000000000..4e901868b212 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.cs @@ -0,0 +1,340 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Custom domain analysis. + public partial class CustomHostnameAnalysisResult : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal + { + + /// Backing field for property. + private string[] _aRecord; + + /// A records visible for this hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] ARecord { get => this._aRecord; set => this._aRecord = value; } + + /// Backing field for property. + private string[] _alternateCNameRecord; + + /// Alternate CName records visible for this hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] AlternateCNameRecord { get => this._alternateCNameRecord; set => this._alternateCNameRecord = value; } + + /// Backing field for property. + private string[] _alternateTxtRecord; + + /// Alternate TXT records visible for this hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] AlternateTxtRecord { get => this._alternateTxtRecord; set => this._alternateTxtRecord = value; } + + /// Backing field for property. + private string[] _cNameRecord; + + /// CName records visible for this hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] CNameRecord { get => this._cNameRecord; set => this._cNameRecord = value; } + + /// Backing field for property. + private bool? _conflictWithEnvironmentCustomDomain; + + /// + /// true if there is a conflict on the Container App's managed environment level custom domain; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? ConflictWithEnvironmentCustomDomain { get => this._conflictWithEnvironmentCustomDomain; } + + /// Backing field for property. + private string _conflictingContainerAppResourceId; + + /// + /// Name of the conflicting Container App on the Managed Environment if it's within the same subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ConflictingContainerAppResourceId { get => this._conflictingContainerAppResourceId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo _customDomainVerificationFailureInfo; + + /// Raw failure information if DNS verification fails. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo CustomDomainVerificationFailureInfo { get => (this._customDomainVerificationFailureInfo = this._customDomainVerificationFailureInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo()); } + + /// Standardized string to programmatically identify the error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainVerificationFailureInfoCode { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)CustomDomainVerificationFailureInfo).Code; } + + /// Details or the error + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem[] CustomDomainVerificationFailureInfoDetail { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)CustomDomainVerificationFailureInfo).Detail; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)CustomDomainVerificationFailureInfo).Detail = value ?? null /* arrayOf */; } + + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainVerificationFailureInfoMessage { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)CustomDomainVerificationFailureInfo).Message; } + + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainVerificationFailureInfoTarget { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)CustomDomainVerificationFailureInfo).Target; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult? _customDomainVerificationTest; + + /// DNS verification test result. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult? CustomDomainVerificationTest { get => this._customDomainVerificationTest; } + + /// Backing field for property. + private bool? _hasConflictOnManagedEnvironment; + + /// + /// true if there is a conflict on the Container App's managed environment; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? HasConflictOnManagedEnvironment { get => this._hasConflictOnManagedEnvironment; } + + /// Backing field for property. + private string _hostName; + + /// Host name that was analyzed + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string HostName { get => this._hostName; } + + /// Backing field for property. + private bool? _isHostnameAlreadyVerified; + + /// + /// true if hostname is already verified; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? IsHostnameAlreadyVerified { get => this._isHostnameAlreadyVerified; } + + /// Internal Acessors for ConflictWithEnvironmentCustomDomain + bool? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal.ConflictWithEnvironmentCustomDomain { get => this._conflictWithEnvironmentCustomDomain; set { {_conflictWithEnvironmentCustomDomain = value;} } } + + /// Internal Acessors for ConflictingContainerAppResourceId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal.ConflictingContainerAppResourceId { get => this._conflictingContainerAppResourceId; set { {_conflictingContainerAppResourceId = value;} } } + + /// Internal Acessors for CustomDomainVerificationFailureInfo + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal.CustomDomainVerificationFailureInfo { get => (this._customDomainVerificationFailureInfo = this._customDomainVerificationFailureInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo()); set { {_customDomainVerificationFailureInfo = value;} } } + + /// Internal Acessors for CustomDomainVerificationFailureInfoCode + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal.CustomDomainVerificationFailureInfoCode { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)CustomDomainVerificationFailureInfo).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)CustomDomainVerificationFailureInfo).Code = value; } + + /// Internal Acessors for CustomDomainVerificationFailureInfoMessage + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal.CustomDomainVerificationFailureInfoMessage { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)CustomDomainVerificationFailureInfo).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)CustomDomainVerificationFailureInfo).Message = value; } + + /// Internal Acessors for CustomDomainVerificationFailureInfoTarget + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal.CustomDomainVerificationFailureInfoTarget { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)CustomDomainVerificationFailureInfo).Target; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)CustomDomainVerificationFailureInfo).Target = value; } + + /// Internal Acessors for CustomDomainVerificationTest + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal.CustomDomainVerificationTest { get => this._customDomainVerificationTest; set { {_customDomainVerificationTest = value;} } } + + /// Internal Acessors for HasConflictOnManagedEnvironment + bool? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal.HasConflictOnManagedEnvironment { get => this._hasConflictOnManagedEnvironment; set { {_hasConflictOnManagedEnvironment = value;} } } + + /// Internal Acessors for HostName + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal.HostName { get => this._hostName; set { {_hostName = value;} } } + + /// Internal Acessors for IsHostnameAlreadyVerified + bool? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultInternal.IsHostnameAlreadyVerified { get => this._isHostnameAlreadyVerified; set { {_isHostnameAlreadyVerified = value;} } } + + /// Backing field for property. + private string[] _txtRecord; + + /// TXT records visible for this hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] TxtRecord { get => this._txtRecord; set => this._txtRecord = value; } + + /// Creates an new instance. + public CustomHostnameAnalysisResult() + { + + } + } + /// Custom domain analysis. + public partial interface ICustomHostnameAnalysisResult : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// A records visible for this hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A records visible for this hostname.", + SerializedName = @"aRecords", + PossibleTypes = new [] { typeof(string) })] + string[] ARecord { get; set; } + /// Alternate CName records visible for this hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Alternate CName records visible for this hostname.", + SerializedName = @"alternateCNameRecords", + PossibleTypes = new [] { typeof(string) })] + string[] AlternateCNameRecord { get; set; } + /// Alternate TXT records visible for this hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Alternate TXT records visible for this hostname.", + SerializedName = @"alternateTxtRecords", + PossibleTypes = new [] { typeof(string) })] + string[] AlternateTxtRecord { get; set; } + /// CName records visible for this hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"CName records visible for this hostname.", + SerializedName = @"cNameRecords", + PossibleTypes = new [] { typeof(string) })] + string[] CNameRecord { get; set; } + /// + /// true if there is a conflict on the Container App's managed environment level custom domain; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"true if there is a conflict on the Container App's managed environment level custom domain; otherwise, false.", + SerializedName = @"conflictWithEnvironmentCustomDomain", + PossibleTypes = new [] { typeof(bool) })] + bool? ConflictWithEnvironmentCustomDomain { get; } + /// + /// Name of the conflicting Container App on the Managed Environment if it's within the same subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the conflicting Container App on the Managed Environment if it's within the same subscription.", + SerializedName = @"conflictingContainerAppResourceId", + PossibleTypes = new [] { typeof(string) })] + string ConflictingContainerAppResourceId { get; } + /// Standardized string to programmatically identify the error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Standardized string to programmatically identify the error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainVerificationFailureInfoCode { get; } + /// Details or the error + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Details or the error", + SerializedName = @"details", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem[] CustomDomainVerificationFailureInfoDetail { get; set; } + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Detailed error description and debugging information.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainVerificationFailureInfoMessage { get; } + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Detailed error description and debugging information.", + SerializedName = @"target", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainVerificationFailureInfoTarget { get; } + /// DNS verification test result. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"DNS verification test result.", + SerializedName = @"customDomainVerificationTest", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult? CustomDomainVerificationTest { get; } + /// + /// true if there is a conflict on the Container App's managed environment; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"true if there is a conflict on the Container App's managed environment; otherwise, false.", + SerializedName = @"hasConflictOnManagedEnvironment", + PossibleTypes = new [] { typeof(bool) })] + bool? HasConflictOnManagedEnvironment { get; } + /// Host name that was analyzed + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Host name that was analyzed", + SerializedName = @"hostName", + PossibleTypes = new [] { typeof(string) })] + string HostName { get; } + /// + /// true if hostname is already verified; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"true if hostname is already verified; otherwise, false.", + SerializedName = @"isHostnameAlreadyVerified", + PossibleTypes = new [] { typeof(bool) })] + bool? IsHostnameAlreadyVerified { get; } + /// TXT records visible for this hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"TXT records visible for this hostname.", + SerializedName = @"txtRecords", + PossibleTypes = new [] { typeof(string) })] + string[] TxtRecord { get; set; } + + } + /// Custom domain analysis. + internal partial interface ICustomHostnameAnalysisResultInternal + + { + /// A records visible for this hostname. + string[] ARecord { get; set; } + /// Alternate CName records visible for this hostname. + string[] AlternateCNameRecord { get; set; } + /// Alternate TXT records visible for this hostname. + string[] AlternateTxtRecord { get; set; } + /// CName records visible for this hostname. + string[] CNameRecord { get; set; } + /// + /// true if there is a conflict on the Container App's managed environment level custom domain; otherwise, false. + /// + bool? ConflictWithEnvironmentCustomDomain { get; set; } + /// + /// Name of the conflicting Container App on the Managed Environment if it's within the same subscription. + /// + string ConflictingContainerAppResourceId { get; set; } + /// Raw failure information if DNS verification fails. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo CustomDomainVerificationFailureInfo { get; set; } + /// Standardized string to programmatically identify the error. + string CustomDomainVerificationFailureInfoCode { get; set; } + /// Details or the error + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem[] CustomDomainVerificationFailureInfoDetail { get; set; } + /// Detailed error description and debugging information. + string CustomDomainVerificationFailureInfoMessage { get; set; } + /// Detailed error description and debugging information. + string CustomDomainVerificationFailureInfoTarget { get; set; } + /// DNS verification test result. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult? CustomDomainVerificationTest { get; set; } + /// + /// true if there is a conflict on the Container App's managed environment; otherwise, false. + /// + bool? HasConflictOnManagedEnvironment { get; set; } + /// Host name that was analyzed + string HostName { get; set; } + /// + /// true if hostname is already verified; otherwise, false. + /// + bool? IsHostnameAlreadyVerified { get; set; } + /// TXT records visible for this hostname. + string[] TxtRecord { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.json.cs new file mode 100644 index 000000000000..71d88a028322 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResult.json.cs @@ -0,0 +1,191 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Custom domain analysis. + public partial class CustomHostnameAnalysisResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal CustomHostnameAnalysisResult(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_customDomainVerificationFailureInfo = If( json?.PropertyT("customDomainVerificationFailureInfo"), out var __jsonCustomDomainVerificationFailureInfo) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.FromJson(__jsonCustomDomainVerificationFailureInfo) : CustomDomainVerificationFailureInfo;} + {_hostName = If( json?.PropertyT("hostName"), out var __jsonHostName) ? (string)__jsonHostName : (string)HostName;} + {_isHostnameAlreadyVerified = If( json?.PropertyT("isHostnameAlreadyVerified"), out var __jsonIsHostnameAlreadyVerified) ? (bool?)__jsonIsHostnameAlreadyVerified : IsHostnameAlreadyVerified;} + {_customDomainVerificationTest = If( json?.PropertyT("customDomainVerificationTest"), out var __jsonCustomDomainVerificationTest) ? (string)__jsonCustomDomainVerificationTest : (string)CustomDomainVerificationTest;} + {_hasConflictOnManagedEnvironment = If( json?.PropertyT("hasConflictOnManagedEnvironment"), out var __jsonHasConflictOnManagedEnvironment) ? (bool?)__jsonHasConflictOnManagedEnvironment : HasConflictOnManagedEnvironment;} + {_conflictWithEnvironmentCustomDomain = If( json?.PropertyT("conflictWithEnvironmentCustomDomain"), out var __jsonConflictWithEnvironmentCustomDomain) ? (bool?)__jsonConflictWithEnvironmentCustomDomain : ConflictWithEnvironmentCustomDomain;} + {_conflictingContainerAppResourceId = If( json?.PropertyT("conflictingContainerAppResourceId"), out var __jsonConflictingContainerAppResourceId) ? (string)__jsonConflictingContainerAppResourceId : (string)ConflictingContainerAppResourceId;} + {_cNameRecord = If( json?.PropertyT("cNameRecords"), out var __jsonCNameRecords) ? If( __jsonCNameRecords as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : CNameRecord;} + {_txtRecord = If( json?.PropertyT("txtRecords"), out var __jsonTxtRecords) ? If( __jsonTxtRecords as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : TxtRecord;} + {_aRecord = If( json?.PropertyT("aRecords"), out var __jsonARecords) ? If( __jsonARecords as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonArray, out var __l) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__l, (__k)=>(string) (__k is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString __j ? (string)(__j.ToString()) : null)) ))() : null : ARecord;} + {_alternateCNameRecord = If( json?.PropertyT("alternateCNameRecords"), out var __jsonAlternateCNameRecords) ? If( __jsonAlternateCNameRecords as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonArray, out var __g) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__g, (__f)=>(string) (__f is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString __e ? (string)(__e.ToString()) : null)) ))() : null : AlternateCNameRecord;} + {_alternateTxtRecord = If( json?.PropertyT("alternateTxtRecords"), out var __jsonAlternateTxtRecords) ? If( __jsonAlternateTxtRecords as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonArray, out var __b) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__b, (__a)=>(string) (__a is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString ___z ? (string)(___z.ToString()) : null)) ))() : null : AlternateTxtRecord;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new CustomHostnameAnalysisResult(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._customDomainVerificationFailureInfo ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._customDomainVerificationFailureInfo.ToJson(null,serializationMode) : null, "customDomainVerificationFailureInfo" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._hostName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._hostName.ToString()) : null, "hostName" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._isHostnameAlreadyVerified ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._isHostnameAlreadyVerified) : null, "isHostnameAlreadyVerified" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._customDomainVerificationTest)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._customDomainVerificationTest.ToString()) : null, "customDomainVerificationTest" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._hasConflictOnManagedEnvironment ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._hasConflictOnManagedEnvironment) : null, "hasConflictOnManagedEnvironment" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._conflictWithEnvironmentCustomDomain ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._conflictWithEnvironmentCustomDomain) : null, "conflictWithEnvironmentCustomDomain" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._conflictingContainerAppResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._conflictingContainerAppResourceId.ToString()) : null, "conflictingContainerAppResourceId" ,container.Add ); + } + if (null != this._cNameRecord) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._cNameRecord ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("cNameRecords",__w); + } + if (null != this._txtRecord) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._txtRecord ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("txtRecords",__r); + } + if (null != this._aRecord) + { + var __m = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __n in this._aRecord ) + { + AddIf(null != (((object)__n)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__n.ToString()) : null ,__m.Add); + } + container.Add("aRecords",__m); + } + if (null != this._alternateCNameRecord) + { + var __h = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __i in this._alternateCNameRecord ) + { + AddIf(null != (((object)__i)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__i.ToString()) : null ,__h.Add); + } + container.Add("alternateCNameRecords",__h); + } + if (null != this._alternateTxtRecord) + { + var __c = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __d in this._alternateTxtRecord ) + { + AddIf(null != (((object)__d)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__d.ToString()) : null ,__c.Add); + } + container.Add("alternateTxtRecords",__c); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.PowerShell.cs new file mode 100644 index 000000000000..a16f8fa9c88e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.PowerShell.cs @@ -0,0 +1,173 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Raw failure information if DNS verification fails. + [System.ComponentModel.TypeConverter(typeof(CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoTypeConverter))] + public partial class CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemTypeConverter.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.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo(content); + } + + /// + /// Creates a new instance of , deserializing + /// the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Raw failure information if DNS verification fails. + [System.ComponentModel.TypeConverter(typeof(CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoTypeConverter))] + public partial interface ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.TypeConverter.cs new file mode 100644 index 000000000000..1d42520cbb5f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.TypeConverter.cs @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there + /// is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there + /// is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.cs new file mode 100644 index 000000000000..87aabc1b1314 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Raw failure information if DNS verification fails. + public partial class CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal + { + + /// Backing field for property. + private string _code; + + /// Standardized string to programmatically identify the error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Code { get => this._code; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem[] _detail; + + /// Details or the error + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem[] Detail { get => this._detail; set => this._detail = value; } + + /// Backing field for property. + private string _message; + + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Message { get => this._message; } + + /// Internal Acessors for Code + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal.Code { get => this._code; set { {_code = value;} } } + + /// Internal Acessors for Message + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal.Message { get => this._message; set { {_message = value;} } } + + /// Internal Acessors for Target + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal.Target { get => this._target; set { {_target = value;} } } + + /// Backing field for property. + private string _target; + + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Target { get => this._target; } + + /// + /// Creates an new instance. + /// + public CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo() + { + + } + } + /// Raw failure information if DNS verification fails. + public partial interface ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Standardized string to programmatically identify the error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Standardized string to programmatically identify the error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; } + /// Details or the error + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Details or the error", + SerializedName = @"details", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem[] Detail { get; set; } + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Detailed error description and debugging information.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; } + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Detailed error description and debugging information.", + SerializedName = @"target", + PossibleTypes = new [] { typeof(string) })] + string Target { get; } + + } + /// Raw failure information if DNS verification fails. + internal partial interface ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoInternal + + { + /// Standardized string to programmatically identify the error. + string Code { get; set; } + /// Details or the error + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem[] Detail { get; set; } + /// Detailed error description and debugging information. + string Message { get; set; } + /// Detailed error description and debugging information. + string Target { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.json.cs new file mode 100644 index 000000000000..d6bc3ab91d20 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo.json.cs @@ -0,0 +1,134 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Raw failure information if DNS verification fails. + public partial class CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.FromJson(__u) )) ))() : null : Detail;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._code)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._code.ToString()) : null, "code" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._message.ToString()) : null, "message" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._target)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._target.ToString()) : null, "target" ,container.Add ); + } + if (null != this._detail) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.PowerShell.cs new file mode 100644 index 000000000000..9275f08bca7b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.PowerShell.cs @@ -0,0 +1,165 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Detailed errors. + [System.ComponentModel.TypeConverter(typeof(CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemTypeConverter))] + public partial class CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal)this).Target, 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 CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal)this).Target, 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.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem(content); + } + + /// + /// Creates a new instance of , deserializing + /// the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Detailed errors. + [System.ComponentModel.TypeConverter(typeof(CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemTypeConverter))] + public partial interface ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.TypeConverter.cs new file mode 100644 index 000000000000..e1056ed91c55 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.TypeConverter.cs @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null + /// if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null + /// if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.cs new file mode 100644 index 000000000000..054b765dad30 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.cs @@ -0,0 +1,96 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Detailed errors. + public partial class CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal + { + + /// Backing field for property. + private string _code; + + /// Standardized string to programmatically identify the error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Code { get => this._code; } + + /// Backing field for property. + private string _message; + + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Message { get => this._message; } + + /// Internal Acessors for Code + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal.Code { get => this._code; set { {_code = value;} } } + + /// Internal Acessors for Message + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal.Message { get => this._message; set { {_message = value;} } } + + /// Internal Acessors for Target + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal.Target { get => this._target; set { {_target = value;} } } + + /// Backing field for property. + private string _target; + + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Target { get => this._target; } + + /// + /// Creates an new instance. + /// + public CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem() + { + + } + } + /// Detailed errors. + public partial interface ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Standardized string to programmatically identify the error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Standardized string to programmatically identify the error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; } + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Detailed error description and debugging information.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; } + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Detailed error description and debugging information.", + SerializedName = @"target", + PossibleTypes = new [] { typeof(string) })] + string Target { get; } + + } + /// Detailed errors. + internal partial interface ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItemInternal + + { + /// Standardized string to programmatically identify the error. + string Code { get; set; } + /// Detailed error description and debugging information. + string Message { get; set; } + /// Detailed error description and debugging information. + string Target { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.json.cs new file mode 100644 index 000000000000..9ba9d6158482 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem.json.cs @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Detailed errors. + public partial class CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._code)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._code.ToString()) : null, "code" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._message.ToString()) : null, "message" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._target)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._target.ToString()) : null, "target" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.PowerShell.cs new file mode 100644 index 000000000000..e33f5f0c273c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.PowerShell.cs @@ -0,0 +1,258 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the custom Open ID Connect provider. + [System.ComponentModel.TypeConverter(typeof(CustomOpenIdConnectProviderTypeConverter))] + public partial class CustomOpenIdConnectProvider + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 CustomOpenIdConnectProvider(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectLoginTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RegistrationClientCredential")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).RegistrationClientCredential = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential) content.GetValueForProperty("RegistrationClientCredential",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).RegistrationClientCredential, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectClientCredentialTypeConverter.ConvertFrom); + } + if (content.Contains("RegistrationOpenIdConnectConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).RegistrationOpenIdConnectConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig) content.GetValueForProperty("RegistrationOpenIdConnectConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).RegistrationOpenIdConnectConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectConfigTypeConverter.ConvertFrom); + } + if (content.Contains("RegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).RegistrationClientId = (string) content.GetValueForProperty("RegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).RegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientCredentialMethod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).ClientCredentialMethod = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod?) content.GetValueForProperty("ClientCredentialMethod",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).ClientCredentialMethod, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod.CreateFrom); + } + if (content.Contains("LoginNameClaimType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).LoginNameClaimType = (string) content.GetValueForProperty("LoginNameClaimType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).LoginNameClaimType, global::System.Convert.ToString); + } + if (content.Contains("LoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).LoginScope = (string[]) content.GetValueForProperty("LoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).LoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ClientCredentialClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).ClientCredentialClientSecretSettingName = (string) content.GetValueForProperty("ClientCredentialClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).ClientCredentialClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationAuthorizationEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationAuthorizationEndpoint = (string) content.GetValueForProperty("OpenIdConnectConfigurationAuthorizationEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationAuthorizationEndpoint, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationTokenEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationTokenEndpoint = (string) content.GetValueForProperty("OpenIdConnectConfigurationTokenEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationTokenEndpoint, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationIssuer = (string) content.GetValueForProperty("OpenIdConnectConfigurationIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationIssuer, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationCertificationUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationCertificationUri = (string) content.GetValueForProperty("OpenIdConnectConfigurationCertificationUri",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationCertificationUri, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationWellKnownOpenIdConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationWellKnownOpenIdConfiguration = (string) content.GetValueForProperty("OpenIdConnectConfigurationWellKnownOpenIdConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationWellKnownOpenIdConfiguration, 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 CustomOpenIdConnectProvider(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectLoginTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RegistrationClientCredential")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).RegistrationClientCredential = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential) content.GetValueForProperty("RegistrationClientCredential",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).RegistrationClientCredential, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectClientCredentialTypeConverter.ConvertFrom); + } + if (content.Contains("RegistrationOpenIdConnectConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).RegistrationOpenIdConnectConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig) content.GetValueForProperty("RegistrationOpenIdConnectConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).RegistrationOpenIdConnectConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectConfigTypeConverter.ConvertFrom); + } + if (content.Contains("RegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).RegistrationClientId = (string) content.GetValueForProperty("RegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).RegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientCredentialMethod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).ClientCredentialMethod = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod?) content.GetValueForProperty("ClientCredentialMethod",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).ClientCredentialMethod, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod.CreateFrom); + } + if (content.Contains("LoginNameClaimType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).LoginNameClaimType = (string) content.GetValueForProperty("LoginNameClaimType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).LoginNameClaimType, global::System.Convert.ToString); + } + if (content.Contains("LoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).LoginScope = (string[]) content.GetValueForProperty("LoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).LoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ClientCredentialClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).ClientCredentialClientSecretSettingName = (string) content.GetValueForProperty("ClientCredentialClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).ClientCredentialClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationAuthorizationEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationAuthorizationEndpoint = (string) content.GetValueForProperty("OpenIdConnectConfigurationAuthorizationEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationAuthorizationEndpoint, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationTokenEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationTokenEndpoint = (string) content.GetValueForProperty("OpenIdConnectConfigurationTokenEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationTokenEndpoint, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationIssuer = (string) content.GetValueForProperty("OpenIdConnectConfigurationIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationIssuer, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationCertificationUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationCertificationUri = (string) content.GetValueForProperty("OpenIdConnectConfigurationCertificationUri",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationCertificationUri, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationWellKnownOpenIdConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationWellKnownOpenIdConfiguration = (string) content.GetValueForProperty("OpenIdConnectConfigurationWellKnownOpenIdConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal)this).OpenIdConnectConfigurationWellKnownOpenIdConfiguration, 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.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProvider DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomOpenIdConnectProvider(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProvider DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomOpenIdConnectProvider(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProvider FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the custom Open ID Connect provider. + [System.ComponentModel.TypeConverter(typeof(CustomOpenIdConnectProviderTypeConverter))] + public partial interface ICustomOpenIdConnectProvider + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.TypeConverter.cs new file mode 100644 index 000000000000..503cec5ec897 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomOpenIdConnectProviderTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProvider ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProvider).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomOpenIdConnectProvider.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomOpenIdConnectProvider.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomOpenIdConnectProvider.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.cs new file mode 100644 index 000000000000..efa108a47ae8 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.cs @@ -0,0 +1,247 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the custom Open ID Connect provider. + public partial class CustomOpenIdConnectProvider : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProvider, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal + { + + /// + /// The app setting that contains the client secret for the custom Open ID Connect provider. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ClientCredentialClientSecretSettingName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).ClientCredentialClientSecretSettingName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).ClientCredentialClientSecretSettingName = value ?? null; } + + /// The method that should be used to authenticate the user. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod? ClientCredentialMethod { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).ClientCredentialMethod; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).ClientCredentialMethod = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod)""); } + + /// Backing field for property. + private bool? _enabled; + + /// + /// false if the custom Open ID provider provider should not be enabled; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Enabled { get => this._enabled; set => this._enabled = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin _login; + + /// + /// The configuration settings of the login flow of the custom Open ID Connect provider. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin Login { get => (this._login = this._login ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectLogin()); set => this._login = value; } + + /// The name of the claim that contains the users name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string LoginNameClaimType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLoginInternal)Login).NameClaimType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLoginInternal)Login).NameClaimType = value ?? null; } + + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] LoginScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLoginInternal)Login).Scope; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLoginInternal)Login).Scope = value ?? null /* arrayOf */; } + + /// Internal Acessors for Login + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal.Login { get => (this._login = this._login ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectLogin()); set { {_login = value;} } } + + /// Internal Acessors for Registration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal.Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectRegistration()); set { {_registration = value;} } } + + /// Internal Acessors for RegistrationClientCredential + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal.RegistrationClientCredential { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).ClientCredential; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).ClientCredential = value; } + + /// Internal Acessors for RegistrationOpenIdConnectConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProviderInternal.RegistrationOpenIdConnectConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).OpenIdConnectConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).OpenIdConnectConfiguration = value; } + + /// The endpoint to be used to make an authorization request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string OpenIdConnectConfigurationAuthorizationEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).OpenIdConnectConfigurationAuthorizationEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).OpenIdConnectConfigurationAuthorizationEndpoint = value ?? null; } + + /// The endpoint that provides the keys necessary to validate the token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string OpenIdConnectConfigurationCertificationUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).OpenIdConnectConfigurationCertificationUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).OpenIdConnectConfigurationCertificationUri = value ?? null; } + + /// The endpoint that issues the token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string OpenIdConnectConfigurationIssuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).OpenIdConnectConfigurationIssuer; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).OpenIdConnectConfigurationIssuer = value ?? null; } + + /// The endpoint to be used to request a token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string OpenIdConnectConfigurationTokenEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).OpenIdConnectConfigurationTokenEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).OpenIdConnectConfigurationTokenEndpoint = value ?? null; } + + /// The endpoint that contains all the configuration endpoints for the provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string OpenIdConnectConfigurationWellKnownOpenIdConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).OpenIdConnectConfigurationWellKnownOpenIdConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).OpenIdConnectConfigurationWellKnownOpenIdConfiguration = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration _registration; + + /// + /// The configuration settings of the app registration for the custom Open ID Connect provider. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectRegistration()); set => this._registration = value; } + + /// The client id of the custom Open ID Connect provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).ClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)Registration).ClientId = value ?? null; } + + /// Creates an new instance. + public CustomOpenIdConnectProvider() + { + + } + } + /// The configuration settings of the custom Open ID Connect provider. + public partial interface ICustomOpenIdConnectProvider : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// The app setting that contains the client secret for the custom Open ID Connect provider. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting that contains the client secret for the custom Open ID Connect provider.", + SerializedName = @"clientSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string ClientCredentialClientSecretSettingName { get; set; } + /// The method that should be used to authenticate the user. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The method that should be used to authenticate the user.", + SerializedName = @"method", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod? ClientCredentialMethod { get; set; } + /// + /// false if the custom Open ID provider provider should not be enabled; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the custom Open ID provider provider should not be enabled; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? Enabled { get; set; } + /// The name of the claim that contains the users name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the claim that contains the users name.", + SerializedName = @"nameClaimType", + PossibleTypes = new [] { typeof(string) })] + string LoginNameClaimType { get; set; } + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of the scopes that should be requested while authenticating.", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] LoginScope { get; set; } + /// The endpoint to be used to make an authorization request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint to be used to make an authorization request.", + SerializedName = @"authorizationEndpoint", + PossibleTypes = new [] { typeof(string) })] + string OpenIdConnectConfigurationAuthorizationEndpoint { get; set; } + /// The endpoint that provides the keys necessary to validate the token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint that provides the keys necessary to validate the token.", + SerializedName = @"certificationUri", + PossibleTypes = new [] { typeof(string) })] + string OpenIdConnectConfigurationCertificationUri { get; set; } + /// The endpoint that issues the token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint that issues the token.", + SerializedName = @"issuer", + PossibleTypes = new [] { typeof(string) })] + string OpenIdConnectConfigurationIssuer { get; set; } + /// The endpoint to be used to request a token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint to be used to request a token.", + SerializedName = @"tokenEndpoint", + PossibleTypes = new [] { typeof(string) })] + string OpenIdConnectConfigurationTokenEndpoint { get; set; } + /// The endpoint that contains all the configuration endpoints for the provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint that contains all the configuration endpoints for the provider.", + SerializedName = @"wellKnownOpenIdConfiguration", + PossibleTypes = new [] { typeof(string) })] + string OpenIdConnectConfigurationWellKnownOpenIdConfiguration { get; set; } + /// The client id of the custom Open ID Connect provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The client id of the custom Open ID Connect provider.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientId { get; set; } + + } + /// The configuration settings of the custom Open ID Connect provider. + internal partial interface ICustomOpenIdConnectProviderInternal + + { + /// + /// The app setting that contains the client secret for the custom Open ID Connect provider. + /// + string ClientCredentialClientSecretSettingName { get; set; } + /// The method that should be used to authenticate the user. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod? ClientCredentialMethod { get; set; } + /// + /// false if the custom Open ID provider provider should not be enabled; otherwise, true. + /// + bool? Enabled { get; set; } + /// + /// The configuration settings of the login flow of the custom Open ID Connect provider. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin Login { get; set; } + /// The name of the claim that contains the users name. + string LoginNameClaimType { get; set; } + /// A list of the scopes that should be requested while authenticating. + string[] LoginScope { get; set; } + /// The endpoint to be used to make an authorization request. + string OpenIdConnectConfigurationAuthorizationEndpoint { get; set; } + /// The endpoint that provides the keys necessary to validate the token. + string OpenIdConnectConfigurationCertificationUri { get; set; } + /// The endpoint that issues the token. + string OpenIdConnectConfigurationIssuer { get; set; } + /// The endpoint to be used to request a token. + string OpenIdConnectConfigurationTokenEndpoint { get; set; } + /// The endpoint that contains all the configuration endpoints for the provider. + string OpenIdConnectConfigurationWellKnownOpenIdConfiguration { get; set; } + /// + /// The configuration settings of the app registration for the custom Open ID Connect provider. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration Registration { get; set; } + /// The authentication credentials of the custom Open ID Connect provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential RegistrationClientCredential { get; set; } + /// The client id of the custom Open ID Connect provider. + string RegistrationClientId { get; set; } + /// + /// The configuration settings of the endpoints used for the custom Open ID Connect provider. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig RegistrationOpenIdConnectConfiguration { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.json.cs new file mode 100644 index 000000000000..41ce51905200 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomOpenIdConnectProvider.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the custom Open ID Connect provider. + public partial class CustomOpenIdConnectProvider + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal CustomOpenIdConnectProvider(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_registration = If( json?.PropertyT("registration"), out var __jsonRegistration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectRegistration.FromJson(__jsonRegistration) : Registration;} + {_login = If( json?.PropertyT("login"), out var __jsonLogin) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectLogin.FromJson(__jsonLogin) : Login;} + {_enabled = If( json?.PropertyT("enabled"), out var __jsonEnabled) ? (bool?)__jsonEnabled : Enabled;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProvider. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProvider. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProvider FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new CustomOpenIdConnectProvider(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._registration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._registration.ToJson(null,serializationMode) : null, "registration" ,container.Add ); + AddIf( null != this._login ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._login.ToJson(null,serializationMode) : null, "login" ,container.Add ); + AddIf( null != this._enabled ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/CustomScaleRule.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.PowerShell.cs new file mode 100644 index 000000000000..4cc3f3ac6be1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App container Custom scaling rule. + [System.ComponentModel.TypeConverter(typeof(CustomScaleRuleTypeConverter))] + public partial class CustomScaleRule + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 CustomScaleRule(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Metadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)this).Metadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata) content.GetValueForProperty("Metadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)this).Metadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRuleMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("Auth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)this).Auth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("Auth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)this).Auth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal CustomScaleRule(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Metadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)this).Metadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata) content.GetValueForProperty("Metadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)this).Metadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRuleMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("Auth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)this).Auth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("Auth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)this).Auth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.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.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomScaleRule(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomScaleRule(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App container Custom scaling rule. + [System.ComponentModel.TypeConverter(typeof(CustomScaleRuleTypeConverter))] + public partial interface ICustomScaleRule + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.TypeConverter.cs new file mode 100644 index 000000000000..3b6fc09ade65 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomScaleRuleTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomScaleRule.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomScaleRule.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomScaleRule.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.cs new file mode 100644 index 000000000000..a21273372ca4 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.cs @@ -0,0 +1,95 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container Custom scaling rule. + public partial class CustomScaleRule : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] _auth; + + /// Authentication secrets for the custom scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] Auth { get => this._auth; set => this._auth = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata _metadata; + + /// Metadata properties to describe custom scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata Metadata { get => (this._metadata = this._metadata ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRuleMetadata()); set => this._metadata = value; } + + /// Backing field for property. + private string _type; + + /// + /// Type of the custom scale rule + /// eg: azure-servicebus, redis etc. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public CustomScaleRule() + { + + } + } + /// Container App container Custom scaling rule. + public partial interface ICustomScaleRule : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Authentication secrets for the custom scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Authentication secrets for the custom scale rule.", + SerializedName = @"auth", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] Auth { get; set; } + /// Metadata properties to describe custom scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Metadata properties to describe custom scale rule.", + SerializedName = @"metadata", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata Metadata { get; set; } + /// + /// Type of the custom scale rule + /// eg: azure-servicebus, redis etc. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the custom scale rule + eg: azure-servicebus, redis etc.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; set; } + + } + /// Container App container Custom scaling rule. + internal partial interface ICustomScaleRuleInternal + + { + /// Authentication secrets for the custom scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] Auth { get; set; } + /// Metadata properties to describe custom scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata Metadata { get; set; } + /// + /// Type of the custom scale rule + /// eg: azure-servicebus, redis etc. + /// + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.json.cs new file mode 100644 index 000000000000..ba37bce5fb61 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRule.json.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container Custom scaling rule. + public partial class CustomScaleRule + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal CustomScaleRule(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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;} + {_metadata = If( json?.PropertyT("metadata"), out var __jsonMetadata) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRuleMetadata.FromJson(__jsonMetadata) : Metadata;} + {_auth = If( json?.PropertyT("auth"), out var __jsonAuth) ? If( __jsonAuth as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuth.FromJson(__u) )) ))() : null : Auth;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new CustomScaleRule(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AddIf( null != this._metadata ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._metadata.ToJson(null,serializationMode) : null, "metadata" ,container.Add ); + if (null != this._auth) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._auth ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("auth",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.PowerShell.cs new file mode 100644 index 000000000000..b987ae5ff1ab --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Metadata properties to describe custom scale rule. + [System.ComponentModel.TypeConverter(typeof(CustomScaleRuleMetadataTypeConverter))] + public partial class CustomScaleRuleMetadata + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 CustomScaleRuleMetadata(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 CustomScaleRuleMetadata(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.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomScaleRuleMetadata(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomScaleRuleMetadata(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Metadata properties to describe custom scale rule. + [System.ComponentModel.TypeConverter(typeof(CustomScaleRuleMetadataTypeConverter))] + public partial interface ICustomScaleRuleMetadata + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.TypeConverter.cs new file mode 100644 index 000000000000..2a6aac76b6cb --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomScaleRuleMetadataTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomScaleRuleMetadata.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomScaleRuleMetadata.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomScaleRuleMetadata.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.cs new file mode 100644 index 000000000000..e9da2cacf862 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.cs @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Metadata properties to describe custom scale rule. + public partial class CustomScaleRuleMetadata : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadataInternal + { + + /// Creates an new instance. + public CustomScaleRuleMetadata() + { + + } + } + /// Metadata properties to describe custom scale rule. + public partial interface ICustomScaleRuleMetadata : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + + } + /// Metadata properties to describe custom scale rule. + internal partial interface ICustomScaleRuleMetadataInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.dictionary.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.dictionary.cs new file mode 100644 index 000000000000..a3d64ea36cc8 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + public partial class CustomScaleRuleMetadata : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRuleMetadata source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.json.cs new file mode 100644 index 000000000000..c508bb4d930e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/CustomScaleRuleMetadata.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Metadata properties to describe custom scale rule. + public partial class CustomScaleRuleMetadata + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal CustomScaleRuleMetadata(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new CustomScaleRuleMetadata(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.PowerShell.cs new file mode 100644 index 000000000000..d24a78c2f1a0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.PowerShell.cs @@ -0,0 +1,200 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App Dapr configuration. + [System.ComponentModel.TypeConverter(typeof(DaprTypeConverter))] + public partial class Dapr + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 Dapr(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).AppId = (string) content.GetValueForProperty("AppId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).AppId, global::System.Convert.ToString); + } + if (content.Contains("AppProtocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).AppProtocol = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol?) content.GetValueForProperty("AppProtocol",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).AppProtocol, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol.CreateFrom); + } + if (content.Contains("AppPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).AppPort = (int?) content.GetValueForProperty("AppPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).AppPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("HttpReadBufferSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).HttpReadBufferSize = (int?) content.GetValueForProperty("HttpReadBufferSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).HttpReadBufferSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("HttpMaxRequestSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).HttpMaxRequestSize = (int?) content.GetValueForProperty("HttpMaxRequestSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).HttpMaxRequestSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LogLevel")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).LogLevel = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel?) content.GetValueForProperty("LogLevel",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).LogLevel, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel.CreateFrom); + } + if (content.Contains("EnableApiLogging")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).EnableApiLogging = (bool?) content.GetValueForProperty("EnableApiLogging",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).EnableApiLogging, (__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 Dapr(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).AppId = (string) content.GetValueForProperty("AppId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).AppId, global::System.Convert.ToString); + } + if (content.Contains("AppProtocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).AppProtocol = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol?) content.GetValueForProperty("AppProtocol",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).AppProtocol, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol.CreateFrom); + } + if (content.Contains("AppPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).AppPort = (int?) content.GetValueForProperty("AppPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).AppPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("HttpReadBufferSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).HttpReadBufferSize = (int?) content.GetValueForProperty("HttpReadBufferSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).HttpReadBufferSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("HttpMaxRequestSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).HttpMaxRequestSize = (int?) content.GetValueForProperty("HttpMaxRequestSize",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).HttpMaxRequestSize, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LogLevel")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).LogLevel = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel?) content.GetValueForProperty("LogLevel",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).LogLevel, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel.CreateFrom); + } + if (content.Contains("EnableApiLogging")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).EnableApiLogging = (bool?) content.GetValueForProperty("EnableApiLogging",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal)this).EnableApiLogging, (__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.ContainerAppsApi.Models.Api20221101Preview.IDapr DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Dapr(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Dapr(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App Dapr configuration. + [System.ComponentModel.TypeConverter(typeof(DaprTypeConverter))] + public partial interface IDapr + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.TypeConverter.cs new file mode 100644 index 000000000000..8b58ee52ae9c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DaprTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Dapr.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Dapr.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Dapr.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.cs new file mode 100644 index 000000000000..d461f1b80def --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.cs @@ -0,0 +1,197 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Dapr configuration. + public partial class Dapr : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprInternal + { + + /// Backing field for property. + private string _appId; + + /// Dapr application identifier + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string AppId { get => this._appId; set => this._appId = value; } + + /// Backing field for property. + private int? _appPort; + + /// Tells Dapr which port your application is listening on + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? AppPort { get => this._appPort; set => this._appPort = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol? _appProtocol; + + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol? AppProtocol { get => this._appProtocol; set => this._appProtocol = value; } + + /// Backing field for property. + private bool? _enableApiLogging; + + /// Enables API logging for the Dapr sidecar + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? EnableApiLogging { get => this._enableApiLogging; set => this._enableApiLogging = value; } + + /// Backing field for property. + private bool? _enabled; + + /// Boolean indicating if the Dapr side car is enabled + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Enabled { get => this._enabled; set => this._enabled = value; } + + /// Backing field for property. + private int? _httpMaxRequestSize; + + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? HttpMaxRequestSize { get => this._httpMaxRequestSize; set => this._httpMaxRequestSize = value; } + + /// Backing field for property. + private int? _httpReadBufferSize; + + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? HttpReadBufferSize { get => this._httpReadBufferSize; set => this._httpReadBufferSize = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel? _logLevel; + + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel? LogLevel { get => this._logLevel; set => this._logLevel = value; } + + /// Creates an new instance. + public Dapr() + { + + } + } + /// Container App Dapr configuration. + public partial interface IDapr : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Dapr application identifier + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dapr application identifier", + SerializedName = @"appId", + PossibleTypes = new [] { typeof(string) })] + string AppId { get; set; } + /// Tells Dapr which port your application is listening on + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tells Dapr which port your application is listening on", + SerializedName = @"appPort", + PossibleTypes = new [] { typeof(int) })] + int? AppPort { get; set; } + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http", + SerializedName = @"appProtocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol? AppProtocol { get; set; } + /// Enables API logging for the Dapr sidecar + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enables API logging for the Dapr sidecar", + SerializedName = @"enableApiLogging", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableApiLogging { get; set; } + /// Boolean indicating if the Dapr side car is enabled + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean indicating if the Dapr side car is enabled", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? Enabled { get; set; } + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is 4 MB.", + SerializedName = @"httpMaxRequestSize", + PossibleTypes = new [] { typeof(int) })] + int? HttpMaxRequestSize { get; set; } + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB.", + SerializedName = @"httpReadBufferSize", + PossibleTypes = new [] { typeof(int) })] + int? HttpReadBufferSize { get; set; } + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info.", + SerializedName = @"logLevel", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel? LogLevel { get; set; } + + } + /// Container App Dapr configuration. + internal partial interface IDaprInternal + + { + /// Dapr application identifier + string AppId { get; set; } + /// Tells Dapr which port your application is listening on + int? AppPort { get; set; } + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol? AppProtocol { get; set; } + /// Enables API logging for the Dapr sidecar + bool? EnableApiLogging { get; set; } + /// Boolean indicating if the Dapr side car is enabled + bool? Enabled { get; set; } + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + int? HttpMaxRequestSize { get; set; } + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + int? HttpReadBufferSize { get; set; } + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel? LogLevel { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.json.cs new file mode 100644 index 000000000000..add189b72896 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Dapr.json.cs @@ -0,0 +1,122 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Dapr configuration. + public partial class Dapr + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Dapr(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_enabled = If( json?.PropertyT("enabled"), out var __jsonEnabled) ? (bool?)__jsonEnabled : Enabled;} + {_appId = If( json?.PropertyT("appId"), out var __jsonAppId) ? (string)__jsonAppId : (string)AppId;} + {_appProtocol = If( json?.PropertyT("appProtocol"), out var __jsonAppProtocol) ? (string)__jsonAppProtocol : (string)AppProtocol;} + {_appPort = If( json?.PropertyT("appPort"), out var __jsonAppPort) ? (int?)__jsonAppPort : AppPort;} + {_httpReadBufferSize = If( json?.PropertyT("httpReadBufferSize"), out var __jsonHttpReadBufferSize) ? (int?)__jsonHttpReadBufferSize : HttpReadBufferSize;} + {_httpMaxRequestSize = If( json?.PropertyT("httpMaxRequestSize"), out var __jsonHttpMaxRequestSize) ? (int?)__jsonHttpMaxRequestSize : HttpMaxRequestSize;} + {_logLevel = If( json?.PropertyT("logLevel"), out var __jsonLogLevel) ? (string)__jsonLogLevel : (string)LogLevel;} + {_enableApiLogging = If( json?.PropertyT("enableApiLogging"), out var __jsonEnableApiLogging) ? (bool?)__jsonEnableApiLogging : EnableApiLogging;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDapr FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Dapr(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._enabled ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._enabled) : null, "enabled" ,container.Add ); + AddIf( null != (((object)this._appId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._appId.ToString()) : null, "appId" ,container.Add ); + AddIf( null != (((object)this._appProtocol)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._appProtocol.ToString()) : null, "appProtocol" ,container.Add ); + AddIf( null != this._appPort ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._appPort) : null, "appPort" ,container.Add ); + AddIf( null != this._httpReadBufferSize ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._httpReadBufferSize) : null, "httpReadBufferSize" ,container.Add ); + AddIf( null != this._httpMaxRequestSize ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._httpMaxRequestSize) : null, "httpMaxRequestSize" ,container.Add ); + AddIf( null != (((object)this._logLevel)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._logLevel.ToString()) : null, "logLevel" ,container.Add ); + AddIf( null != this._enableApiLogging ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._enableApiLogging) : null, "enableApiLogging" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.PowerShell.cs new file mode 100644 index 000000000000..753b2f9dd704 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.PowerShell.cs @@ -0,0 +1,290 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Dapr Component. + [System.ComponentModel.TypeConverter(typeof(DaprComponentTypeConverter))] + public partial class DaprComponent + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 DaprComponent(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponentPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ComponentType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).ComponentType = (string) content.GetValueForProperty("ComponentType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).ComponentType, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Version, global::System.Convert.ToString); + } + if (content.Contains("IgnoreError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).IgnoreError = (bool?) content.GetValueForProperty("IgnoreError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).IgnoreError, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("InitTimeout")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).InitTimeout = (string) content.GetValueForProperty("InitTimeout",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).InitTimeout, global::System.Convert.ToString); + } + if (content.Contains("Secret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Secret = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]) content.GetValueForProperty("Secret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Secret, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SecretTypeConverter.ConvertFrom)); + } + if (content.Contains("SecretStoreComponent")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).SecretStoreComponent = (string) content.GetValueForProperty("SecretStoreComponent",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).SecretStoreComponent, global::System.Convert.ToString); + } + if (content.Contains("Metadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Metadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[]) content.GetValueForProperty("Metadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Metadata, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprMetadataTypeConverter.ConvertFrom)); + } + if (content.Contains("Scope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Scope = (string[]) content.GetValueForProperty("Scope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Scope, __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 DaprComponent(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponentPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ComponentType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).ComponentType = (string) content.GetValueForProperty("ComponentType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).ComponentType, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Version, global::System.Convert.ToString); + } + if (content.Contains("IgnoreError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).IgnoreError = (bool?) content.GetValueForProperty("IgnoreError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).IgnoreError, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("InitTimeout")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).InitTimeout = (string) content.GetValueForProperty("InitTimeout",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).InitTimeout, global::System.Convert.ToString); + } + if (content.Contains("Secret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Secret = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]) content.GetValueForProperty("Secret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Secret, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SecretTypeConverter.ConvertFrom)); + } + if (content.Contains("SecretStoreComponent")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).SecretStoreComponent = (string) content.GetValueForProperty("SecretStoreComponent",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).SecretStoreComponent, global::System.Convert.ToString); + } + if (content.Contains("Metadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Metadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[]) content.GetValueForProperty("Metadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Metadata, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprMetadataTypeConverter.ConvertFrom)); + } + if (content.Contains("Scope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Scope = (string[]) content.GetValueForProperty("Scope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal)this).Scope, __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.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DaprComponent(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DaprComponent(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Dapr Component. + [System.ComponentModel.TypeConverter(typeof(DaprComponentTypeConverter))] + public partial interface IDaprComponent + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.TypeConverter.cs new file mode 100644 index 000000000000..fe8b101ec8db --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DaprComponentTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DaprComponent.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DaprComponent.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DaprComponent.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.cs new file mode 100644 index 000000000000..bd078f4330b7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.cs @@ -0,0 +1,235 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Dapr Component. + public partial class DaprComponent : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(); + + /// Component type + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ComponentType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).ComponentType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).ComponentType = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; } + + /// Boolean describing if the component errors are ignores + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? IgnoreError { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).IgnoreError; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).IgnoreError = value ?? default(bool); } + + /// Initialization timeout + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string InitTimeout { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).InitTimeout; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).InitTimeout = value ?? null; } + + /// Component metadata + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[] Metadata { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).Metadata; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).Metadata = value ?? null /* arrayOf */; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponentProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties _property; + + /// Dapr Component resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponentProperties()); set => this._property = value; } + + /// Names of container apps that can use this Dapr component + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] Scope { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).Scope; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).Scope = value ?? null /* arrayOf */; } + + /// Collection of secrets used by a Dapr component + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] Secret { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).Secret; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).Secret = value ?? null /* arrayOf */; } + + /// Name of a Dapr component to retrieve component secrets from + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string SecretStoreComponent { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).SecretStoreComponent; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).SecretStoreComponent = value ?? null; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; } + + /// Component version + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)Property).Version = value ?? null; } + + /// Creates an new instance. + public DaprComponent() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Dapr Component. + public partial interface IDaprComponent : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource + { + /// Component type + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Component type", + SerializedName = @"componentType", + PossibleTypes = new [] { typeof(string) })] + string ComponentType { get; set; } + /// Boolean describing if the component errors are ignores + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean describing if the component errors are ignores", + SerializedName = @"ignoreErrors", + PossibleTypes = new [] { typeof(bool) })] + bool? IgnoreError { get; set; } + /// Initialization timeout + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Initialization timeout", + SerializedName = @"initTimeout", + PossibleTypes = new [] { typeof(string) })] + string InitTimeout { get; set; } + /// Component metadata + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Component metadata", + SerializedName = @"metadata", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[] Metadata { get; set; } + /// Names of container apps that can use this Dapr component + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Names of container apps that can use this Dapr component", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] Scope { get; set; } + /// Collection of secrets used by a Dapr component + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of secrets used by a Dapr component", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] Secret { get; set; } + /// Name of a Dapr component to retrieve component secrets from + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a Dapr component to retrieve component secrets from", + SerializedName = @"secretStoreComponent", + PossibleTypes = new [] { typeof(string) })] + string SecretStoreComponent { get; set; } + /// Component version + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Component version", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// Dapr Component. + internal partial interface IDaprComponentInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal + { + /// Component type + string ComponentType { get; set; } + /// Boolean describing if the component errors are ignores + bool? IgnoreError { get; set; } + /// Initialization timeout + string InitTimeout { get; set; } + /// Component metadata + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[] Metadata { get; set; } + /// Dapr Component resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties Property { get; set; } + /// Names of container apps that can use this Dapr component + string[] Scope { get; set; } + /// Collection of secrets used by a Dapr component + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] Secret { get; set; } + /// Name of a Dapr component to retrieve component secrets from + string SecretStoreComponent { get; set; } + /// Component version + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.json.cs new file mode 100644 index 000000000000..5cdcb9f5d605 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponent.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Dapr Component. + public partial class DaprComponent + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DaprComponent(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponentProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DaprComponent(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.PowerShell.cs new file mode 100644 index 000000000000..c283d0941fd2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.PowerShell.cs @@ -0,0 +1,202 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Dapr Component resource specific properties + [System.ComponentModel.TypeConverter(typeof(DaprComponentPropertiesTypeConverter))] + public partial class DaprComponentProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 DaprComponentProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ComponentType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).ComponentType = (string) content.GetValueForProperty("ComponentType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).ComponentType, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Version, global::System.Convert.ToString); + } + if (content.Contains("IgnoreError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).IgnoreError = (bool?) content.GetValueForProperty("IgnoreError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).IgnoreError, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("InitTimeout")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).InitTimeout = (string) content.GetValueForProperty("InitTimeout",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).InitTimeout, global::System.Convert.ToString); + } + if (content.Contains("Secret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Secret = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]) content.GetValueForProperty("Secret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Secret, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SecretTypeConverter.ConvertFrom)); + } + if (content.Contains("SecretStoreComponent")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).SecretStoreComponent = (string) content.GetValueForProperty("SecretStoreComponent",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).SecretStoreComponent, global::System.Convert.ToString); + } + if (content.Contains("Metadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Metadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[]) content.GetValueForProperty("Metadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Metadata, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprMetadataTypeConverter.ConvertFrom)); + } + if (content.Contains("Scope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Scope = (string[]) content.GetValueForProperty("Scope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Scope, __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 DaprComponentProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ComponentType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).ComponentType = (string) content.GetValueForProperty("ComponentType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).ComponentType, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Version, global::System.Convert.ToString); + } + if (content.Contains("IgnoreError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).IgnoreError = (bool?) content.GetValueForProperty("IgnoreError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).IgnoreError, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("InitTimeout")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).InitTimeout = (string) content.GetValueForProperty("InitTimeout",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).InitTimeout, global::System.Convert.ToString); + } + if (content.Contains("Secret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Secret = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]) content.GetValueForProperty("Secret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Secret, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SecretTypeConverter.ConvertFrom)); + } + if (content.Contains("SecretStoreComponent")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).SecretStoreComponent = (string) content.GetValueForProperty("SecretStoreComponent",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).SecretStoreComponent, global::System.Convert.ToString); + } + if (content.Contains("Metadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Metadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[]) content.GetValueForProperty("Metadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Metadata, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprMetadataTypeConverter.ConvertFrom)); + } + if (content.Contains("Scope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Scope = (string[]) content.GetValueForProperty("Scope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal)this).Scope, __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.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DaprComponentProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DaprComponentProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Dapr Component resource specific properties + [System.ComponentModel.TypeConverter(typeof(DaprComponentPropertiesTypeConverter))] + public partial interface IDaprComponentProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.TypeConverter.cs new file mode 100644 index 000000000000..00201d58b831 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DaprComponentPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DaprComponentProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DaprComponentProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DaprComponentProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.cs new file mode 100644 index 000000000000..cd738e207db6 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Dapr Component resource specific properties + public partial class DaprComponentProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentPropertiesInternal + { + + /// Backing field for property. + private string _componentType; + + /// Component type + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ComponentType { get => this._componentType; set => this._componentType = value; } + + /// Backing field for property. + private bool? _ignoreError; + + /// Boolean describing if the component errors are ignores + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? IgnoreError { get => this._ignoreError; set => this._ignoreError = value; } + + /// Backing field for property. + private string _initTimeout; + + /// Initialization timeout + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string InitTimeout { get => this._initTimeout; set => this._initTimeout = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[] _metadata; + + /// Component metadata + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[] Metadata { get => this._metadata; set => this._metadata = value; } + + /// Backing field for property. + private string[] _scope; + + /// Names of container apps that can use this Dapr component + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] Scope { get => this._scope; set => this._scope = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] _secret; + + /// Collection of secrets used by a Dapr component + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] Secret { get => this._secret; set => this._secret = value; } + + /// Backing field for property. + private string _secretStoreComponent; + + /// Name of a Dapr component to retrieve component secrets from + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string SecretStoreComponent { get => this._secretStoreComponent; set => this._secretStoreComponent = value; } + + /// Backing field for property. + private string _version; + + /// Component version + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Version { get => this._version; set => this._version = value; } + + /// Creates an new instance. + public DaprComponentProperties() + { + + } + } + /// Dapr Component resource specific properties + public partial interface IDaprComponentProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Component type + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Component type", + SerializedName = @"componentType", + PossibleTypes = new [] { typeof(string) })] + string ComponentType { get; set; } + /// Boolean describing if the component errors are ignores + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean describing if the component errors are ignores", + SerializedName = @"ignoreErrors", + PossibleTypes = new [] { typeof(bool) })] + bool? IgnoreError { get; set; } + /// Initialization timeout + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Initialization timeout", + SerializedName = @"initTimeout", + PossibleTypes = new [] { typeof(string) })] + string InitTimeout { get; set; } + /// Component metadata + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Component metadata", + SerializedName = @"metadata", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[] Metadata { get; set; } + /// Names of container apps that can use this Dapr component + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Names of container apps that can use this Dapr component", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] Scope { get; set; } + /// Collection of secrets used by a Dapr component + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of secrets used by a Dapr component", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] Secret { get; set; } + /// Name of a Dapr component to retrieve component secrets from + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a Dapr component to retrieve component secrets from", + SerializedName = @"secretStoreComponent", + PossibleTypes = new [] { typeof(string) })] + string SecretStoreComponent { get; set; } + /// Component version + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Component version", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// Dapr Component resource specific properties + internal partial interface IDaprComponentPropertiesInternal + + { + /// Component type + string ComponentType { get; set; } + /// Boolean describing if the component errors are ignores + bool? IgnoreError { get; set; } + /// Initialization timeout + string InitTimeout { get; set; } + /// Component metadata + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[] Metadata { get; set; } + /// Names of container apps that can use this Dapr component + string[] Scope { get; set; } + /// Collection of secrets used by a Dapr component + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] Secret { get; set; } + /// Name of a Dapr component to retrieve component secrets from + string SecretStoreComponent { get; set; } + /// Component version + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.json.cs new file mode 100644 index 000000000000..0588757242eb --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentProperties.json.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Dapr Component resource specific properties + public partial class DaprComponentProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DaprComponentProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_componentType = If( json?.PropertyT("componentType"), out var __jsonComponentType) ? (string)__jsonComponentType : (string)ComponentType;} + {_version = If( json?.PropertyT("version"), out var __jsonVersion) ? (string)__jsonVersion : (string)Version;} + {_ignoreError = If( json?.PropertyT("ignoreErrors"), out var __jsonIgnoreErrors) ? (bool?)__jsonIgnoreErrors : IgnoreError;} + {_initTimeout = If( json?.PropertyT("initTimeout"), out var __jsonInitTimeout) ? (string)__jsonInitTimeout : (string)InitTimeout;} + {_secret = If( json?.PropertyT("secrets"), out var __jsonSecrets) ? If( __jsonSecrets as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.ISecret) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Secret.FromJson(__u) )) ))() : null : Secret;} + {_secretStoreComponent = If( json?.PropertyT("secretStoreComponent"), out var __jsonSecretStoreComponent) ? (string)__jsonSecretStoreComponent : (string)SecretStoreComponent;} + {_metadata = If( json?.PropertyT("metadata"), out var __jsonMetadata) ? If( __jsonMetadata as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprMetadata.FromJson(__p) )) ))() : null : Metadata;} + {_scope = If( json?.PropertyT("scopes"), out var __jsonScopes) ? If( __jsonScopes as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonArray, out var __l) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__l, (__k)=>(string) (__k is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString __j ? (string)(__j.ToString()) : null)) ))() : null : Scope;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DaprComponentProperties(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._componentType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._componentType.ToString()) : null, "componentType" ,container.Add ); + AddIf( null != (((object)this._version)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._version.ToString()) : null, "version" ,container.Add ); + AddIf( null != this._ignoreError ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._ignoreError) : null, "ignoreErrors" ,container.Add ); + AddIf( null != (((object)this._initTimeout)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._initTimeout.ToString()) : null, "initTimeout" ,container.Add ); + if (null != this._secret) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._secret ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("secrets",__w); + } + AddIf( null != (((object)this._secretStoreComponent)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._secretStoreComponent.ToString()) : null, "secretStoreComponent" ,container.Add ); + if (null != this._metadata) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._metadata ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("metadata",__r); + } + if (null != this._scope) + { + var __m = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __n in this._scope ) + { + AddIf(null != (((object)__n)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__n.ToString()) : null ,__m.Add); + } + container.Add("scopes",__m); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.PowerShell.cs new file mode 100644 index 000000000000..6cfb4079a642 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Dapr Components ARM resource. + [System.ComponentModel.TypeConverter(typeof(DaprComponentsCollectionTypeConverter))] + public partial class DaprComponentsCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 DaprComponentsCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponentTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollectionInternal)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 DaprComponentsCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponentTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollectionInternal)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.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DaprComponentsCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DaprComponentsCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Dapr Components ARM resource. + [System.ComponentModel.TypeConverter(typeof(DaprComponentsCollectionTypeConverter))] + public partial interface IDaprComponentsCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.TypeConverter.cs new file mode 100644 index 000000000000..de0d9457074b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DaprComponentsCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DaprComponentsCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DaprComponentsCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DaprComponentsCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.cs new file mode 100644 index 000000000000..f4e7bc0a2d28 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Dapr Components ARM resource. + public partial class DaprComponentsCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollectionInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollectionInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent[] _value; + + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DaprComponentsCollection() + { + + } + } + /// Dapr Components ARM resource. + public partial interface IDaprComponentsCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to next page of resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent[] Value { get; set; } + + } + /// Dapr Components ARM resource. + internal partial interface IDaprComponentsCollectionInternal + + { + /// Link to next page of resources. + string NextLink { get; set; } + /// Collection of resources. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.json.cs new file mode 100644 index 000000000000..90c713ddb313 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprComponentsCollection.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Dapr Components ARM resource. + public partial class DaprComponentsCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DaprComponentsCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponent.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.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DaprComponentsCollection(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/DaprMetadata.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.PowerShell.cs new file mode 100644 index 000000000000..4f552de096e2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Dapr component metadata. + [System.ComponentModel.TypeConverter(typeof(DaprMetadataTypeConverter))] + public partial class DaprMetadata + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 DaprMetadata(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadataInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadataInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadataInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadataInternal)this).Value, global::System.Convert.ToString); + } + if (content.Contains("SecretRef")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadataInternal)this).SecretRef = (string) content.GetValueForProperty("SecretRef",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadataInternal)this).SecretRef, 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 DaprMetadata(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadataInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadataInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadataInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadataInternal)this).Value, global::System.Convert.ToString); + } + if (content.Contains("SecretRef")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadataInternal)this).SecretRef = (string) content.GetValueForProperty("SecretRef",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadataInternal)this).SecretRef, 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.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DaprMetadata(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DaprMetadata(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Dapr component metadata. + [System.ComponentModel.TypeConverter(typeof(DaprMetadataTypeConverter))] + public partial interface IDaprMetadata + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.TypeConverter.cs new file mode 100644 index 000000000000..f7dcb716b1f1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DaprMetadataTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DaprMetadata.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DaprMetadata.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DaprMetadata.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.cs new file mode 100644 index 000000000000..2161f1853af0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.cs @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Dapr component metadata. + public partial class DaprMetadata : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadataInternal + { + + /// Backing field for property. + private string _name; + + /// Metadata property name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _secretRef; + + /// + /// Name of the Dapr Component secret from which to pull the metadata property value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string SecretRef { get => this._secretRef; set => this._secretRef = value; } + + /// Backing field for property. + private string _value; + + /// Metadata property value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DaprMetadata() + { + + } + } + /// Dapr component metadata. + public partial interface IDaprMetadata : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Metadata property name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Metadata property name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// + /// Name of the Dapr Component secret from which to pull the metadata property value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Dapr Component secret from which to pull the metadata property value.", + SerializedName = @"secretRef", + PossibleTypes = new [] { typeof(string) })] + string SecretRef { get; set; } + /// Metadata property value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Metadata property value.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(string) })] + string Value { get; set; } + + } + /// Dapr component metadata. + internal partial interface IDaprMetadataInternal + + { + /// Metadata property name. + string Name { get; set; } + /// + /// Name of the Dapr Component secret from which to pull the metadata property value. + /// + string SecretRef { get; set; } + /// Metadata property value. + string Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.json.cs new file mode 100644 index 000000000000..9ad5eaec90ab --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprMetadata.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Dapr component metadata. + public partial class DaprMetadata + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DaprMetadata(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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;} + {_secretRef = If( json?.PropertyT("secretRef"), out var __jsonSecretRef) ? (string)__jsonSecretRef : (string)SecretRef;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DaprMetadata(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._value)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._value.ToString()) : null, "value" ,container.Add ); + AddIf( null != (((object)this._secretRef)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._secretRef.ToString()) : null, "secretRef" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.PowerShell.cs new file mode 100644 index 000000000000..ae4839b5c789 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Dapr component Secret for ListSecrets Action + [System.ComponentModel.TypeConverter(typeof(DaprSecretTypeConverter))] + public partial class DaprSecret + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 DaprSecret(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretInternal)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 DaprSecret(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretInternal)this).Value, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecret DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DaprSecret(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecret DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DaprSecret(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecret FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Dapr component Secret for ListSecrets Action + [System.ComponentModel.TypeConverter(typeof(DaprSecretTypeConverter))] + public partial interface IDaprSecret + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.TypeConverter.cs new file mode 100644 index 000000000000..01f3a4e84891 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DaprSecretTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecret ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecret).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DaprSecret.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DaprSecret.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DaprSecret.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.cs new file mode 100644 index 000000000000..cbe9c888e09e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Dapr component Secret for ListSecrets Action + public partial class DaprSecret : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecret, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretInternal + { + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Value + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretInternal.Value { get => this._value; set { {_value = value;} } } + + /// Backing field for property. + private string _name; + + /// Secret Name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _value; + + /// Secret Value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Value { get => this._value; } + + /// Creates an new instance. + public DaprSecret() + { + + } + } + /// Dapr component Secret for ListSecrets Action + public partial interface IDaprSecret : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Secret Name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Secret Name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// Secret Value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Secret Value.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(string) })] + string Value { get; } + + } + /// Dapr component Secret for ListSecrets Action + internal partial interface IDaprSecretInternal + + { + /// Secret Name. + string Name { get; set; } + /// Secret Value. + string Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.json.cs new file mode 100644 index 000000000000..7fbf2658e02e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecret.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Dapr component Secret for ListSecrets Action + public partial class DaprSecret + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DaprSecret(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecret. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecret. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecret FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DaprSecret(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._value)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.PowerShell.cs new file mode 100644 index 000000000000..30452d9ab125 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Dapr component Secrets Collection for ListSecrets Action. + [System.ComponentModel.TypeConverter(typeof(DaprSecretsCollectionTypeConverter))] + public partial class DaprSecretsCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 DaprSecretsCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SecretTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DaprSecretsCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SecretTypeConverter.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.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DaprSecretsCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DaprSecretsCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Dapr component Secrets Collection for ListSecrets Action. + [System.ComponentModel.TypeConverter(typeof(DaprSecretsCollectionTypeConverter))] + public partial interface IDaprSecretsCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.TypeConverter.cs new file mode 100644 index 000000000000..28a7023a4973 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DaprSecretsCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DaprSecretsCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DaprSecretsCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DaprSecretsCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.cs new file mode 100644 index 000000000000..050b9b1ccbcd --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Dapr component Secrets Collection for ListSecrets Action. + public partial class DaprSecretsCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollectionInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] _value; + + /// Collection of secrets used by a Dapr component + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DaprSecretsCollection() + { + + } + } + /// Dapr component Secrets Collection for ListSecrets Action. + public partial interface IDaprSecretsCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Collection of secrets used by a Dapr component + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of secrets used by a Dapr component", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] Value { get; set; } + + } + /// Dapr component Secrets Collection for ListSecrets Action. + internal partial interface IDaprSecretsCollectionInternal + + { + /// Collection of secrets used by a Dapr component + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.json.cs new file mode 100644 index 000000000000..f3cc15270752 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DaprSecretsCollection.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Dapr component Secrets Collection for ListSecrets Action. + public partial class DaprSecretsCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DaprSecretsCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.ISecret) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Secret.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DaprSecretsCollection(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.PowerShell.cs new file mode 100644 index 000000000000..97b8a56981a6 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.PowerShell.cs @@ -0,0 +1,172 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The configuration settings of the Azure Active Directory default authorization policy. + /// + [System.ComponentModel.TypeConverter(typeof(DefaultAuthorizationPolicyTypeConverter))] + public partial class DefaultAuthorizationPolicy + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 DefaultAuthorizationPolicy(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AllowedPrincipal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedPrincipal = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals) content.GetValueForProperty("AllowedPrincipal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedPrincipal, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedPrincipalsTypeConverter.ConvertFrom); + } + if (content.Contains("AllowedApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedApplication = (string[]) content.GetValueForProperty("AllowedApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedApplication, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedPrincipalGroup = (string[]) content.GetValueForProperty("AllowedPrincipalGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedPrincipalGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedPrincipalIdentity = (string[]) content.GetValueForProperty("AllowedPrincipalIdentity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedPrincipalIdentity, __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 DefaultAuthorizationPolicy(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AllowedPrincipal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedPrincipal = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals) content.GetValueForProperty("AllowedPrincipal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedPrincipal, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedPrincipalsTypeConverter.ConvertFrom); + } + if (content.Contains("AllowedApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedApplication = (string[]) content.GetValueForProperty("AllowedApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedApplication, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedPrincipalGroup = (string[]) content.GetValueForProperty("AllowedPrincipalGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedPrincipalGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedPrincipalIdentity = (string[]) content.GetValueForProperty("AllowedPrincipalIdentity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal)this).AllowedPrincipalIdentity, __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.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DefaultAuthorizationPolicy(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DefaultAuthorizationPolicy(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the Azure Active Directory default authorization policy. + [System.ComponentModel.TypeConverter(typeof(DefaultAuthorizationPolicyTypeConverter))] + public partial interface IDefaultAuthorizationPolicy + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.TypeConverter.cs new file mode 100644 index 000000000000..83dee685cbec --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DefaultAuthorizationPolicyTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DefaultAuthorizationPolicy.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DefaultAuthorizationPolicy.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DefaultAuthorizationPolicy.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.cs new file mode 100644 index 000000000000..624f13e9ba67 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.cs @@ -0,0 +1,93 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the Azure Active Directory default authorization policy. + /// + public partial class DefaultAuthorizationPolicy : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal + { + + /// Backing field for property. + private string[] _allowedApplication; + + /// The configuration settings of the Azure Active Directory allowed applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] AllowedApplication { get => this._allowedApplication; set => this._allowedApplication = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals _allowedPrincipal; + + /// The configuration settings of the Azure Active Directory allowed principals. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals AllowedPrincipal { get => (this._allowedPrincipal = this._allowedPrincipal ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedPrincipals()); set => this._allowedPrincipal = value; } + + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] AllowedPrincipalGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipalsInternal)AllowedPrincipal).Group; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipalsInternal)AllowedPrincipal).Group = value ?? null /* arrayOf */; } + + /// The list of the allowed identities. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] AllowedPrincipalIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipalsInternal)AllowedPrincipal).Identity; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipalsInternal)AllowedPrincipal).Identity = value ?? null /* arrayOf */; } + + /// Internal Acessors for AllowedPrincipal + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicyInternal.AllowedPrincipal { get => (this._allowedPrincipal = this._allowedPrincipal ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedPrincipals()); set { {_allowedPrincipal = value;} } } + + /// Creates an new instance. + public DefaultAuthorizationPolicy() + { + + } + } + /// The configuration settings of the Azure Active Directory default authorization policy. + public partial interface IDefaultAuthorizationPolicy : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The configuration settings of the Azure Active Directory allowed applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The configuration settings of the Azure Active Directory allowed applications.", + SerializedName = @"allowedApplications", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedApplication { get; set; } + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed groups.", + SerializedName = @"groups", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedPrincipalGroup { get; set; } + /// The list of the allowed identities. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed identities.", + SerializedName = @"identities", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedPrincipalIdentity { get; set; } + + } + /// The configuration settings of the Azure Active Directory default authorization policy. + internal partial interface IDefaultAuthorizationPolicyInternal + + { + /// The configuration settings of the Azure Active Directory allowed applications. + string[] AllowedApplication { get; set; } + /// The configuration settings of the Azure Active Directory allowed principals. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals AllowedPrincipal { get; set; } + /// The list of the allowed groups. + string[] AllowedPrincipalGroup { get; set; } + /// The list of the allowed identities. + string[] AllowedPrincipalIdentity { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.json.cs new file mode 100644 index 000000000000..827f18a1f397 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultAuthorizationPolicy.json.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the Azure Active Directory default authorization policy. + /// + public partial class DefaultAuthorizationPolicy + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DefaultAuthorizationPolicy(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_allowedPrincipal = If( json?.PropertyT("allowedPrincipals"), out var __jsonAllowedPrincipals) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedPrincipals.FromJson(__jsonAllowedPrincipals) : AllowedPrincipal;} + {_allowedApplication = If( json?.PropertyT("allowedApplications"), out var __jsonAllowedApplications) ? If( __jsonAllowedApplications as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : AllowedApplication;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DefaultAuthorizationPolicy(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._allowedPrincipal ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._allowedPrincipal.ToJson(null,serializationMode) : null, "allowedPrincipals" ,container.Add ); + if (null != this._allowedApplication) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._allowedApplication ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("allowedApplications",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.PowerShell.cs new file mode 100644 index 000000000000..98153fc219ca --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.PowerShell.cs @@ -0,0 +1,186 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// App Service error response. + [System.ComponentModel.TypeConverter(typeof(DefaultErrorResponseTypeConverter))] + public partial class DefaultErrorResponse + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 DefaultErrorResponse(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponseErrorTypeConverter.ConvertFrom); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponseErrorDetailsItemTypeConverter.ConvertFrom)); + } + if (content.Contains("Innererror")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Innererror = (string) content.GetValueForProperty("Innererror",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Innererror, 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 DefaultErrorResponse(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponseErrorTypeConverter.ConvertFrom); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponseErrorDetailsItemTypeConverter.ConvertFrom)); + } + if (content.Contains("Innererror")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Innererror = (string) content.GetValueForProperty("Innererror",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal)this).Innererror, 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.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DefaultErrorResponse(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DefaultErrorResponse(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// App Service error response. + [System.ComponentModel.TypeConverter(typeof(DefaultErrorResponseTypeConverter))] + public partial interface IDefaultErrorResponse + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.TypeConverter.cs new file mode 100644 index 000000000000..9b8803949d12 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DefaultErrorResponseTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DefaultErrorResponse.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DefaultErrorResponse.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DefaultErrorResponse.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.cs new file mode 100644 index 000000000000..f671a796f6c6 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.cs @@ -0,0 +1,128 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// App Service error response. + public partial class DefaultErrorResponse : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal + { + + /// Standardized string to programmatically identify the error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Code { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)Error).Code; } + + /// Details or the error + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem[] Detail { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)Error).Detail; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)Error).Detail = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError _error; + + /// Error model. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponseError()); } + + /// More information to debug error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Innererror { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)Error).Innererror; } + + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Message { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)Error).Message; } + + /// Internal Acessors for Code + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal.Code { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)Error).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)Error).Code = value; } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal.Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponseError()); set { {_error = value;} } } + + /// Internal Acessors for Innererror + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal.Innererror { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)Error).Innererror; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)Error).Innererror = value; } + + /// Internal Acessors for Message + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal.Message { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)Error).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)Error).Message = value; } + + /// Internal Acessors for Target + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseInternal.Target { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)Error).Target; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)Error).Target = value; } + + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Target { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)Error).Target; } + + /// Creates an new instance. + public DefaultErrorResponse() + { + + } + } + /// App Service error response. + public partial interface IDefaultErrorResponse : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Standardized string to programmatically identify the error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Standardized string to programmatically identify the error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; } + /// Details or the error + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Details or the error", + SerializedName = @"details", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem[] Detail { get; set; } + /// More information to debug error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"More information to debug error.", + SerializedName = @"innererror", + PossibleTypes = new [] { typeof(string) })] + string Innererror { get; } + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Detailed error description and debugging information.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; } + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Detailed error description and debugging information.", + SerializedName = @"target", + PossibleTypes = new [] { typeof(string) })] + string Target { get; } + + } + /// App Service error response. + internal partial interface IDefaultErrorResponseInternal + + { + /// Standardized string to programmatically identify the error. + string Code { get; set; } + /// Details or the error + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem[] Detail { get; set; } + /// Error model. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError Error { get; set; } + /// More information to debug error. + string Innererror { get; set; } + /// Detailed error description and debugging information. + string Message { get; set; } + /// Detailed error description and debugging information. + string Target { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.json.cs new file mode 100644 index 000000000000..5757c303158d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponse.json.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// App Service error response. + public partial class DefaultErrorResponse + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DefaultErrorResponse(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponseError.FromJson(__jsonError) : Error;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DefaultErrorResponse(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._error ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.PowerShell.cs new file mode 100644 index 000000000000..0fd2e075279b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.PowerShell.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Error model. + [System.ComponentModel.TypeConverter(typeof(DefaultErrorResponseErrorTypeConverter))] + public partial class DefaultErrorResponseError + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 DefaultErrorResponseError(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponseErrorDetailsItemTypeConverter.ConvertFrom)); + } + if (content.Contains("Innererror")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Innererror = (string) content.GetValueForProperty("Innererror",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Innererror, 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 DefaultErrorResponseError(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponseErrorDetailsItemTypeConverter.ConvertFrom)); + } + if (content.Contains("Innererror")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Innererror = (string) content.GetValueForProperty("Innererror",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal)this).Innererror, 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.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DefaultErrorResponseError(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DefaultErrorResponseError(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Error model. + [System.ComponentModel.TypeConverter(typeof(DefaultErrorResponseErrorTypeConverter))] + public partial interface IDefaultErrorResponseError + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.TypeConverter.cs new file mode 100644 index 000000000000..05a67b8fcacc --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DefaultErrorResponseErrorTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DefaultErrorResponseError.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DefaultErrorResponseError.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DefaultErrorResponseError.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.cs new file mode 100644 index 000000000000..7436090154d0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.cs @@ -0,0 +1,131 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Error model. + public partial class DefaultErrorResponseError : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal + { + + /// Backing field for property. + private string _code; + + /// Standardized string to programmatically identify the error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Code { get => this._code; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem[] _detail; + + /// Details or the error + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem[] Detail { get => this._detail; set => this._detail = value; } + + /// Backing field for property. + private string _innererror; + + /// More information to debug error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Innererror { get => this._innererror; } + + /// Backing field for property. + private string _message; + + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Message { get => this._message; } + + /// Internal Acessors for Code + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal.Code { get => this._code; set { {_code = value;} } } + + /// Internal Acessors for Innererror + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal.Innererror { get => this._innererror; set { {_innererror = value;} } } + + /// Internal Acessors for Message + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal.Message { get => this._message; set { {_message = value;} } } + + /// Internal Acessors for Target + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorInternal.Target { get => this._target; set { {_target = value;} } } + + /// Backing field for property. + private string _target; + + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Target { get => this._target; } + + /// Creates an new instance. + public DefaultErrorResponseError() + { + + } + } + /// Error model. + public partial interface IDefaultErrorResponseError : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Standardized string to programmatically identify the error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Standardized string to programmatically identify the error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; } + /// Details or the error + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Details or the error", + SerializedName = @"details", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem[] Detail { get; set; } + /// More information to debug error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"More information to debug error.", + SerializedName = @"innererror", + PossibleTypes = new [] { typeof(string) })] + string Innererror { get; } + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Detailed error description and debugging information.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; } + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Detailed error description and debugging information.", + SerializedName = @"target", + PossibleTypes = new [] { typeof(string) })] + string Target { get; } + + } + /// Error model. + internal partial interface IDefaultErrorResponseErrorInternal + + { + /// Standardized string to programmatically identify the error. + string Code { get; set; } + /// Details or the error + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem[] Detail { get; set; } + /// More information to debug error. + string Innererror { get; set; } + /// Detailed error description and debugging information. + string Message { get; set; } + /// Detailed error description and debugging information. + string Target { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.json.cs new file mode 100644 index 000000000000..a0f917f774cb --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseError.json.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Error model. + public partial class DefaultErrorResponseError + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DefaultErrorResponseError(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultErrorResponseErrorDetailsItem.FromJson(__u) )) ))() : null : Detail;} + {_innererror = If( json?.PropertyT("innererror"), out var __jsonInnererror) ? (string)__jsonInnererror : (string)Innererror;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseError FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DefaultErrorResponseError(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._code)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._code.ToString()) : null, "code" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._message.ToString()) : null, "message" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._target)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._target.ToString()) : null, "target" ,container.Add ); + } + if (null != this._detail) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._detail ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("details",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._innererror)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._innererror.ToString()) : null, "innererror" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.PowerShell.cs new file mode 100644 index 000000000000..f2764bd0eb5e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.PowerShell.cs @@ -0,0 +1,164 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Detailed errors. + [System.ComponentModel.TypeConverter(typeof(DefaultErrorResponseErrorDetailsItemTypeConverter))] + public partial class DefaultErrorResponseErrorDetailsItem + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 DefaultErrorResponseErrorDetailsItem(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal)this).Target, 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 DefaultErrorResponseErrorDetailsItem(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal)this).Target, 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.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DefaultErrorResponseErrorDetailsItem(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DefaultErrorResponseErrorDetailsItem(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Detailed errors. + [System.ComponentModel.TypeConverter(typeof(DefaultErrorResponseErrorDetailsItemTypeConverter))] + public partial interface IDefaultErrorResponseErrorDetailsItem + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.TypeConverter.cs new file mode 100644 index 000000000000..063b97d1e458 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DefaultErrorResponseErrorDetailsItemTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DefaultErrorResponseErrorDetailsItem.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DefaultErrorResponseErrorDetailsItem.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DefaultErrorResponseErrorDetailsItem.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.cs new file mode 100644 index 000000000000..56dc9dc38fab --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.cs @@ -0,0 +1,94 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Detailed errors. + public partial class DefaultErrorResponseErrorDetailsItem : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal + { + + /// Backing field for property. + private string _code; + + /// Standardized string to programmatically identify the error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Code { get => this._code; } + + /// Backing field for property. + private string _message; + + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Message { get => this._message; } + + /// Internal Acessors for Code + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal.Code { get => this._code; set { {_code = value;} } } + + /// Internal Acessors for Message + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal.Message { get => this._message; set { {_message = value;} } } + + /// Internal Acessors for Target + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItemInternal.Target { get => this._target; set { {_target = value;} } } + + /// Backing field for property. + private string _target; + + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Target { get => this._target; } + + /// Creates an new instance. + public DefaultErrorResponseErrorDetailsItem() + { + + } + } + /// Detailed errors. + public partial interface IDefaultErrorResponseErrorDetailsItem : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Standardized string to programmatically identify the error. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Standardized string to programmatically identify the error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; } + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Detailed error description and debugging information.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; } + /// Detailed error description and debugging information. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Detailed error description and debugging information.", + SerializedName = @"target", + PossibleTypes = new [] { typeof(string) })] + string Target { get; } + + } + /// Detailed errors. + internal partial interface IDefaultErrorResponseErrorDetailsItemInternal + + { + /// Standardized string to programmatically identify the error. + string Code { get; set; } + /// Detailed error description and debugging information. + string Message { get; set; } + /// Detailed error description and debugging information. + string Target { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.json.cs new file mode 100644 index 000000000000..331b34499538 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DefaultErrorResponseErrorDetailsItem.json.cs @@ -0,0 +1,122 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Detailed errors. + public partial class DefaultErrorResponseErrorDetailsItem + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DefaultErrorResponseErrorDetailsItem(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponseErrorDetailsItem FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DefaultErrorResponseErrorDetailsItem(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._code)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._code.ToString()) : null, "code" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._message.ToString()) : null, "message" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._target)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._target.ToString()) : null, "target" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.PowerShell.cs new file mode 100644 index 000000000000..45e64a2434fb --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Details of a diagnostics data provider + [System.ComponentModel.TypeConverter(typeof(DiagnosticDataProviderMetadataTypeConverter))] + public partial class DiagnosticDataProviderMetadata + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DiagnosticDataProviderMetadata(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DiagnosticDataProviderMetadata(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DiagnosticDataProviderMetadata(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProviderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataInternal)this).ProviderName = (string) content.GetValueForProperty("ProviderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataInternal)this).ProviderName, global::System.Convert.ToString); + } + if (content.Contains("PropertyBag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataInternal)this).PropertyBag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[]) content.GetValueForProperty("PropertyBag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataInternal)this).PropertyBag, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadataPropertyBagItemTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DiagnosticDataProviderMetadata(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProviderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataInternal)this).ProviderName = (string) content.GetValueForProperty("ProviderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataInternal)this).ProviderName, global::System.Convert.ToString); + } + if (content.Contains("PropertyBag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataInternal)this).PropertyBag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[]) content.GetValueForProperty("PropertyBag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataInternal)this).PropertyBag, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadataPropertyBagItemTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Details of a diagnostics data provider + [System.ComponentModel.TypeConverter(typeof(DiagnosticDataProviderMetadataTypeConverter))] + public partial interface IDiagnosticDataProviderMetadata + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.TypeConverter.cs new file mode 100644 index 000000000000..30145f95ca60 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DiagnosticDataProviderMetadataTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DiagnosticDataProviderMetadata.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DiagnosticDataProviderMetadata.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DiagnosticDataProviderMetadata.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.cs new file mode 100644 index 000000000000..35c230cb5ffb --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Details of a diagnostics data provider + public partial class DiagnosticDataProviderMetadata : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[] _propertyBag; + + /// Collection of properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[] PropertyBag { get => this._propertyBag; set => this._propertyBag = value; } + + /// Backing field for property. + private string _providerName; + + /// Name of data provider + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ProviderName { get => this._providerName; set => this._providerName = value; } + + /// Creates an new instance. + public DiagnosticDataProviderMetadata() + { + + } + } + /// Details of a diagnostics data provider + public partial interface IDiagnosticDataProviderMetadata : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Collection of properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of properties", + SerializedName = @"propertyBag", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[] PropertyBag { get; set; } + /// Name of data provider + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of data provider", + SerializedName = @"providerName", + PossibleTypes = new [] { typeof(string) })] + string ProviderName { get; set; } + + } + /// Details of a diagnostics data provider + internal partial interface IDiagnosticDataProviderMetadataInternal + + { + /// Collection of properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[] PropertyBag { get; set; } + /// Name of data provider + string ProviderName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.json.cs new file mode 100644 index 000000000000..1fa9ac68d3d4 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadata.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Details of a diagnostics data provider + public partial class DiagnosticDataProviderMetadata + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DiagnosticDataProviderMetadata(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_providerName = If( json?.PropertyT("providerName"), out var __jsonProviderName) ? (string)__jsonProviderName : (string)ProviderName;} + {_propertyBag = If( json?.PropertyT("propertyBag"), out var __jsonPropertyBag) ? If( __jsonPropertyBag as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadataPropertyBagItem.FromJson(__u) )) ))() : null : PropertyBag;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DiagnosticDataProviderMetadata(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._providerName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._providerName.ToString()) : null, "providerName" ,container.Add ); + if (null != this._propertyBag) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._propertyBag ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("propertyBag",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.PowerShell.cs new file mode 100644 index 000000000000..f609b60a3409 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.PowerShell.cs @@ -0,0 +1,157 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Property details + [System.ComponentModel.TypeConverter(typeof(DiagnosticDataProviderMetadataPropertyBagItemTypeConverter))] + public partial class DiagnosticDataProviderMetadataPropertyBagItem + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DiagnosticDataProviderMetadataPropertyBagItem(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DiagnosticDataProviderMetadataPropertyBagItem(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DiagnosticDataProviderMetadataPropertyBagItem(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItemInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItemInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItemInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItemInternal)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 DiagnosticDataProviderMetadataPropertyBagItem(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItemInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItemInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItemInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItemInternal)this).Value, 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Property details + [System.ComponentModel.TypeConverter(typeof(DiagnosticDataProviderMetadataPropertyBagItemTypeConverter))] + public partial interface IDiagnosticDataProviderMetadataPropertyBagItem + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.TypeConverter.cs new file mode 100644 index 000000000000..b5270906de06 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.TypeConverter.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DiagnosticDataProviderMetadataPropertyBagItemTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, + /// otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DiagnosticDataProviderMetadataPropertyBagItem.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DiagnosticDataProviderMetadataPropertyBagItem.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DiagnosticDataProviderMetadataPropertyBagItem.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.cs new file mode 100644 index 000000000000..52ed390e5d4c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.cs @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Property details + public partial class DiagnosticDataProviderMetadataPropertyBagItem : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItemInternal + { + + /// Backing field for property. + private string _name; + + /// Property name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _value; + + /// Property value + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Value { get => this._value; set => this._value = value; } + + /// + /// Creates an new instance. + /// + public DiagnosticDataProviderMetadataPropertyBagItem() + { + + } + } + /// Property details + public partial interface IDiagnosticDataProviderMetadataPropertyBagItem : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Property name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Property name", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Property value + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Property value", + SerializedName = @"value", + PossibleTypes = new [] { typeof(string) })] + string Value { get; set; } + + } + /// Property details + internal partial interface IDiagnosticDataProviderMetadataPropertyBagItemInternal + + { + /// Property name + string Name { get; set; } + /// Property value + string Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.json.cs new file mode 100644 index 000000000000..35b79055eae0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataProviderMetadataPropertyBagItem.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Property details + public partial class DiagnosticDataProviderMetadataPropertyBagItem + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DiagnosticDataProviderMetadataPropertyBagItem(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DiagnosticDataProviderMetadataPropertyBagItem(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._value)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.PowerShell.cs new file mode 100644 index 000000000000..b071395e1d03 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.PowerShell.cs @@ -0,0 +1,164 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Diagnostics data column + [System.ComponentModel.TypeConverter(typeof(DiagnosticDataTableResponseColumnTypeConverter))] + public partial class DiagnosticDataTableResponseColumn + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DiagnosticDataTableResponseColumn(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DiagnosticDataTableResponseColumn(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DiagnosticDataTableResponseColumn(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ColumnName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumnInternal)this).ColumnName = (string) content.GetValueForProperty("ColumnName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumnInternal)this).ColumnName, global::System.Convert.ToString); + } + if (content.Contains("DataType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumnInternal)this).DataType = (string) content.GetValueForProperty("DataType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumnInternal)this).DataType, global::System.Convert.ToString); + } + if (content.Contains("ColumnType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumnInternal)this).ColumnType = (string) content.GetValueForProperty("ColumnType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumnInternal)this).ColumnType, 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 DiagnosticDataTableResponseColumn(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ColumnName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumnInternal)this).ColumnName = (string) content.GetValueForProperty("ColumnName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumnInternal)this).ColumnName, global::System.Convert.ToString); + } + if (content.Contains("DataType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumnInternal)this).DataType = (string) content.GetValueForProperty("DataType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumnInternal)this).DataType, global::System.Convert.ToString); + } + if (content.Contains("ColumnType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumnInternal)this).ColumnType = (string) content.GetValueForProperty("ColumnType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumnInternal)this).ColumnType, 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Diagnostics data column + [System.ComponentModel.TypeConverter(typeof(DiagnosticDataTableResponseColumnTypeConverter))] + public partial interface IDiagnosticDataTableResponseColumn + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.TypeConverter.cs new file mode 100644 index 000000000000..9bd2a44d58f1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DiagnosticDataTableResponseColumnTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DiagnosticDataTableResponseColumn.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DiagnosticDataTableResponseColumn.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DiagnosticDataTableResponseColumn.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.cs new file mode 100644 index 000000000000..a0c100844f91 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Diagnostics data column + public partial class DiagnosticDataTableResponseColumn : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumnInternal + { + + /// Backing field for property. + private string _columnName; + + /// Column name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ColumnName { get => this._columnName; set => this._columnName = value; } + + /// Backing field for property. + private string _columnType; + + /// Column type + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ColumnType { get => this._columnType; set => this._columnType = value; } + + /// Backing field for property. + private string _dataType; + + /// Data type of the column + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string DataType { get => this._dataType; set => this._dataType = value; } + + /// Creates an new instance. + public DiagnosticDataTableResponseColumn() + { + + } + } + /// Diagnostics data column + public partial interface IDiagnosticDataTableResponseColumn : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Column name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Column name", + SerializedName = @"columnName", + PossibleTypes = new [] { typeof(string) })] + string ColumnName { get; set; } + /// Column type + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Column type", + SerializedName = @"columnType", + PossibleTypes = new [] { typeof(string) })] + string ColumnType { get; set; } + /// Data type of the column + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Data type of the column", + SerializedName = @"dataType", + PossibleTypes = new [] { typeof(string) })] + string DataType { get; set; } + + } + /// Diagnostics data column + internal partial interface IDiagnosticDataTableResponseColumnInternal + + { + /// Column name + string ColumnName { get; set; } + /// Column type + string ColumnType { get; set; } + /// Data type of the column + string DataType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.json.cs new file mode 100644 index 000000000000..212c063732ea --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseColumn.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Diagnostics data column + public partial class DiagnosticDataTableResponseColumn + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DiagnosticDataTableResponseColumn(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_columnName = If( json?.PropertyT("columnName"), out var __jsonColumnName) ? (string)__jsonColumnName : (string)ColumnName;} + {_dataType = If( json?.PropertyT("dataType"), out var __jsonDataType) ? (string)__jsonDataType : (string)DataType;} + {_columnType = If( json?.PropertyT("columnType"), out var __jsonColumnType) ? (string)__jsonColumnType : (string)ColumnType;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DiagnosticDataTableResponseColumn(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._columnName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._columnName.ToString()) : null, "columnName" ,container.Add ); + AddIf( null != (((object)this._dataType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._dataType.ToString()) : null, "dataType" ,container.Add ); + AddIf( null != (((object)this._columnType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._columnType.ToString()) : null, "columnType" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.PowerShell.cs new file mode 100644 index 000000000000..3ea592643e64 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.PowerShell.cs @@ -0,0 +1,164 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Diagnostics data table + [System.ComponentModel.TypeConverter(typeof(DiagnosticDataTableResponseObjectTypeConverter))] + public partial class DiagnosticDataTableResponseObject + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DiagnosticDataTableResponseObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DiagnosticDataTableResponseObject(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DiagnosticDataTableResponseObject(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("Column")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)this).Column = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn[]) content.GetValueForProperty("Column",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)this).Column, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataTableResponseColumnTypeConverter.ConvertFrom)); + } + if (content.Contains("Row")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)this).Row = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny[]) content.GetValueForProperty("Row",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)this).Row, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.AnyTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DiagnosticDataTableResponseObject(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("Column")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)this).Column = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn[]) content.GetValueForProperty("Column",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)this).Column, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataTableResponseColumnTypeConverter.ConvertFrom)); + } + if (content.Contains("Row")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)this).Row = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny[]) content.GetValueForProperty("Row",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)this).Row, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.AnyTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Diagnostics data table + [System.ComponentModel.TypeConverter(typeof(DiagnosticDataTableResponseObjectTypeConverter))] + public partial interface IDiagnosticDataTableResponseObject + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.TypeConverter.cs new file mode 100644 index 000000000000..9f228cc73deb --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DiagnosticDataTableResponseObjectTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DiagnosticDataTableResponseObject.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DiagnosticDataTableResponseObject.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DiagnosticDataTableResponseObject.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.cs new file mode 100644 index 000000000000..934829200dc2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Diagnostics data table + public partial class DiagnosticDataTableResponseObject : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn[] _column; + + /// Columns in the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn[] Column { get => this._column; set => this._column = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny[] _row; + + /// Rows in the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny[] Row { get => this._row; set => this._row = value; } + + /// Backing field for property. + private string _tableName; + + /// Table name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string TableName { get => this._tableName; set => this._tableName = value; } + + /// Creates an new instance. + public DiagnosticDataTableResponseObject() + { + + } + } + /// Diagnostics data table + public partial interface IDiagnosticDataTableResponseObject : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Columns in the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Columns in the table", + SerializedName = @"columns", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn[] Column { get; set; } + /// Rows in the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Rows in the table", + SerializedName = @"rows", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny[] Row { get; set; } + /// Table name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Table name", + SerializedName = @"tableName", + PossibleTypes = new [] { typeof(string) })] + string TableName { get; set; } + + } + /// Diagnostics data table + internal partial interface IDiagnosticDataTableResponseObjectInternal + + { + /// Columns in the table + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn[] Column { get; set; } + /// Rows in the table + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny[] Row { get; set; } + /// Table name + string TableName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.json.cs new file mode 100644 index 000000000000..c9cc2f59ca25 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticDataTableResponseObject.json.cs @@ -0,0 +1,128 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Diagnostics data table + public partial class DiagnosticDataTableResponseObject + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DiagnosticDataTableResponseObject(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_tableName = If( json?.PropertyT("tableName"), out var __jsonTableName) ? (string)__jsonTableName : (string)TableName;} + {_column = If( json?.PropertyT("columns"), out var __jsonColumns) ? If( __jsonColumns as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataTableResponseColumn.FromJson(__u) )) ))() : null : Column;} + {_row = If( json?.PropertyT("rows"), out var __jsonRows) ? If( __jsonRows as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.IAny) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Any.FromJson(__p) )) ))() : null : Row;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DiagnosticDataTableResponseObject(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._tableName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._tableName.ToString()) : null, "tableName" ,container.Add ); + if (null != this._column) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._column ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("columns",__w); + } + if (null != this._row) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._row ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("rows",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.PowerShell.cs new file mode 100644 index 000000000000..51e36eaba440 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.PowerShell.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Rendering details of a diagnostics table + [System.ComponentModel.TypeConverter(typeof(DiagnosticRenderingTypeConverter))] + public partial class DiagnosticRendering + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DiagnosticRendering(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DiagnosticRendering(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DiagnosticRendering(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).Type = (int?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).Type, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Title")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).Title = (string) content.GetValueForProperty("Title",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).Title, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("IsVisible")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).IsVisible = (bool?) content.GetValueForProperty("IsVisible",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).IsVisible, (__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 DiagnosticRendering(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).Type = (int?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).Type, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Title")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).Title = (string) content.GetValueForProperty("Title",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).Title, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("IsVisible")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).IsVisible = (bool?) content.GetValueForProperty("IsVisible",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)this).IsVisible, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Rendering details of a diagnostics table + [System.ComponentModel.TypeConverter(typeof(DiagnosticRenderingTypeConverter))] + public partial interface IDiagnosticRendering + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.TypeConverter.cs new file mode 100644 index 000000000000..3482af5628ed --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DiagnosticRenderingTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DiagnosticRendering.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DiagnosticRendering.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DiagnosticRendering.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.cs new file mode 100644 index 000000000000..3764f2dcf0f6 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Rendering details of a diagnostics table + public partial class DiagnosticRendering : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal + { + + /// Backing field for property. + private string _description; + + /// Description of the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private bool? _isVisible; + + /// Flag if the table should be rendered + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? IsVisible { get => this._isVisible; set => this._isVisible = value; } + + /// Backing field for property. + private string _title; + + /// Title of the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Title { get => this._title; set => this._title = value; } + + /// Backing field for property. + private int? _type; + + /// Rendering type + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public DiagnosticRendering() + { + + } + } + /// Rendering details of a diagnostics table + public partial interface IDiagnosticRendering : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Description of the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the table", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Flag if the table should be rendered + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Flag if the table should be rendered", + SerializedName = @"isVisible", + PossibleTypes = new [] { typeof(bool) })] + bool? IsVisible { get; set; } + /// Title of the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Title of the table", + SerializedName = @"title", + PossibleTypes = new [] { typeof(string) })] + string Title { get; set; } + /// Rendering type + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Rendering type", + SerializedName = @"type", + PossibleTypes = new [] { typeof(int) })] + int? Type { get; set; } + + } + /// Rendering details of a diagnostics table + internal partial interface IDiagnosticRenderingInternal + + { + /// Description of the table + string Description { get; set; } + /// Flag if the table should be rendered + bool? IsVisible { get; set; } + /// Title of the table + string Title { get; set; } + /// Rendering type + int? Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.json.cs new file mode 100644 index 000000000000..b6dbdca24312 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticRendering.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Rendering details of a diagnostics table + public partial class DiagnosticRendering + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DiagnosticRendering(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (int?)__jsonType : Type;} + {_title = If( json?.PropertyT("title"), out var __jsonTitle) ? (string)__jsonTitle : (string)Title;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_isVisible = If( json?.PropertyT("isVisible"), out var __jsonIsVisible) ? (bool?)__jsonIsVisible : IsVisible;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DiagnosticRendering(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._type ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._type) : null, "type" ,container.Add ); + AddIf( null != (((object)this._title)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._title.ToString()) : null, "title" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != this._isVisible ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._isVisible) : null, "isVisible" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.PowerShell.cs new file mode 100644 index 000000000000..c657a92eed1c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Support topic information + [System.ComponentModel.TypeConverter(typeof(DiagnosticSupportTopicTypeConverter))] + public partial class DiagnosticSupportTopic + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DiagnosticSupportTopic(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DiagnosticSupportTopic(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DiagnosticSupportTopic(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopicInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopicInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("PesId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopicInternal)this).PesId = (string) content.GetValueForProperty("PesId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopicInternal)this).PesId, 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 DiagnosticSupportTopic(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopicInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopicInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("PesId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopicInternal)this).PesId = (string) content.GetValueForProperty("PesId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopicInternal)this).PesId, 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Support topic information + [System.ComponentModel.TypeConverter(typeof(DiagnosticSupportTopicTypeConverter))] + public partial interface IDiagnosticSupportTopic + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.TypeConverter.cs new file mode 100644 index 000000000000..4ab1e7d9ece0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DiagnosticSupportTopicTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DiagnosticSupportTopic.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DiagnosticSupportTopic.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DiagnosticSupportTopic.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.cs new file mode 100644 index 000000000000..5835a11f895f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Support topic information + public partial class DiagnosticSupportTopic : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopicInternal + { + + /// Backing field for property. + private string _id; + + /// Unique topic identifier + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Id { get => this._id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopicInternal.Id { get => this._id; set { {_id = value;} } } + + /// Internal Acessors for PesId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopicInternal.PesId { get => this._pesId; set { {_pesId = value;} } } + + /// Backing field for property. + private string _pesId; + + /// PES identifier + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string PesId { get => this._pesId; } + + /// Creates an new instance. + public DiagnosticSupportTopic() + { + + } + } + /// Support topic information + public partial interface IDiagnosticSupportTopic : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Unique topic identifier + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Unique topic identifier", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; } + /// PES identifier + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"PES identifier", + SerializedName = @"pesId", + PossibleTypes = new [] { typeof(string) })] + string PesId { get; } + + } + /// Support topic information + internal partial interface IDiagnosticSupportTopicInternal + + { + /// Unique topic identifier + string Id { get; set; } + /// PES identifier + string PesId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.json.cs new file mode 100644 index 000000000000..d138086e45a5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticSupportTopic.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Support topic information + public partial class DiagnosticSupportTopic + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DiagnosticSupportTopic(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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;} + {_pesId = If( json?.PropertyT("pesId"), out var __jsonPesId) ? (string)__jsonPesId : (string)PesId;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DiagnosticSupportTopic(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._id.ToString()) : null, "id" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._pesId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._pesId.ToString()) : null, "pesId" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.PowerShell.cs new file mode 100644 index 000000000000..6aec630479e3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.PowerShell.cs @@ -0,0 +1,362 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Diagnostics data for a resource. + [System.ComponentModel.TypeConverter(typeof(DiagnosticsTypeConverter))] + public partial class Diagnostics + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Diagnostics(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Diagnostics(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Diagnostics(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Metadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Metadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition) content.GetValueForProperty("Metadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Metadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsDefinitionTypeConverter.ConvertFrom); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsStatusTypeConverter.ConvertFrom); + } + if (content.Contains("DataProviderMetadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).DataProviderMetadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata) content.GetValueForProperty("DataProviderMetadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).DataProviderMetadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("Dataset")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Dataset = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse[]) content.GetValueForProperty("Dataset",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Dataset, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsDataApiResponseTypeConverter.ConvertFrom)); + } + if (content.Contains("MetadataId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataId = (string) content.GetValueForProperty("MetadataId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataId, global::System.Convert.ToString); + } + if (content.Contains("MetadataName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataName = (string) content.GetValueForProperty("MetadataName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataName, global::System.Convert.ToString); + } + if (content.Contains("MetadataDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataDescription = (string) content.GetValueForProperty("MetadataDescription",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataDescription, global::System.Convert.ToString); + } + if (content.Contains("MetadataAuthor")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataAuthor = (string) content.GetValueForProperty("MetadataAuthor",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataAuthor, global::System.Convert.ToString); + } + if (content.Contains("MetadataCategory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataCategory = (string) content.GetValueForProperty("MetadataCategory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataCategory, global::System.Convert.ToString); + } + if (content.Contains("MetadataSupportTopicList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataSupportTopicList = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[]) content.GetValueForProperty("MetadataSupportTopicList",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataSupportTopicList, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticSupportTopicTypeConverter.ConvertFrom)); + } + if (content.Contains("MetadataAnalysisType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataAnalysisType = (string[]) content.GetValueForProperty("MetadataAnalysisType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataAnalysisType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("MetadataType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataType = (string) content.GetValueForProperty("MetadataType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataType, global::System.Convert.ToString); + } + if (content.Contains("MetadataScore")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataScore = (float?) content.GetValueForProperty("MetadataScore",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataScore, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + if (content.Contains("StatusMessage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).StatusMessage = (string) content.GetValueForProperty("StatusMessage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).StatusMessage, global::System.Convert.ToString); + } + if (content.Contains("StatusId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).StatusId = (int?) content.GetValueForProperty("StatusId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).StatusId, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DataProviderMetadataProviderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).DataProviderMetadataProviderName = (string) content.GetValueForProperty("DataProviderMetadataProviderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).DataProviderMetadataProviderName, global::System.Convert.ToString); + } + if (content.Contains("DataProviderMetadataPropertyBag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).DataProviderMetadataPropertyBag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[]) content.GetValueForProperty("DataProviderMetadataPropertyBag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).DataProviderMetadataPropertyBag, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadataPropertyBagItemTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Diagnostics(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Metadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Metadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition) content.GetValueForProperty("Metadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Metadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsDefinitionTypeConverter.ConvertFrom); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsStatusTypeConverter.ConvertFrom); + } + if (content.Contains("DataProviderMetadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).DataProviderMetadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata) content.GetValueForProperty("DataProviderMetadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).DataProviderMetadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("Dataset")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Dataset = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse[]) content.GetValueForProperty("Dataset",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).Dataset, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsDataApiResponseTypeConverter.ConvertFrom)); + } + if (content.Contains("MetadataId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataId = (string) content.GetValueForProperty("MetadataId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataId, global::System.Convert.ToString); + } + if (content.Contains("MetadataName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataName = (string) content.GetValueForProperty("MetadataName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataName, global::System.Convert.ToString); + } + if (content.Contains("MetadataDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataDescription = (string) content.GetValueForProperty("MetadataDescription",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataDescription, global::System.Convert.ToString); + } + if (content.Contains("MetadataAuthor")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataAuthor = (string) content.GetValueForProperty("MetadataAuthor",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataAuthor, global::System.Convert.ToString); + } + if (content.Contains("MetadataCategory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataCategory = (string) content.GetValueForProperty("MetadataCategory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataCategory, global::System.Convert.ToString); + } + if (content.Contains("MetadataSupportTopicList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataSupportTopicList = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[]) content.GetValueForProperty("MetadataSupportTopicList",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataSupportTopicList, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticSupportTopicTypeConverter.ConvertFrom)); + } + if (content.Contains("MetadataAnalysisType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataAnalysisType = (string[]) content.GetValueForProperty("MetadataAnalysisType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataAnalysisType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("MetadataType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataType = (string) content.GetValueForProperty("MetadataType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataType, global::System.Convert.ToString); + } + if (content.Contains("MetadataScore")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataScore = (float?) content.GetValueForProperty("MetadataScore",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).MetadataScore, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + if (content.Contains("StatusMessage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).StatusMessage = (string) content.GetValueForProperty("StatusMessage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).StatusMessage, global::System.Convert.ToString); + } + if (content.Contains("StatusId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).StatusId = (int?) content.GetValueForProperty("StatusId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).StatusId, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DataProviderMetadataProviderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).DataProviderMetadataProviderName = (string) content.GetValueForProperty("DataProviderMetadataProviderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).DataProviderMetadataProviderName, global::System.Convert.ToString); + } + if (content.Contains("DataProviderMetadataPropertyBag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).DataProviderMetadataPropertyBag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[]) content.GetValueForProperty("DataProviderMetadataPropertyBag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal)this).DataProviderMetadataPropertyBag, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadataPropertyBagItemTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Diagnostics data for a resource. + [System.ComponentModel.TypeConverter(typeof(DiagnosticsTypeConverter))] + public partial interface IDiagnostics + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.TypeConverter.cs new file mode 100644 index 000000000000..407aab8a3d64 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DiagnosticsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Diagnostics.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Diagnostics.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Diagnostics.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.cs new file mode 100644 index 000000000000..3880c6ec6772 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.cs @@ -0,0 +1,355 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Diagnostics data for a resource. + public partial class Diagnostics : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(); + + /// Collection of properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[] DataProviderMetadataPropertyBag { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).DataProviderMetadataPropertyBag; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).DataProviderMetadataPropertyBag = value ?? null /* arrayOf */; } + + /// Name of data provider + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DataProviderMetadataProviderName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).DataProviderMetadataProviderName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).DataProviderMetadataProviderName = value ?? null; } + + /// Set of data collections associated with the response. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse[] Dataset { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).Dataset; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).Dataset = value ?? null /* arrayOf */; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; } + + /// List of analysis types + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] MetadataAnalysisType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataAnalysisType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataAnalysisType = value ?? null /* arrayOf */; } + + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string MetadataAuthor { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataAuthor; } + + /// Category of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string MetadataCategory { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataCategory; } + + /// Details of the diagnostics info + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string MetadataDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataDescription; } + + /// Unique detector name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string MetadataId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataId; } + + /// Display Name of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string MetadataName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataName; } + + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public float? MetadataScore { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataScore; } + + /// List of support topics + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[] MetadataSupportTopicList { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataSupportTopicList; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataSupportTopicList = value ?? null /* arrayOf */; } + + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string MetadataType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataType; } + + /// Internal Acessors for DataProviderMetadata + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal.DataProviderMetadata { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).DataProviderMetadata; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).DataProviderMetadata = value; } + + /// Internal Acessors for Metadata + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal.Metadata { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).Metadata; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).Metadata = value; } + + /// Internal Acessors for MetadataAuthor + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal.MetadataAuthor { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataAuthor; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataAuthor = value; } + + /// Internal Acessors for MetadataCategory + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal.MetadataCategory { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataCategory; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataCategory = value; } + + /// Internal Acessors for MetadataDescription + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal.MetadataDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataDescription = value; } + + /// Internal Acessors for MetadataId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal.MetadataId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataId = value; } + + /// Internal Acessors for MetadataName + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal.MetadataName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataName = value; } + + /// Internal Acessors for MetadataScore + float? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal.MetadataScore { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataScore; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataScore = value; } + + /// Internal Acessors for MetadataType + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal.MetadataType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).MetadataType = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsProperties()); set { {_property = value;} } } + + /// Internal Acessors for Status + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsInternal.Status { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).Status; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).Status = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties _property; + + /// Diagnostics resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsProperties()); set => this._property = value; } + + /// Status + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? StatusId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).StatusId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).StatusId = value ?? default(int); } + + /// Diagnostic message + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string StatusMessage { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).StatusMessage; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)Property).StatusMessage = value ?? null; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public Diagnostics() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Diagnostics data for a resource. + public partial interface IDiagnostics : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource + { + /// Collection of properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of properties", + SerializedName = @"propertyBag", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[] DataProviderMetadataPropertyBag { get; set; } + /// Name of data provider + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of data provider", + SerializedName = @"providerName", + PossibleTypes = new [] { typeof(string) })] + string DataProviderMetadataProviderName { get; set; } + /// Set of data collections associated with the response. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set of data collections associated with the response.", + SerializedName = @"dataset", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse[] Dataset { get; set; } + /// List of analysis types + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of analysis types", + SerializedName = @"analysisTypes", + PossibleTypes = new [] { typeof(string) })] + string[] MetadataAnalysisType { get; set; } + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Authors' names of the detector", + SerializedName = @"author", + PossibleTypes = new [] { typeof(string) })] + string MetadataAuthor { get; } + /// Category of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Category of the detector", + SerializedName = @"category", + PossibleTypes = new [] { typeof(string) })] + string MetadataCategory { get; } + /// Details of the diagnostics info + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Details of the diagnostics info", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string MetadataDescription { get; } + /// Unique detector name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Unique detector name", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string MetadataId { get; } + /// Display Name of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Display Name of the detector", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string MetadataName { get; } + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Authors' names of the detector", + SerializedName = @"score", + PossibleTypes = new [] { typeof(float) })] + float? MetadataScore { get; } + /// List of support topics + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of support topics", + SerializedName = @"supportTopicList", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[] MetadataSupportTopicList { get; set; } + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Authors' names of the detector", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string MetadataType { get; } + /// Status + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Status", + SerializedName = @"statusId", + PossibleTypes = new [] { typeof(int) })] + int? StatusId { get; set; } + /// Diagnostic message + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Diagnostic message", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string StatusMessage { get; set; } + + } + /// Diagnostics data for a resource. + internal partial interface IDiagnosticsInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal + { + /// List of data providers' metadata. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata DataProviderMetadata { get; set; } + /// Collection of properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[] DataProviderMetadataPropertyBag { get; set; } + /// Name of data provider + string DataProviderMetadataProviderName { get; set; } + /// Set of data collections associated with the response. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse[] Dataset { get; set; } + /// Metadata of the diagnostics response. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition Metadata { get; set; } + /// List of analysis types + string[] MetadataAnalysisType { get; set; } + /// Authors' names of the detector + string MetadataAuthor { get; set; } + /// Category of the detector + string MetadataCategory { get; set; } + /// Details of the diagnostics info + string MetadataDescription { get; set; } + /// Unique detector name + string MetadataId { get; set; } + /// Display Name of the detector + string MetadataName { get; set; } + /// Authors' names of the detector + float? MetadataScore { get; set; } + /// List of support topics + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[] MetadataSupportTopicList { get; set; } + /// Authors' names of the detector + string MetadataType { get; set; } + /// Diagnostics resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties Property { get; set; } + /// Status of the diagnostics response. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus Status { get; set; } + /// Status + int? StatusId { get; set; } + /// Diagnostic message + string StatusMessage { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.json.cs new file mode 100644 index 000000000000..ac980cb3b641 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Diagnostics.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Diagnostics data for a resource. + public partial class Diagnostics + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Diagnostics(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Diagnostics(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.PowerShell.cs new file mode 100644 index 000000000000..ac95be1e5a43 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Diagnostics data collection for a resource. + [System.ComponentModel.TypeConverter(typeof(DiagnosticsCollectionTypeConverter))] + public partial class DiagnosticsCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DiagnosticsCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DiagnosticsCollection(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DiagnosticsCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollectionInternal)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 DiagnosticsCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollectionInternal)this).NextLink, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Diagnostics data collection for a resource. + [System.ComponentModel.TypeConverter(typeof(DiagnosticsCollectionTypeConverter))] + public partial interface IDiagnosticsCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.TypeConverter.cs new file mode 100644 index 000000000000..543d0bed3932 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DiagnosticsCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DiagnosticsCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DiagnosticsCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DiagnosticsCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.cs new file mode 100644 index 000000000000..844c0df4ef92 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Diagnostics data collection for a resource. + public partial class DiagnosticsCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollectionInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollectionInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics[] _value; + + /// Collection of diagnostic data. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DiagnosticsCollection() + { + + } + } + /// Diagnostics data collection for a resource. + public partial interface IDiagnosticsCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to next page of resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Collection of diagnostic data. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of diagnostic data.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics[] Value { get; set; } + + } + /// Diagnostics data collection for a resource. + internal partial interface IDiagnosticsCollectionInternal + + { + /// Link to next page of resources. + string NextLink { get; set; } + /// Collection of diagnostic data. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.json.cs new file mode 100644 index 000000000000..32736a2610c3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsCollection.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Diagnostics data collection for a resource. + public partial class DiagnosticsCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DiagnosticsCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Diagnostics.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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DiagnosticsCollection(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.PowerShell.cs new file mode 100644 index 000000000000..0070370acf27 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.PowerShell.cs @@ -0,0 +1,210 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Diagnostics data returned from a detector + [System.ComponentModel.TypeConverter(typeof(DiagnosticsDataApiResponseTypeConverter))] + public partial class DiagnosticsDataApiResponse + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DiagnosticsDataApiResponse(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DiagnosticsDataApiResponse(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DiagnosticsDataApiResponse(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Table")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).Table = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject) content.GetValueForProperty("Table",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).Table, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataTableResponseObjectTypeConverter.ConvertFrom); + } + if (content.Contains("RenderingProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingProperty = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering) content.GetValueForProperty("RenderingProperty",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingProperty, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticRenderingTypeConverter.ConvertFrom); + } + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("TableColumn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).TableColumn = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn[]) content.GetValueForProperty("TableColumn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).TableColumn, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataTableResponseColumnTypeConverter.ConvertFrom)); + } + if (content.Contains("TableRow")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).TableRow = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny[]) content.GetValueForProperty("TableRow",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).TableRow, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.AnyTypeConverter.ConvertFrom)); + } + if (content.Contains("RenderingPropertyType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyType = (int?) content.GetValueForProperty("RenderingPropertyType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyType, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("RenderingPropertyTitle")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyTitle = (string) content.GetValueForProperty("RenderingPropertyTitle",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyTitle, global::System.Convert.ToString); + } + if (content.Contains("RenderingPropertyDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyDescription = (string) content.GetValueForProperty("RenderingPropertyDescription",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyDescription, global::System.Convert.ToString); + } + if (content.Contains("RenderingPropertyIsVisible")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyIsVisible = (bool?) content.GetValueForProperty("RenderingPropertyIsVisible",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyIsVisible, (__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 DiagnosticsDataApiResponse(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Table")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).Table = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject) content.GetValueForProperty("Table",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).Table, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataTableResponseObjectTypeConverter.ConvertFrom); + } + if (content.Contains("RenderingProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingProperty = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering) content.GetValueForProperty("RenderingProperty",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingProperty, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticRenderingTypeConverter.ConvertFrom); + } + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("TableColumn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).TableColumn = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn[]) content.GetValueForProperty("TableColumn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).TableColumn, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataTableResponseColumnTypeConverter.ConvertFrom)); + } + if (content.Contains("TableRow")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).TableRow = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny[]) content.GetValueForProperty("TableRow",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).TableRow, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.AnyTypeConverter.ConvertFrom)); + } + if (content.Contains("RenderingPropertyType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyType = (int?) content.GetValueForProperty("RenderingPropertyType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyType, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("RenderingPropertyTitle")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyTitle = (string) content.GetValueForProperty("RenderingPropertyTitle",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyTitle, global::System.Convert.ToString); + } + if (content.Contains("RenderingPropertyDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyDescription = (string) content.GetValueForProperty("RenderingPropertyDescription",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyDescription, global::System.Convert.ToString); + } + if (content.Contains("RenderingPropertyIsVisible")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyIsVisible = (bool?) content.GetValueForProperty("RenderingPropertyIsVisible",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal)this).RenderingPropertyIsVisible, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Diagnostics data returned from a detector + [System.ComponentModel.TypeConverter(typeof(DiagnosticsDataApiResponseTypeConverter))] + public partial interface IDiagnosticsDataApiResponse + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.TypeConverter.cs new file mode 100644 index 000000000000..8b1c63990b0e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DiagnosticsDataApiResponseTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DiagnosticsDataApiResponse.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DiagnosticsDataApiResponse.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DiagnosticsDataApiResponse.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.cs new file mode 100644 index 000000000000..49b647078002 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.cs @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Diagnostics data returned from a detector + public partial class DiagnosticsDataApiResponse : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal + { + + /// Internal Acessors for RenderingProperty + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal.RenderingProperty { get => (this._renderingProperty = this._renderingProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticRendering()); set { {_renderingProperty = value;} } } + + /// Internal Acessors for Table + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponseInternal.Table { get => (this._table = this._table ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataTableResponseObject()); set { {_table = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering _renderingProperty; + + /// Details of the table response + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering RenderingProperty { get => (this._renderingProperty = this._renderingProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticRendering()); set => this._renderingProperty = value; } + + /// Description of the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RenderingPropertyDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)RenderingProperty).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)RenderingProperty).Description = value ?? null; } + + /// Flag if the table should be rendered + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? RenderingPropertyIsVisible { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)RenderingProperty).IsVisible; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)RenderingProperty).IsVisible = value ?? default(bool); } + + /// Title of the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RenderingPropertyTitle { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)RenderingProperty).Title; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)RenderingProperty).Title = value ?? null; } + + /// Rendering type + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? RenderingPropertyType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)RenderingProperty).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRenderingInternal)RenderingProperty).Type = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject _table; + + /// Table response + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject Table { get => (this._table = this._table ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataTableResponseObject()); set => this._table = value; } + + /// Columns in the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn[] TableColumn { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)Table).Column; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)Table).Column = value ?? null /* arrayOf */; } + + /// Table name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string TableName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)Table).TableName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)Table).TableName = value ?? null; } + + /// Rows in the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny[] TableRow { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)Table).Row; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObjectInternal)Table).Row = value ?? null /* arrayOf */; } + + /// Creates an new instance. + public DiagnosticsDataApiResponse() + { + + } + } + /// Diagnostics data returned from a detector + public partial interface IDiagnosticsDataApiResponse : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Description of the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the table", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string RenderingPropertyDescription { get; set; } + /// Flag if the table should be rendered + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Flag if the table should be rendered", + SerializedName = @"isVisible", + PossibleTypes = new [] { typeof(bool) })] + bool? RenderingPropertyIsVisible { get; set; } + /// Title of the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Title of the table", + SerializedName = @"title", + PossibleTypes = new [] { typeof(string) })] + string RenderingPropertyTitle { get; set; } + /// Rendering type + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Rendering type", + SerializedName = @"type", + PossibleTypes = new [] { typeof(int) })] + int? RenderingPropertyType { get; set; } + /// Columns in the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Columns in the table", + SerializedName = @"columns", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn[] TableColumn { get; set; } + /// Table name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Table name", + SerializedName = @"tableName", + PossibleTypes = new [] { typeof(string) })] + string TableName { get; set; } + /// Rows in the table + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Rows in the table", + SerializedName = @"rows", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny[] TableRow { get; set; } + + } + /// Diagnostics data returned from a detector + internal partial interface IDiagnosticsDataApiResponseInternal + + { + /// Details of the table response + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticRendering RenderingProperty { get; set; } + /// Description of the table + string RenderingPropertyDescription { get; set; } + /// Flag if the table should be rendered + bool? RenderingPropertyIsVisible { get; set; } + /// Title of the table + string RenderingPropertyTitle { get; set; } + /// Rendering type + int? RenderingPropertyType { get; set; } + /// Table response + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseObject Table { get; set; } + /// Columns in the table + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataTableResponseColumn[] TableColumn { get; set; } + /// Table name + string TableName { get; set; } + /// Rows in the table + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny[] TableRow { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.json.cs new file mode 100644 index 000000000000..62f975751bf4 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDataApiResponse.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Diagnostics data returned from a detector + public partial class DiagnosticsDataApiResponse + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DiagnosticsDataApiResponse(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_table = If( json?.PropertyT("table"), out var __jsonTable) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataTableResponseObject.FromJson(__jsonTable) : Table;} + {_renderingProperty = If( json?.PropertyT("renderingProperties"), out var __jsonRenderingProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticRendering.FromJson(__jsonRenderingProperties) : RenderingProperty;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DiagnosticsDataApiResponse(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._table ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._table.ToJson(null,serializationMode) : null, "table" ,container.Add ); + AddIf( null != this._renderingProperty ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._renderingProperty.ToJson(null,serializationMode) : null, "renderingProperties" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.PowerShell.cs new file mode 100644 index 000000000000..37ca2d67dd54 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.PowerShell.cs @@ -0,0 +1,210 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Metadata of the diagnostics response + [System.ComponentModel.TypeConverter(typeof(DiagnosticsDefinitionTypeConverter))] + public partial class DiagnosticsDefinition + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DiagnosticsDefinition(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DiagnosticsDefinition(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DiagnosticsDefinition(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("Author")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Author = (string) content.GetValueForProperty("Author",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Author, global::System.Convert.ToString); + } + if (content.Contains("Category")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Category = (string) content.GetValueForProperty("Category",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Category, global::System.Convert.ToString); + } + if (content.Contains("SupportTopicList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).SupportTopicList = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[]) content.GetValueForProperty("SupportTopicList",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).SupportTopicList, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticSupportTopicTypeConverter.ConvertFrom)); + } + if (content.Contains("AnalysisType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).AnalysisType = (string[]) content.GetValueForProperty("AnalysisType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).AnalysisType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Score")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Score = (float?) content.GetValueForProperty("Score",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Score, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DiagnosticsDefinition(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("Author")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Author = (string) content.GetValueForProperty("Author",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Author, global::System.Convert.ToString); + } + if (content.Contains("Category")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Category = (string) content.GetValueForProperty("Category",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Category, global::System.Convert.ToString); + } + if (content.Contains("SupportTopicList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).SupportTopicList = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[]) content.GetValueForProperty("SupportTopicList",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).SupportTopicList, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticSupportTopicTypeConverter.ConvertFrom)); + } + if (content.Contains("AnalysisType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).AnalysisType = (string[]) content.GetValueForProperty("AnalysisType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).AnalysisType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Score")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Score = (float?) content.GetValueForProperty("Score",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)this).Score, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Metadata of the diagnostics response + [System.ComponentModel.TypeConverter(typeof(DiagnosticsDefinitionTypeConverter))] + public partial interface IDiagnosticsDefinition + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.TypeConverter.cs new file mode 100644 index 000000000000..1faffc39b105 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DiagnosticsDefinitionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DiagnosticsDefinition.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DiagnosticsDefinition.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DiagnosticsDefinition.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.cs new file mode 100644 index 000000000000..3e552db156f8 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.cs @@ -0,0 +1,208 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Metadata of the diagnostics response + public partial class DiagnosticsDefinition : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal + { + + /// Backing field for property. + private string[] _analysisType; + + /// List of analysis types + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] AnalysisType { get => this._analysisType; set => this._analysisType = value; } + + /// Backing field for property. + private string _author; + + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Author { get => this._author; } + + /// Backing field for property. + private string _category; + + /// Category of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Category { get => this._category; } + + /// Backing field for property. + private string _description; + + /// Details of the diagnostics info + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Description { get => this._description; } + + /// Backing field for property. + private string _id; + + /// Unique detector name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Id { get => this._id; } + + /// Internal Acessors for Author + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal.Author { get => this._author; set { {_author = value;} } } + + /// Internal Acessors for Category + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal.Category { get => this._category; set { {_category = value;} } } + + /// Internal Acessors for Description + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal.Description { get => this._description; set { {_description = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal.Id { get => this._id; set { {_id = value;} } } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Score + float? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal.Score { get => this._score; set { {_score = value;} } } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _name; + + /// Display Name of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private float? _score; + + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public float? Score { get => this._score; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[] _supportTopicList; + + /// List of support topics + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[] SupportTopicList { get => this._supportTopicList; set => this._supportTopicList = value; } + + /// Backing field for property. + private string _type; + + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// Creates an new instance. + public DiagnosticsDefinition() + { + + } + } + /// Metadata of the diagnostics response + public partial interface IDiagnosticsDefinition : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// List of analysis types + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of analysis types", + SerializedName = @"analysisTypes", + PossibleTypes = new [] { typeof(string) })] + string[] AnalysisType { get; set; } + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Authors' names of the detector", + SerializedName = @"author", + PossibleTypes = new [] { typeof(string) })] + string Author { get; } + /// Category of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Category of the detector", + SerializedName = @"category", + PossibleTypes = new [] { typeof(string) })] + string Category { get; } + /// Details of the diagnostics info + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Details of the diagnostics info", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; } + /// Unique detector name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Unique detector name", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; } + /// Display Name of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Display Name of the detector", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Authors' names of the detector", + SerializedName = @"score", + PossibleTypes = new [] { typeof(float) })] + float? Score { get; } + /// List of support topics + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of support topics", + SerializedName = @"supportTopicList", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[] SupportTopicList { get; set; } + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Authors' names of the detector", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// Metadata of the diagnostics response + internal partial interface IDiagnosticsDefinitionInternal + + { + /// List of analysis types + string[] AnalysisType { get; set; } + /// Authors' names of the detector + string Author { get; set; } + /// Category of the detector + string Category { get; set; } + /// Details of the diagnostics info + string Description { get; set; } + /// Unique detector name + string Id { get; set; } + /// Display Name of the detector + string Name { get; set; } + /// Authors' names of the detector + float? Score { get; set; } + /// List of support topics + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[] SupportTopicList { get; set; } + /// Authors' names of the detector + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.json.cs new file mode 100644 index 000000000000..6158456ba2bc --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsDefinition.json.cs @@ -0,0 +1,161 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Metadata of the diagnostics response + public partial class DiagnosticsDefinition + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DiagnosticsDefinition(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_author = If( json?.PropertyT("author"), out var __jsonAuthor) ? (string)__jsonAuthor : (string)Author;} + {_category = If( json?.PropertyT("category"), out var __jsonCategory) ? (string)__jsonCategory : (string)Category;} + {_supportTopicList = If( json?.PropertyT("supportTopicList"), out var __jsonSupportTopicList) ? If( __jsonSupportTopicList as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticSupportTopic.FromJson(__u) )) ))() : null : SupportTopicList;} + {_analysisType = If( json?.PropertyT("analysisTypes"), out var __jsonAnalysisTypes) ? If( __jsonAnalysisTypes as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : AnalysisType;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + {_score = If( json?.PropertyT("score"), out var __jsonScore) ? (float?)__jsonScore : Score;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DiagnosticsDefinition(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._id.ToString()) : null, "id" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._author)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._author.ToString()) : null, "author" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._category)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._category.ToString()) : null, "category" ,container.Add ); + } + if (null != this._supportTopicList) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._supportTopicList ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("supportTopicList",__w); + } + if (null != this._analysisType) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._analysisType ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("analysisTypes",__r); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._score ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((float)this._score) : null, "score" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.PowerShell.cs new file mode 100644 index 000000000000..5f9d336b775e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.PowerShell.cs @@ -0,0 +1,274 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Diagnostics resource specific properties + [System.ComponentModel.TypeConverter(typeof(DiagnosticsPropertiesTypeConverter))] + public partial class DiagnosticsProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DiagnosticsProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DiagnosticsProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DiagnosticsProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Metadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).Metadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition) content.GetValueForProperty("Metadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).Metadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsDefinitionTypeConverter.ConvertFrom); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsStatusTypeConverter.ConvertFrom); + } + if (content.Contains("DataProviderMetadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).DataProviderMetadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata) content.GetValueForProperty("DataProviderMetadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).DataProviderMetadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("Dataset")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).Dataset = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse[]) content.GetValueForProperty("Dataset",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).Dataset, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsDataApiResponseTypeConverter.ConvertFrom)); + } + if (content.Contains("MetadataId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataId = (string) content.GetValueForProperty("MetadataId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataId, global::System.Convert.ToString); + } + if (content.Contains("MetadataName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataName = (string) content.GetValueForProperty("MetadataName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataName, global::System.Convert.ToString); + } + if (content.Contains("MetadataDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataDescription = (string) content.GetValueForProperty("MetadataDescription",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataDescription, global::System.Convert.ToString); + } + if (content.Contains("MetadataAuthor")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataAuthor = (string) content.GetValueForProperty("MetadataAuthor",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataAuthor, global::System.Convert.ToString); + } + if (content.Contains("MetadataCategory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataCategory = (string) content.GetValueForProperty("MetadataCategory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataCategory, global::System.Convert.ToString); + } + if (content.Contains("MetadataSupportTopicList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataSupportTopicList = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[]) content.GetValueForProperty("MetadataSupportTopicList",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataSupportTopicList, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticSupportTopicTypeConverter.ConvertFrom)); + } + if (content.Contains("MetadataAnalysisType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataAnalysisType = (string[]) content.GetValueForProperty("MetadataAnalysisType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataAnalysisType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("MetadataType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataType = (string) content.GetValueForProperty("MetadataType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataType, global::System.Convert.ToString); + } + if (content.Contains("MetadataScore")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataScore = (float?) content.GetValueForProperty("MetadataScore",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataScore, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + if (content.Contains("StatusMessage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).StatusMessage = (string) content.GetValueForProperty("StatusMessage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).StatusMessage, global::System.Convert.ToString); + } + if (content.Contains("StatusId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).StatusId = (int?) content.GetValueForProperty("StatusId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).StatusId, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DataProviderMetadataProviderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).DataProviderMetadataProviderName = (string) content.GetValueForProperty("DataProviderMetadataProviderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).DataProviderMetadataProviderName, global::System.Convert.ToString); + } + if (content.Contains("DataProviderMetadataPropertyBag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).DataProviderMetadataPropertyBag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[]) content.GetValueForProperty("DataProviderMetadataPropertyBag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).DataProviderMetadataPropertyBag, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadataPropertyBagItemTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DiagnosticsProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Metadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).Metadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition) content.GetValueForProperty("Metadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).Metadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsDefinitionTypeConverter.ConvertFrom); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsStatusTypeConverter.ConvertFrom); + } + if (content.Contains("DataProviderMetadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).DataProviderMetadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata) content.GetValueForProperty("DataProviderMetadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).DataProviderMetadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("Dataset")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).Dataset = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse[]) content.GetValueForProperty("Dataset",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).Dataset, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsDataApiResponseTypeConverter.ConvertFrom)); + } + if (content.Contains("MetadataId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataId = (string) content.GetValueForProperty("MetadataId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataId, global::System.Convert.ToString); + } + if (content.Contains("MetadataName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataName = (string) content.GetValueForProperty("MetadataName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataName, global::System.Convert.ToString); + } + if (content.Contains("MetadataDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataDescription = (string) content.GetValueForProperty("MetadataDescription",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataDescription, global::System.Convert.ToString); + } + if (content.Contains("MetadataAuthor")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataAuthor = (string) content.GetValueForProperty("MetadataAuthor",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataAuthor, global::System.Convert.ToString); + } + if (content.Contains("MetadataCategory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataCategory = (string) content.GetValueForProperty("MetadataCategory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataCategory, global::System.Convert.ToString); + } + if (content.Contains("MetadataSupportTopicList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataSupportTopicList = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[]) content.GetValueForProperty("MetadataSupportTopicList",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataSupportTopicList, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticSupportTopicTypeConverter.ConvertFrom)); + } + if (content.Contains("MetadataAnalysisType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataAnalysisType = (string[]) content.GetValueForProperty("MetadataAnalysisType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataAnalysisType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("MetadataType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataType = (string) content.GetValueForProperty("MetadataType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataType, global::System.Convert.ToString); + } + if (content.Contains("MetadataScore")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataScore = (float?) content.GetValueForProperty("MetadataScore",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).MetadataScore, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + if (content.Contains("StatusMessage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).StatusMessage = (string) content.GetValueForProperty("StatusMessage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).StatusMessage, global::System.Convert.ToString); + } + if (content.Contains("StatusId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).StatusId = (int?) content.GetValueForProperty("StatusId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).StatusId, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DataProviderMetadataProviderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).DataProviderMetadataProviderName = (string) content.GetValueForProperty("DataProviderMetadataProviderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).DataProviderMetadataProviderName, global::System.Convert.ToString); + } + if (content.Contains("DataProviderMetadataPropertyBag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).DataProviderMetadataPropertyBag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[]) content.GetValueForProperty("DataProviderMetadataPropertyBag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal)this).DataProviderMetadataPropertyBag, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadataPropertyBagItemTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Diagnostics resource specific properties + [System.ComponentModel.TypeConverter(typeof(DiagnosticsPropertiesTypeConverter))] + public partial interface IDiagnosticsProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.TypeConverter.cs new file mode 100644 index 000000000000..8654ff7d198c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DiagnosticsPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DiagnosticsProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DiagnosticsProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DiagnosticsProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.cs new file mode 100644 index 000000000000..3af58dd0ea46 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.cs @@ -0,0 +1,290 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Diagnostics resource specific properties + public partial class DiagnosticsProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata _dataProviderMetadata; + + /// List of data providers' metadata. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata DataProviderMetadata { get => (this._dataProviderMetadata = this._dataProviderMetadata ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadata()); set => this._dataProviderMetadata = value; } + + /// Collection of properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[] DataProviderMetadataPropertyBag { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataInternal)DataProviderMetadata).PropertyBag; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataInternal)DataProviderMetadata).PropertyBag = value ?? null /* arrayOf */; } + + /// Name of data provider + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DataProviderMetadataProviderName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataInternal)DataProviderMetadata).ProviderName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataInternal)DataProviderMetadata).ProviderName = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse[] _dataset; + + /// Set of data collections associated with the response. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse[] Dataset { get => this._dataset; set => this._dataset = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition _metadata; + + /// Metadata of the diagnostics response. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition Metadata { get => (this._metadata = this._metadata ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsDefinition()); set => this._metadata = value; } + + /// List of analysis types + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] MetadataAnalysisType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).AnalysisType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).AnalysisType = value ?? null /* arrayOf */; } + + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string MetadataAuthor { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Author; } + + /// Category of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string MetadataCategory { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Category; } + + /// Details of the diagnostics info + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string MetadataDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Description; } + + /// Unique detector name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string MetadataId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Id; } + + /// Display Name of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string MetadataName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Name; } + + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public float? MetadataScore { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Score; } + + /// List of support topics + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[] MetadataSupportTopicList { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).SupportTopicList; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).SupportTopicList = value ?? null /* arrayOf */; } + + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string MetadataType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Type; } + + /// Internal Acessors for DataProviderMetadata + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal.DataProviderMetadata { get => (this._dataProviderMetadata = this._dataProviderMetadata ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadata()); set { {_dataProviderMetadata = value;} } } + + /// Internal Acessors for Metadata + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal.Metadata { get => (this._metadata = this._metadata ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsDefinition()); set { {_metadata = value;} } } + + /// Internal Acessors for MetadataAuthor + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal.MetadataAuthor { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Author; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Author = value; } + + /// Internal Acessors for MetadataCategory + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal.MetadataCategory { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Category; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Category = value; } + + /// Internal Acessors for MetadataDescription + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal.MetadataDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Description = value; } + + /// Internal Acessors for MetadataId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal.MetadataId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Id = value; } + + /// Internal Acessors for MetadataName + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal.MetadataName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Name = value; } + + /// Internal Acessors for MetadataScore + float? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal.MetadataScore { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Score; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Score = value; } + + /// Internal Acessors for MetadataType + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal.MetadataType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinitionInternal)Metadata).Type = value; } + + /// Internal Acessors for Status + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsPropertiesInternal.Status { get => (this._status = this._status ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsStatus()); set { {_status = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus _status; + + /// Status of the diagnostics response. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus Status { get => (this._status = this._status ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsStatus()); set => this._status = value; } + + /// Status + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? StatusId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatusInternal)Status).StatusId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatusInternal)Status).StatusId = value ?? default(int); } + + /// Diagnostic message + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string StatusMessage { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatusInternal)Status).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatusInternal)Status).Message = value ?? null; } + + /// Creates an new instance. + public DiagnosticsProperties() + { + + } + } + /// Diagnostics resource specific properties + public partial interface IDiagnosticsProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Collection of properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of properties", + SerializedName = @"propertyBag", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[] DataProviderMetadataPropertyBag { get; set; } + /// Name of data provider + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of data provider", + SerializedName = @"providerName", + PossibleTypes = new [] { typeof(string) })] + string DataProviderMetadataProviderName { get; set; } + /// Set of data collections associated with the response. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set of data collections associated with the response.", + SerializedName = @"dataset", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse[] Dataset { get; set; } + /// List of analysis types + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of analysis types", + SerializedName = @"analysisTypes", + PossibleTypes = new [] { typeof(string) })] + string[] MetadataAnalysisType { get; set; } + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Authors' names of the detector", + SerializedName = @"author", + PossibleTypes = new [] { typeof(string) })] + string MetadataAuthor { get; } + /// Category of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Category of the detector", + SerializedName = @"category", + PossibleTypes = new [] { typeof(string) })] + string MetadataCategory { get; } + /// Details of the diagnostics info + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Details of the diagnostics info", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string MetadataDescription { get; } + /// Unique detector name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Unique detector name", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string MetadataId { get; } + /// Display Name of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Display Name of the detector", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string MetadataName { get; } + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Authors' names of the detector", + SerializedName = @"score", + PossibleTypes = new [] { typeof(float) })] + float? MetadataScore { get; } + /// List of support topics + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of support topics", + SerializedName = @"supportTopicList", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[] MetadataSupportTopicList { get; set; } + /// Authors' names of the detector + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Authors' names of the detector", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string MetadataType { get; } + /// Status + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Status", + SerializedName = @"statusId", + PossibleTypes = new [] { typeof(int) })] + int? StatusId { get; set; } + /// Diagnostic message + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Diagnostic message", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string StatusMessage { get; set; } + + } + /// Diagnostics resource specific properties + internal partial interface IDiagnosticsPropertiesInternal + + { + /// List of data providers' metadata. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadata DataProviderMetadata { get; set; } + /// Collection of properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticDataProviderMetadataPropertyBagItem[] DataProviderMetadataPropertyBag { get; set; } + /// Name of data provider + string DataProviderMetadataProviderName { get; set; } + /// Set of data collections associated with the response. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse[] Dataset { get; set; } + /// Metadata of the diagnostics response. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDefinition Metadata { get; set; } + /// List of analysis types + string[] MetadataAnalysisType { get; set; } + /// Authors' names of the detector + string MetadataAuthor { get; set; } + /// Category of the detector + string MetadataCategory { get; set; } + /// Details of the diagnostics info + string MetadataDescription { get; set; } + /// Unique detector name + string MetadataId { get; set; } + /// Display Name of the detector + string MetadataName { get; set; } + /// Authors' names of the detector + float? MetadataScore { get; set; } + /// List of support topics + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticSupportTopic[] MetadataSupportTopicList { get; set; } + /// Authors' names of the detector + string MetadataType { get; set; } + /// Status of the diagnostics response. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus Status { get; set; } + /// Status + int? StatusId { get; set; } + /// Diagnostic message + string StatusMessage { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.json.cs new file mode 100644 index 000000000000..0d87a3b7ea89 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsProperties.json.cs @@ -0,0 +1,122 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Diagnostics resource specific properties + public partial class DiagnosticsProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DiagnosticsProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_metadata = If( json?.PropertyT("metadata"), out var __jsonMetadata) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsDefinition.FromJson(__jsonMetadata) : Metadata;} + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsStatus.FromJson(__jsonStatus) : Status;} + {_dataProviderMetadata = If( json?.PropertyT("dataProviderMetadata"), out var __jsonDataProviderMetadata) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticDataProviderMetadata.FromJson(__jsonDataProviderMetadata) : DataProviderMetadata;} + {_dataset = If( json?.PropertyT("dataset"), out var __jsonDataset) ? If( __jsonDataset as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsDataApiResponse) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DiagnosticsDataApiResponse.FromJson(__u) )) ))() : null : Dataset;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DiagnosticsProperties(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._metadata ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._metadata.ToJson(null,serializationMode) : null, "metadata" ,container.Add ); + AddIf( null != this._status ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._status.ToJson(null,serializationMode) : null, "status" ,container.Add ); + AddIf( null != this._dataProviderMetadata ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._dataProviderMetadata.ToJson(null,serializationMode) : null, "dataProviderMetadata" ,container.Add ); + if (null != this._dataset) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._dataset ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("dataset",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.PowerShell.cs new file mode 100644 index 000000000000..d930098c52b7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Rendering details of a diagnostics table + [System.ComponentModel.TypeConverter(typeof(DiagnosticsStatusTypeConverter))] + public partial class DiagnosticsStatus + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DiagnosticsStatus(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DiagnosticsStatus(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DiagnosticsStatus(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatusInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatusInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("StatusId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatusInternal)this).StatusId = (int?) content.GetValueForProperty("StatusId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatusInternal)this).StatusId, (__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 DiagnosticsStatus(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatusInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatusInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("StatusId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatusInternal)this).StatusId = (int?) content.GetValueForProperty("StatusId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatusInternal)this).StatusId, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Rendering details of a diagnostics table + [System.ComponentModel.TypeConverter(typeof(DiagnosticsStatusTypeConverter))] + public partial interface IDiagnosticsStatus + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.TypeConverter.cs new file mode 100644 index 000000000000..f6d2d0b919c5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DiagnosticsStatusTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DiagnosticsStatus.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DiagnosticsStatus.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DiagnosticsStatus.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.cs new file mode 100644 index 000000000000..72d9740039ee --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Rendering details of a diagnostics table + public partial class DiagnosticsStatus : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatusInternal + { + + /// Backing field for property. + private string _message; + + /// Diagnostic message + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Message { get => this._message; set => this._message = value; } + + /// Backing field for property. + private int? _statusId; + + /// Status + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? StatusId { get => this._statusId; set => this._statusId = value; } + + /// Creates an new instance. + public DiagnosticsStatus() + { + + } + } + /// Rendering details of a diagnostics table + public partial interface IDiagnosticsStatus : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Diagnostic message + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Diagnostic message", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + /// Status + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Status", + SerializedName = @"statusId", + PossibleTypes = new [] { typeof(int) })] + int? StatusId { get; set; } + + } + /// Rendering details of a diagnostics table + internal partial interface IDiagnosticsStatusInternal + + { + /// Diagnostic message + string Message { get; set; } + /// Status + int? StatusId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.json.cs new file mode 100644 index 000000000000..5ba40abe87ec --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/DiagnosticsStatus.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Rendering details of a diagnostics table + public partial class DiagnosticsStatus + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal DiagnosticsStatus(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_message = If( json?.PropertyT("message"), out var __jsonMessage) ? (string)__jsonMessage : (string)Message;} + {_statusId = If( json?.PropertyT("statusId"), out var __jsonStatusId) ? (int?)__jsonStatusId : StatusId;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsStatus FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new DiagnosticsStatus(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._message.ToString()) : null, "message" ,container.Add ); + AddIf( null != this._statusId ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._statusId) : null, "statusId" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.PowerShell.cs new file mode 100644 index 000000000000..8403b06165c3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.PowerShell.cs @@ -0,0 +1,258 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Environment Auth Token. + [System.ComponentModel.TypeConverter(typeof(EnvironmentAuthTokenTypeConverter))] + public partial class EnvironmentAuthToken + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EnvironmentAuthToken(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EnvironmentAuthToken(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EnvironmentAuthToken(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentAuthTokenPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Token")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal)this).Token = (string) content.GetValueForProperty("Token",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal)this).Token, global::System.Convert.ToString); + } + if (content.Contains("Expire")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal)this).Expire = (global::System.DateTime?) content.GetValueForProperty("Expire",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal)this).Expire, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EnvironmentAuthToken(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentAuthTokenPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Token")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal)this).Token = (string) content.GetValueForProperty("Token",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal)this).Token, global::System.Convert.ToString); + } + if (content.Contains("Expire")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal)this).Expire = (global::System.DateTime?) content.GetValueForProperty("Expire",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal)this).Expire, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + 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.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Environment Auth Token. + [System.ComponentModel.TypeConverter(typeof(EnvironmentAuthTokenTypeConverter))] + public partial interface IEnvironmentAuthToken + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.TypeConverter.cs new file mode 100644 index 000000000000..44e51095fd43 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EnvironmentAuthTokenTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EnvironmentAuthToken.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EnvironmentAuthToken.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EnvironmentAuthToken.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.cs new file mode 100644 index 000000000000..b8484736c140 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.cs @@ -0,0 +1,165 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Environment Auth Token. + public partial class EnvironmentAuthToken : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource(); + + /// Token expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public global::System.DateTime? Expire { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal)Property).Expire; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id; } + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// Internal Acessors for Expire + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal.Expire { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal)Property).Expire; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal)Property).Expire = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentAuthTokenProperties()); set { {_property = value;} } } + + /// Internal Acessors for Token + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenInternal.Token { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal)Property).Token; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal)Property).Token = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties _property; + + /// Environment auth token resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentAuthTokenProperties()); set => this._property = value; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// Auth token value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Token { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal)Property).Token; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type; } + + /// Creates an new instance. + public EnvironmentAuthToken() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// Environment Auth Token. + public partial interface IEnvironmentAuthToken : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource + { + /// Token expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Token expiration date.", + SerializedName = @"expires", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? Expire { get; } + /// Auth token value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Auth token value.", + SerializedName = @"token", + PossibleTypes = new [] { typeof(string) })] + string Token { get; } + + } + /// Environment Auth Token. + internal partial interface IEnvironmentAuthTokenInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal + { + /// Token expiration date. + global::System.DateTime? Expire { get; set; } + /// Environment auth token resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties Property { get; set; } + /// Auth token value. + string Token { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.json.cs new file mode 100644 index 000000000000..61c1fabee4df --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthToken.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Environment Auth Token. + public partial class EnvironmentAuthToken + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal EnvironmentAuthToken(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentAuthTokenProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new EnvironmentAuthToken(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.PowerShell.cs new file mode 100644 index 000000000000..7cf9636fa83b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Environment auth token resource specific properties + [System.ComponentModel.TypeConverter(typeof(EnvironmentAuthTokenPropertiesTypeConverter))] + public partial class EnvironmentAuthTokenProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EnvironmentAuthTokenProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EnvironmentAuthTokenProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EnvironmentAuthTokenProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Token")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal)this).Token = (string) content.GetValueForProperty("Token",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal)this).Token, global::System.Convert.ToString); + } + if (content.Contains("Expire")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal)this).Expire = (global::System.DateTime?) content.GetValueForProperty("Expire",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal)this).Expire, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EnvironmentAuthTokenProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Token")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal)this).Token = (string) content.GetValueForProperty("Token",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal)this).Token, global::System.Convert.ToString); + } + if (content.Contains("Expire")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal)this).Expire = (global::System.DateTime?) content.GetValueForProperty("Expire",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal)this).Expire, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + 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.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Environment auth token resource specific properties + [System.ComponentModel.TypeConverter(typeof(EnvironmentAuthTokenPropertiesTypeConverter))] + public partial interface IEnvironmentAuthTokenProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.TypeConverter.cs new file mode 100644 index 000000000000..3246e8dda56f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EnvironmentAuthTokenPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EnvironmentAuthTokenProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EnvironmentAuthTokenProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EnvironmentAuthTokenProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.cs new file mode 100644 index 000000000000..0d7e2bf099ef --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Environment auth token resource specific properties + public partial class EnvironmentAuthTokenProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal + { + + /// Backing field for property. + private global::System.DateTime? _expire; + + /// Token expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public global::System.DateTime? Expire { get => this._expire; } + + /// Internal Acessors for Expire + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal.Expire { get => this._expire; set { {_expire = value;} } } + + /// Internal Acessors for Token + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenPropertiesInternal.Token { get => this._token; set { {_token = value;} } } + + /// Backing field for property. + private string _token; + + /// Auth token value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Token { get => this._token; } + + /// Creates an new instance. + public EnvironmentAuthTokenProperties() + { + + } + } + /// Environment auth token resource specific properties + public partial interface IEnvironmentAuthTokenProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Token expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Token expiration date.", + SerializedName = @"expires", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? Expire { get; } + /// Auth token value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Auth token value.", + SerializedName = @"token", + PossibleTypes = new [] { typeof(string) })] + string Token { get; } + + } + /// Environment auth token resource specific properties + internal partial interface IEnvironmentAuthTokenPropertiesInternal + + { + /// Token expiration date. + global::System.DateTime? Expire { get; set; } + /// Auth token value. + string Token { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.json.cs new file mode 100644 index 000000000000..10e84d125d30 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentAuthTokenProperties.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Environment auth token resource specific properties + public partial class EnvironmentAuthTokenProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal EnvironmentAuthTokenProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_token = If( json?.PropertyT("token"), out var __jsonToken) ? (string)__jsonToken : (string)Token;} + {_expire = If( json?.PropertyT("expires"), out var __jsonExpires) ? global::System.DateTime.TryParse((string)__jsonExpires, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonExpiresValue) ? __jsonExpiresValue : Expire : Expire;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthTokenProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new EnvironmentAuthTokenProperties(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._token)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._token.ToString()) : null, "token" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._expire ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._expire?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "expires" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.PowerShell.cs new file mode 100644 index 000000000000..e63652ebe719 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Managed Environment resource SKU properties. + [System.ComponentModel.TypeConverter(typeof(EnvironmentSkuPropertiesTypeConverter))] + public partial class EnvironmentSkuProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EnvironmentSkuProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EnvironmentSkuProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EnvironmentSkuProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuPropertiesInternal)this).Name = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuPropertiesInternal)this).Name, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EnvironmentSkuProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuPropertiesInternal)this).Name = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuPropertiesInternal)this).Name, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Managed Environment resource SKU properties. + [System.ComponentModel.TypeConverter(typeof(EnvironmentSkuPropertiesTypeConverter))] + public partial interface IEnvironmentSkuProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.TypeConverter.cs new file mode 100644 index 000000000000..2a91ca4e5553 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EnvironmentSkuPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EnvironmentSkuProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EnvironmentSkuProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EnvironmentSkuProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.cs new file mode 100644 index 000000000000..53619ebc1528 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Managed Environment resource SKU properties. + public partial class EnvironmentSkuProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName _name; + + /// Name of the Sku. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName Name { get => this._name; set => this._name = value; } + + /// Creates an new instance. + public EnvironmentSkuProperties() + { + + } + } + /// Managed Environment resource SKU properties. + public partial interface IEnvironmentSkuProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Name of the Sku. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Sku.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName Name { get; set; } + + } + /// Managed Environment resource SKU properties. + internal partial interface IEnvironmentSkuPropertiesInternal + + { + /// Name of the Sku. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName Name { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.json.cs new file mode 100644 index 000000000000..6ca7922b6fce --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentSkuProperties.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Managed Environment resource SKU properties. + public partial class EnvironmentSkuProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal EnvironmentSkuProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new EnvironmentSkuProperties(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/EnvironmentVar.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.PowerShell.cs new file mode 100644 index 000000000000..cf836c24341c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App container environment variable. + [System.ComponentModel.TypeConverter(typeof(EnvironmentVarTypeConverter))] + public partial class EnvironmentVar + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EnvironmentVar(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EnvironmentVar(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EnvironmentVar(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVarInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVarInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVarInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVarInternal)this).Value, global::System.Convert.ToString); + } + if (content.Contains("SecretRef")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVarInternal)this).SecretRef = (string) content.GetValueForProperty("SecretRef",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVarInternal)this).SecretRef, 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 EnvironmentVar(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVarInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVarInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVarInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVarInternal)this).Value, global::System.Convert.ToString); + } + if (content.Contains("SecretRef")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVarInternal)this).SecretRef = (string) content.GetValueForProperty("SecretRef",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVarInternal)this).SecretRef, 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.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App container environment variable. + [System.ComponentModel.TypeConverter(typeof(EnvironmentVarTypeConverter))] + public partial interface IEnvironmentVar + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.TypeConverter.cs new file mode 100644 index 000000000000..328f13cbd4cd --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EnvironmentVarTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EnvironmentVar.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EnvironmentVar.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EnvironmentVar.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.cs new file mode 100644 index 000000000000..b77d30a5f7f5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.cs @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container environment variable. + public partial class EnvironmentVar : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVarInternal + { + + /// Backing field for property. + private string _name; + + /// Environment variable name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _secretRef; + + /// + /// Name of the Container App secret from which to pull the environment variable value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string SecretRef { get => this._secretRef; set => this._secretRef = value; } + + /// Backing field for property. + private string _value; + + /// Non-secret environment variable value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public EnvironmentVar() + { + + } + } + /// Container App container environment variable. + public partial interface IEnvironmentVar : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Environment variable name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Environment variable name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// + /// Name of the Container App secret from which to pull the environment variable value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Container App secret from which to pull the environment variable value.", + SerializedName = @"secretRef", + PossibleTypes = new [] { typeof(string) })] + string SecretRef { get; set; } + /// Non-secret environment variable value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Non-secret environment variable value.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(string) })] + string Value { get; set; } + + } + /// Container App container environment variable. + internal partial interface IEnvironmentVarInternal + + { + /// Environment variable name. + string Name { get; set; } + /// + /// Name of the Container App secret from which to pull the environment variable value. + /// + string SecretRef { get; set; } + /// Non-secret environment variable value. + string Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.json.cs new file mode 100644 index 000000000000..90b72ef017c4 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/EnvironmentVar.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container environment variable. + public partial class EnvironmentVar + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal EnvironmentVar(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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;} + {_secretRef = If( json?.PropertyT("secretRef"), out var __jsonSecretRef) ? (string)__jsonSecretRef : (string)SecretRef;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new EnvironmentVar(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._value)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._value.ToString()) : null, "value" ,container.Add ); + AddIf( null != (((object)this._secretRef)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._secretRef.ToString()) : null, "secretRef" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.PowerShell.cs new file mode 100644 index 000000000000..6de116e0f69b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The complex type of the extended location. + [System.ComponentModel.TypeConverter(typeof(ExtendedLocationTypeConverter))] + public partial class ExtendedLocation + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ExtendedLocation(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ExtendedLocation(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ExtendedLocation(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ExtendedLocation(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The complex type of the extended location. + [System.ComponentModel.TypeConverter(typeof(ExtendedLocationTypeConverter))] + public partial interface IExtendedLocation + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.TypeConverter.cs new file mode 100644 index 000000000000..0399fa397b27 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ExtendedLocationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ExtendedLocation.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ExtendedLocation.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ExtendedLocation.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.cs new file mode 100644 index 000000000000..c42581780da2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The complex type of the extended location. + public partial class ExtendedLocation : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocationInternal + { + + /// Backing field for property. + private string _name; + + /// The name of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes? _type; + + /// The type of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes? Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public ExtendedLocation() + { + + } + } + /// The complex type of the extended location. + public partial interface IExtendedLocation : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The name of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the extended location.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// The type of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the extended location.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes? Type { get; set; } + + } + /// The complex type of the extended location. + internal partial interface IExtendedLocationInternal + + { + /// The name of the extended location. + string Name { get; set; } + /// The type of the extended location. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes? Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.json.cs new file mode 100644 index 000000000000..38b83d47dfca --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ExtendedLocation.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The complex type of the extended location. + public partial class ExtendedLocation + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ExtendedLocation(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IExtendedLocation FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ExtendedLocation(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/Facebook.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.PowerShell.cs new file mode 100644 index 000000000000..50ed971f9a69 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.PowerShell.cs @@ -0,0 +1,192 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the Facebook provider. + [System.ComponentModel.TypeConverter(typeof(FacebookTypeConverter))] + public partial class Facebook + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IFacebook DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Facebook(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebook DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Facebook(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Facebook(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("GraphApiVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).GraphApiVersion = (string) content.GetValueForProperty("GraphApiVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).GraphApiVersion, global::System.Convert.ToString); + } + if (content.Contains("LoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).LoginScope = (string[]) content.GetValueForProperty("LoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).LoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RegistrationAppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).RegistrationAppId = (string) content.GetValueForProperty("RegistrationAppId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).RegistrationAppId, global::System.Convert.ToString); + } + if (content.Contains("RegistrationAppSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).RegistrationAppSecretSettingName = (string) content.GetValueForProperty("RegistrationAppSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).RegistrationAppSecretSettingName, 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 Facebook(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("GraphApiVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).GraphApiVersion = (string) content.GetValueForProperty("GraphApiVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).GraphApiVersion, global::System.Convert.ToString); + } + if (content.Contains("LoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).LoginScope = (string[]) content.GetValueForProperty("LoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).LoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RegistrationAppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).RegistrationAppId = (string) content.GetValueForProperty("RegistrationAppId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).RegistrationAppId, global::System.Convert.ToString); + } + if (content.Contains("RegistrationAppSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).RegistrationAppSecretSettingName = (string) content.GetValueForProperty("RegistrationAppSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)this).RegistrationAppSecretSettingName, 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.ContainerAppsApi.Models.Api20221101Preview.IFacebook FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the Facebook provider. + [System.ComponentModel.TypeConverter(typeof(FacebookTypeConverter))] + public partial interface IFacebook + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.TypeConverter.cs new file mode 100644 index 000000000000..ca551782a726 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class FacebookTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebook ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebook).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Facebook.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Facebook.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Facebook.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.cs new file mode 100644 index 000000000000..33105718dadd --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.cs @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Facebook provider. + public partial class Facebook : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebook, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal + { + + /// Backing field for property. + private bool? _enabled; + + /// + /// false if the Facebook provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Enabled { get => this._enabled; set => this._enabled = value; } + + /// Backing field for property. + private string _graphApiVersion; + + /// The version of the Facebook api to be used while logging in. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string GraphApiVersion { get => this._graphApiVersion; set => this._graphApiVersion = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes _login; + + /// The configuration settings of the login flow. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Login { get => (this._login = this._login ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopes()); set => this._login = value; } + + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] LoginScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopesInternal)Login).Scope; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopesInternal)Login).Scope = value ?? null /* arrayOf */; } + + /// Internal Acessors for Login + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal.Login { get => (this._login = this._login ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopes()); set { {_login = value;} } } + + /// Internal Acessors for Registration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal.Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppRegistration()); set { {_registration = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration _registration; + + /// The configuration settings of the app registration for the Facebook provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppRegistration()); set => this._registration = value; } + + /// The App ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationAppId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistrationInternal)Registration).AppId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistrationInternal)Registration).AppId = value ?? null; } + + /// The app setting name that contains the app secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationAppSecretSettingName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistrationInternal)Registration).AppSecretSettingName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistrationInternal)Registration).AppSecretSettingName = value ?? null; } + + /// Creates an new instance. + public Facebook() + { + + } + } + /// The configuration settings of the Facebook provider. + public partial interface IFacebook : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// false if the Facebook provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the Facebook provider should not be enabled despite the set registration; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? Enabled { get; set; } + /// The version of the Facebook api to be used while logging in. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the Facebook api to be used while logging in.", + SerializedName = @"graphApiVersion", + PossibleTypes = new [] { typeof(string) })] + string GraphApiVersion { get; set; } + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of the scopes that should be requested while authenticating.", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] LoginScope { get; set; } + /// The App ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The App ID of the app used for login.", + SerializedName = @"appId", + PossibleTypes = new [] { typeof(string) })] + string RegistrationAppId { get; set; } + /// The app setting name that contains the app secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the app secret.", + SerializedName = @"appSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string RegistrationAppSecretSettingName { get; set; } + + } + /// The configuration settings of the Facebook provider. + internal partial interface IFacebookInternal + + { + /// + /// false if the Facebook provider should not be enabled despite the set registration; otherwise, true. + /// + bool? Enabled { get; set; } + /// The version of the Facebook api to be used while logging in. + string GraphApiVersion { get; set; } + /// The configuration settings of the login flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Login { get; set; } + /// A list of the scopes that should be requested while authenticating. + string[] LoginScope { get; set; } + /// The configuration settings of the app registration for the Facebook provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration Registration { get; set; } + /// The App ID of the app used for login. + string RegistrationAppId { get; set; } + /// The app setting name that contains the app secret. + string RegistrationAppSecretSettingName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.json.cs new file mode 100644 index 000000000000..293ec14bf6b9 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Facebook.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Facebook provider. + public partial class Facebook + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Facebook(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_registration = If( json?.PropertyT("registration"), out var __jsonRegistration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppRegistration.FromJson(__jsonRegistration) : Registration;} + {_login = If( json?.PropertyT("login"), out var __jsonLogin) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopes.FromJson(__jsonLogin) : Login;} + {_enabled = If( json?.PropertyT("enabled"), out var __jsonEnabled) ? (bool?)__jsonEnabled : Enabled;} + {_graphApiVersion = If( json?.PropertyT("graphApiVersion"), out var __jsonGraphApiVersion) ? (string)__jsonGraphApiVersion : (string)GraphApiVersion;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebook. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebook. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebook FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Facebook(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._registration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._registration.ToJson(null,serializationMode) : null, "registration" ,container.Add ); + AddIf( null != this._login ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._login.ToJson(null,serializationMode) : null, "login" ,container.Add ); + AddIf( null != this._enabled ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._enabled) : null, "enabled" ,container.Add ); + AddIf( null != (((object)this._graphApiVersion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._graphApiVersion.ToString()) : null, "graphApiVersion" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.PowerShell.cs new file mode 100644 index 000000000000..55a26054b2ca --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of a forward proxy used to make the requests. + [System.ComponentModel.TypeConverter(typeof(ForwardProxyTypeConverter))] + public partial class ForwardProxy + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ForwardProxy(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ForwardProxy(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ForwardProxy(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Convention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)this).Convention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention?) content.GetValueForProperty("Convention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)this).Convention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention.CreateFrom); + } + if (content.Contains("CustomHostHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)this).CustomHostHeaderName = (string) content.GetValueForProperty("CustomHostHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)this).CustomHostHeaderName, global::System.Convert.ToString); + } + if (content.Contains("CustomProtoHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)this).CustomProtoHeaderName = (string) content.GetValueForProperty("CustomProtoHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)this).CustomProtoHeaderName, 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 ForwardProxy(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Convention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)this).Convention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention?) content.GetValueForProperty("Convention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)this).Convention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention.CreateFrom); + } + if (content.Contains("CustomHostHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)this).CustomHostHeaderName = (string) content.GetValueForProperty("CustomHostHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)this).CustomHostHeaderName, global::System.Convert.ToString); + } + if (content.Contains("CustomProtoHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)this).CustomProtoHeaderName = (string) content.GetValueForProperty("CustomProtoHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)this).CustomProtoHeaderName, 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.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of a forward proxy used to make the requests. + [System.ComponentModel.TypeConverter(typeof(ForwardProxyTypeConverter))] + public partial interface IForwardProxy + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.TypeConverter.cs new file mode 100644 index 000000000000..17a7adafe15c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ForwardProxyTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ForwardProxy.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ForwardProxy.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ForwardProxy.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.cs new file mode 100644 index 000000000000..271672c7623f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of a forward proxy used to make the requests. + public partial class ForwardProxy : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention? _convention; + + /// The convention used to determine the url of the request made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention? Convention { get => this._convention; set => this._convention = value; } + + /// Backing field for property. + private string _customHostHeaderName; + + /// The name of the header containing the host of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string CustomHostHeaderName { get => this._customHostHeaderName; set => this._customHostHeaderName = value; } + + /// Backing field for property. + private string _customProtoHeaderName; + + /// The name of the header containing the scheme of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string CustomProtoHeaderName { get => this._customProtoHeaderName; set => this._customProtoHeaderName = value; } + + /// Creates an new instance. + public ForwardProxy() + { + + } + } + /// The configuration settings of a forward proxy used to make the requests. + public partial interface IForwardProxy : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The convention used to determine the url of the request made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The convention used to determine the url of the request made.", + SerializedName = @"convention", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention? Convention { get; set; } + /// The name of the header containing the host of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the header containing the host of the request.", + SerializedName = @"customHostHeaderName", + PossibleTypes = new [] { typeof(string) })] + string CustomHostHeaderName { get; set; } + /// The name of the header containing the scheme of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the header containing the scheme of the request.", + SerializedName = @"customProtoHeaderName", + PossibleTypes = new [] { typeof(string) })] + string CustomProtoHeaderName { get; set; } + + } + /// The configuration settings of a forward proxy used to make the requests. + internal partial interface IForwardProxyInternal + + { + /// The convention used to determine the url of the request made. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention? Convention { get; set; } + /// The name of the header containing the host of the request. + string CustomHostHeaderName { get; set; } + /// The name of the header containing the scheme of the request. + string CustomProtoHeaderName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.json.cs new file mode 100644 index 000000000000..128152277dc0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ForwardProxy.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of a forward proxy used to make the requests. + public partial class ForwardProxy + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ForwardProxy(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_convention = If( json?.PropertyT("convention"), out var __jsonConvention) ? (string)__jsonConvention : (string)Convention;} + {_customHostHeaderName = If( json?.PropertyT("customHostHeaderName"), out var __jsonCustomHostHeaderName) ? (string)__jsonCustomHostHeaderName : (string)CustomHostHeaderName;} + {_customProtoHeaderName = If( json?.PropertyT("customProtoHeaderName"), out var __jsonCustomProtoHeaderName) ? (string)__jsonCustomProtoHeaderName : (string)CustomProtoHeaderName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ForwardProxy(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._convention)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._convention.ToString()) : null, "convention" ,container.Add ); + AddIf( null != (((object)this._customHostHeaderName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._customHostHeaderName.ToString()) : null, "customHostHeaderName" ,container.Add ); + AddIf( null != (((object)this._customProtoHeaderName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._customProtoHeaderName.ToString()) : null, "customProtoHeaderName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.PowerShell.cs new file mode 100644 index 000000000000..dd2e2ef63623 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.PowerShell.cs @@ -0,0 +1,184 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the GitHub provider. + [System.ComponentModel.TypeConverter(typeof(GitHubTypeConverter))] + public partial class GitHub + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IGitHub DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GitHub(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHub DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GitHub(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHub FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GitHub(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).LoginScope = (string[]) content.GetValueForProperty("LoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).LoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).RegistrationClientId = (string) content.GetValueForProperty("RegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).RegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).RegistrationClientSecretSettingName = (string) content.GetValueForProperty("RegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).RegistrationClientSecretSettingName, 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 GitHub(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).LoginScope = (string[]) content.GetValueForProperty("LoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).LoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).RegistrationClientId = (string) content.GetValueForProperty("RegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).RegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).RegistrationClientSecretSettingName = (string) content.GetValueForProperty("RegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)this).RegistrationClientSecretSettingName, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the GitHub provider. + [System.ComponentModel.TypeConverter(typeof(GitHubTypeConverter))] + public partial interface IGitHub + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.TypeConverter.cs new file mode 100644 index 000000000000..d5d9a73c39fc --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GitHubTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHub ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHub).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GitHub.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GitHub.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GitHub.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.cs new file mode 100644 index 000000000000..f9b2741873f5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the GitHub provider. + public partial class GitHub : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHub, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal + { + + /// Backing field for property. + private bool? _enabled; + + /// + /// false if the GitHub provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Enabled { get => this._enabled; set => this._enabled = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes _login; + + /// The configuration settings of the login flow. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Login { get => (this._login = this._login ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopes()); set => this._login = value; } + + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] LoginScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopesInternal)Login).Scope; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopesInternal)Login).Scope = value ?? null /* arrayOf */; } + + /// Internal Acessors for Login + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal.Login { get => (this._login = this._login ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopes()); set { {_login = value;} } } + + /// Internal Acessors for Registration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal.Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistration()); set { {_registration = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration _registration; + + /// The configuration settings of the app registration for the GitHub provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistration()); set => this._registration = value; } + + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)Registration).ClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)Registration).ClientId = value ?? null; } + + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientSecretSettingName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)Registration).ClientSecretSettingName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)Registration).ClientSecretSettingName = value ?? null; } + + /// Creates an new instance. + public GitHub() + { + + } + } + /// The configuration settings of the GitHub provider. + public partial interface IGitHub : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// false if the GitHub provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the GitHub provider should not be enabled despite the set registration; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? Enabled { get; set; } + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of the scopes that should be requested while authenticating.", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] LoginScope { get; set; } + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Client ID of the app used for login.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientId { get; set; } + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the client secret.", + SerializedName = @"clientSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientSecretSettingName { get; set; } + + } + /// The configuration settings of the GitHub provider. + internal partial interface IGitHubInternal + + { + /// + /// false if the GitHub provider should not be enabled despite the set registration; otherwise, true. + /// + bool? Enabled { get; set; } + /// The configuration settings of the login flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Login { get; set; } + /// A list of the scopes that should be requested while authenticating. + string[] LoginScope { get; set; } + /// The configuration settings of the app registration for the GitHub provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration Registration { get; set; } + /// The Client ID of the app used for login. + string RegistrationClientId { get; set; } + /// The app setting name that contains the client secret. + string RegistrationClientSecretSettingName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.json.cs new file mode 100644 index 000000000000..19d94985f5ce --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/GitHub.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the GitHub provider. + public partial class GitHub + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHub. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHub. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHub FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new GitHub(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal GitHub(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_registration = If( json?.PropertyT("registration"), out var __jsonRegistration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistration.FromJson(__jsonRegistration) : Registration;} + {_login = If( json?.PropertyT("login"), out var __jsonLogin) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopes.FromJson(__jsonLogin) : Login;} + {_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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._registration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._registration.ToJson(null,serializationMode) : null, "registration" ,container.Add ); + AddIf( null != this._login ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._login.ToJson(null,serializationMode) : null, "login" ,container.Add ); + AddIf( null != this._enabled ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.PowerShell.cs new file mode 100644 index 000000000000..e089ec5b68a1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.PowerShell.cs @@ -0,0 +1,260 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// Configuration properties that define the mutable settings of a Container App SourceControl + /// + [System.ComponentModel.TypeConverter(typeof(GithubActionConfigurationTypeConverter))] + public partial class GithubActionConfiguration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GithubActionConfiguration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GithubActionConfiguration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GithubActionConfiguration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RegistryInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfo = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo) content.GetValueForProperty("RegistryInfo",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfo, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryInfoTypeConverter.ConvertFrom); + } + if (content.Contains("AzureCredentials")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentials = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials) content.GetValueForProperty("AzureCredentials",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentials, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureCredentialsTypeConverter.ConvertFrom); + } + if (content.Contains("ContextPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).ContextPath = (string) content.GetValueForProperty("ContextPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).ContextPath, global::System.Convert.ToString); + } + if (content.Contains("Image")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).Image = (string) content.GetValueForProperty("Image",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).Image, global::System.Convert.ToString); + } + if (content.Contains("PublishType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).PublishType = (string) content.GetValueForProperty("PublishType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).PublishType, global::System.Convert.ToString); + } + if (content.Contains("OS")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).OS = (string) content.GetValueForProperty("OS",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).OS, global::System.Convert.ToString); + } + if (content.Contains("RuntimeStack")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RuntimeStack = (string) content.GetValueForProperty("RuntimeStack",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RuntimeStack, global::System.Convert.ToString); + } + if (content.Contains("RuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RuntimeVersion = (string) content.GetValueForProperty("RuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfoRegistryUrl = (string) content.GetValueForProperty("RegistryInfoRegistryUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfoRegistryUrl, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfoRegistryPassword = (string) content.GetValueForProperty("RegistryInfoRegistryPassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfoRegistryPassword, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsClientId = (string) content.GetValueForProperty("AzureCredentialsClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsClientId, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsClientSecret = (string) content.GetValueForProperty("AzureCredentialsClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsClientSecret, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsTenantId = (string) content.GetValueForProperty("AzureCredentialsTenantId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsTenantId, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsSubscriptionId = (string) content.GetValueForProperty("AzureCredentialsSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryUserName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfoRegistryUserName = (string) content.GetValueForProperty("RegistryInfoRegistryUserName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfoRegistryUserName, 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 GithubActionConfiguration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RegistryInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfo = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo) content.GetValueForProperty("RegistryInfo",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfo, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryInfoTypeConverter.ConvertFrom); + } + if (content.Contains("AzureCredentials")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentials = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials) content.GetValueForProperty("AzureCredentials",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentials, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureCredentialsTypeConverter.ConvertFrom); + } + if (content.Contains("ContextPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).ContextPath = (string) content.GetValueForProperty("ContextPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).ContextPath, global::System.Convert.ToString); + } + if (content.Contains("Image")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).Image = (string) content.GetValueForProperty("Image",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).Image, global::System.Convert.ToString); + } + if (content.Contains("PublishType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).PublishType = (string) content.GetValueForProperty("PublishType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).PublishType, global::System.Convert.ToString); + } + if (content.Contains("OS")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).OS = (string) content.GetValueForProperty("OS",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).OS, global::System.Convert.ToString); + } + if (content.Contains("RuntimeStack")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RuntimeStack = (string) content.GetValueForProperty("RuntimeStack",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RuntimeStack, global::System.Convert.ToString); + } + if (content.Contains("RuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RuntimeVersion = (string) content.GetValueForProperty("RuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfoRegistryUrl = (string) content.GetValueForProperty("RegistryInfoRegistryUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfoRegistryUrl, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfoRegistryPassword = (string) content.GetValueForProperty("RegistryInfoRegistryPassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfoRegistryPassword, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsClientId = (string) content.GetValueForProperty("AzureCredentialsClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsClientId, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsClientSecret = (string) content.GetValueForProperty("AzureCredentialsClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsClientSecret, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsTenantId = (string) content.GetValueForProperty("AzureCredentialsTenantId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsTenantId, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsSubscriptionId = (string) content.GetValueForProperty("AzureCredentialsSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).AzureCredentialsSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryUserName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfoRegistryUserName = (string) content.GetValueForProperty("RegistryInfoRegistryUserName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)this).RegistryInfoRegistryUserName, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Configuration properties that define the mutable settings of a Container App SourceControl + [System.ComponentModel.TypeConverter(typeof(GithubActionConfigurationTypeConverter))] + public partial interface IGithubActionConfiguration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.TypeConverter.cs new file mode 100644 index 000000000000..94b2cdafbeaf --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GithubActionConfigurationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GithubActionConfiguration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GithubActionConfiguration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GithubActionConfiguration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.cs new file mode 100644 index 000000000000..82e0076ddded --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.cs @@ -0,0 +1,260 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Configuration properties that define the mutable settings of a Container App SourceControl + /// + public partial class GithubActionConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials _azureCredentials; + + /// AzureCredentials configurations. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials AzureCredentials { get => (this._azureCredentials = this._azureCredentials ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureCredentials()); set => this._azureCredentials = value; } + + /// Client Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureCredentialsClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)AzureCredentials).ClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)AzureCredentials).ClientId = value ?? null; } + + /// Client Secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureCredentialsClientSecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)AzureCredentials).ClientSecret; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)AzureCredentials).ClientSecret = value ?? null; } + + /// Subscription Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureCredentialsSubscriptionId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)AzureCredentials).SubscriptionId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)AzureCredentials).SubscriptionId = value ?? null; } + + /// Tenant Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureCredentialsTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)AzureCredentials).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentialsInternal)AzureCredentials).TenantId = value ?? null; } + + /// Backing field for property. + private string _contextPath; + + /// Context path + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ContextPath { get => this._contextPath; set => this._contextPath = value; } + + /// Backing field for property. + private string _image; + + /// Image name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Image { get => this._image; set => this._image = value; } + + /// Internal Acessors for AzureCredentials + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal.AzureCredentials { get => (this._azureCredentials = this._azureCredentials ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureCredentials()); set { {_azureCredentials = value;} } } + + /// Internal Acessors for RegistryInfo + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal.RegistryInfo { get => (this._registryInfo = this._registryInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryInfo()); set { {_registryInfo = value;} } } + + /// Backing field for property. + private string _oS; + + /// Operation system + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string OS { get => this._oS; set => this._oS = value; } + + /// Backing field for property. + private string _publishType; + + /// Code or Image + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string PublishType { get => this._publishType; set => this._publishType = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo _registryInfo; + + /// Registry configurations. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo RegistryInfo { get => (this._registryInfo = this._registryInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryInfo()); set => this._registryInfo = value; } + + /// registry secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistryInfoRegistryPassword { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)RegistryInfo).RegistryPassword; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)RegistryInfo).RegistryPassword = value ?? null; } + + /// registry server Url. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistryInfoRegistryUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)RegistryInfo).RegistryUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)RegistryInfo).RegistryUrl = value ?? null; } + + /// registry username. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistryInfoRegistryUserName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)RegistryInfo).RegistryUserName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)RegistryInfo).RegistryUserName = value ?? null; } + + /// Backing field for property. + private string _runtimeStack; + + /// Runtime stack + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string RuntimeStack { get => this._runtimeStack; set => this._runtimeStack = value; } + + /// Backing field for property. + private string _runtimeVersion; + + /// Runtime version + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string RuntimeVersion { get => this._runtimeVersion; set => this._runtimeVersion = value; } + + /// Creates an new instance. + public GithubActionConfiguration() + { + + } + } + /// Configuration properties that define the mutable settings of a Container App SourceControl + public partial interface IGithubActionConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Client Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Client Id.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string AzureCredentialsClientId { get; set; } + /// Client Secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Client Secret.", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + string AzureCredentialsClientSecret { get; set; } + /// Subscription Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Subscription Id.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + string AzureCredentialsSubscriptionId { get; set; } + /// Tenant Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tenant Id.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string AzureCredentialsTenantId { get; set; } + /// Context path + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Context path", + SerializedName = @"contextPath", + PossibleTypes = new [] { typeof(string) })] + string ContextPath { get; set; } + /// Image name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Image name", + SerializedName = @"image", + PossibleTypes = new [] { typeof(string) })] + string Image { get; set; } + /// Operation system + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Operation system", + SerializedName = @"os", + PossibleTypes = new [] { typeof(string) })] + string OS { get; set; } + /// Code or Image + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Code or Image", + SerializedName = @"publishType", + PossibleTypes = new [] { typeof(string) })] + string PublishType { get; set; } + /// registry secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry secret.", + SerializedName = @"registryPassword", + PossibleTypes = new [] { typeof(string) })] + string RegistryInfoRegistryPassword { get; set; } + /// registry server Url. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry server Url.", + SerializedName = @"registryUrl", + PossibleTypes = new [] { typeof(string) })] + string RegistryInfoRegistryUrl { get; set; } + /// registry username. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry username.", + SerializedName = @"registryUserName", + PossibleTypes = new [] { typeof(string) })] + string RegistryInfoRegistryUserName { get; set; } + /// Runtime stack + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime stack", + SerializedName = @"runtimeStack", + PossibleTypes = new [] { typeof(string) })] + string RuntimeStack { get; set; } + /// Runtime version + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime version", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(string) })] + string RuntimeVersion { get; set; } + + } + /// Configuration properties that define the mutable settings of a Container App SourceControl + internal partial interface IGithubActionConfigurationInternal + + { + /// AzureCredentials configurations. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials AzureCredentials { get; set; } + /// Client Id. + string AzureCredentialsClientId { get; set; } + /// Client Secret. + string AzureCredentialsClientSecret { get; set; } + /// Subscription Id. + string AzureCredentialsSubscriptionId { get; set; } + /// Tenant Id. + string AzureCredentialsTenantId { get; set; } + /// Context path + string ContextPath { get; set; } + /// Image name + string Image { get; set; } + /// Operation system + string OS { get; set; } + /// Code or Image + string PublishType { get; set; } + /// Registry configurations. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo RegistryInfo { get; set; } + /// registry secret. + string RegistryInfoRegistryPassword { get; set; } + /// registry server Url. + string RegistryInfoRegistryUrl { get; set; } + /// registry username. + string RegistryInfoRegistryUserName { get; set; } + /// Runtime stack + string RuntimeStack { get; set; } + /// Runtime version + string RuntimeVersion { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.json.cs new file mode 100644 index 000000000000..d5b57f5766cd --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/GithubActionConfiguration.json.cs @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Configuration properties that define the mutable settings of a Container App SourceControl + /// + public partial class GithubActionConfiguration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new GithubActionConfiguration(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal GithubActionConfiguration(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_registryInfo = If( json?.PropertyT("registryInfo"), out var __jsonRegistryInfo) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryInfo.FromJson(__jsonRegistryInfo) : RegistryInfo;} + {_azureCredentials = If( json?.PropertyT("azureCredentials"), out var __jsonAzureCredentials) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureCredentials.FromJson(__jsonAzureCredentials) : AzureCredentials;} + {_contextPath = If( json?.PropertyT("contextPath"), out var __jsonContextPath) ? (string)__jsonContextPath : (string)ContextPath;} + {_image = If( json?.PropertyT("image"), out var __jsonImage) ? (string)__jsonImage : (string)Image;} + {_publishType = If( json?.PropertyT("publishType"), out var __jsonPublishType) ? (string)__jsonPublishType : (string)PublishType;} + {_oS = If( json?.PropertyT("os"), out var __jsonOS) ? (string)__jsonOS : (string)OS;} + {_runtimeStack = If( json?.PropertyT("runtimeStack"), out var __jsonRuntimeStack) ? (string)__jsonRuntimeStack : (string)RuntimeStack;} + {_runtimeVersion = If( json?.PropertyT("runtimeVersion"), out var __jsonRuntimeVersion) ? (string)__jsonRuntimeVersion : (string)RuntimeVersion;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._registryInfo ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._registryInfo.ToJson(null,serializationMode) : null, "registryInfo" ,container.Add ); + AddIf( null != this._azureCredentials ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._azureCredentials.ToJson(null,serializationMode) : null, "azureCredentials" ,container.Add ); + AddIf( null != (((object)this._contextPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._contextPath.ToString()) : null, "contextPath" ,container.Add ); + AddIf( null != (((object)this._image)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._image.ToString()) : null, "image" ,container.Add ); + AddIf( null != (((object)this._publishType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._publishType.ToString()) : null, "publishType" ,container.Add ); + AddIf( null != (((object)this._oS)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._oS.ToString()) : null, "os" ,container.Add ); + AddIf( null != (((object)this._runtimeStack)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._runtimeStack.ToString()) : null, "runtimeStack" ,container.Add ); + AddIf( null != (((object)this._runtimeVersion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/GlobalValidation.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.PowerShell.cs new file mode 100644 index 000000000000..1dce0254200c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.PowerShell.cs @@ -0,0 +1,164 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The configuration settings that determines the validation flow of users using ContainerApp Service Authentication/Authorization. + /// + [System.ComponentModel.TypeConverter(typeof(GlobalValidationTypeConverter))] + public partial class GlobalValidation + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GlobalValidation(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GlobalValidation(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GlobalValidation(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("UnauthenticatedClientAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)this).UnauthenticatedClientAction = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2?) content.GetValueForProperty("UnauthenticatedClientAction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)this).UnauthenticatedClientAction, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2.CreateFrom); + } + if (content.Contains("RedirectToProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)this).RedirectToProvider = (string) content.GetValueForProperty("RedirectToProvider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)this).RedirectToProvider, global::System.Convert.ToString); + } + if (content.Contains("ExcludedPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)this).ExcludedPath = (string[]) content.GetValueForProperty("ExcludedPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)this).ExcludedPath, __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 GlobalValidation(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("UnauthenticatedClientAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)this).UnauthenticatedClientAction = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2?) content.GetValueForProperty("UnauthenticatedClientAction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)this).UnauthenticatedClientAction, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2.CreateFrom); + } + if (content.Contains("RedirectToProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)this).RedirectToProvider = (string) content.GetValueForProperty("RedirectToProvider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)this).RedirectToProvider, global::System.Convert.ToString); + } + if (content.Contains("ExcludedPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)this).ExcludedPath = (string[]) content.GetValueForProperty("ExcludedPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal)this).ExcludedPath, __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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings that determines the validation flow of users using ContainerApp Service Authentication/Authorization. + [System.ComponentModel.TypeConverter(typeof(GlobalValidationTypeConverter))] + public partial interface IGlobalValidation + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.TypeConverter.cs new file mode 100644 index 000000000000..ee5478dfb1c7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GlobalValidationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GlobalValidation.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GlobalValidation.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GlobalValidation.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.cs new file mode 100644 index 000000000000..fbf4f7f9a8d3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings that determines the validation flow of users using ContainerApp Service Authentication/Authorization. + /// + public partial class GlobalValidation : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidationInternal + { + + /// Backing field for property. + private string[] _excludedPath; + + /// + /// The paths for which unauthenticated flow would not be redirected to the login page. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] ExcludedPath { get => this._excludedPath; set => this._excludedPath = value; } + + /// Backing field for property. + private string _redirectToProvider; + + /// + /// The default authentication provider to use when multiple providers are configured. + /// This setting is only needed if multiple providers are configured and the unauthenticated client + /// action is set to "RedirectToLoginPage". + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string RedirectToProvider { get => this._redirectToProvider; set => this._redirectToProvider = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2? _unauthenticatedClientAction; + + /// The action to take when an unauthenticated client attempts to access the app. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2? UnauthenticatedClientAction { get => this._unauthenticatedClientAction; set => this._unauthenticatedClientAction = value; } + + /// Creates an new instance. + public GlobalValidation() + { + + } + } + /// The configuration settings that determines the validation flow of users using ContainerApp Service Authentication/Authorization. + public partial interface IGlobalValidation : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// The paths for which unauthenticated flow would not be redirected to the login page. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The paths for which unauthenticated flow would not be redirected to the login page.", + SerializedName = @"excludedPaths", + PossibleTypes = new [] { typeof(string) })] + string[] ExcludedPath { get; set; } + /// + /// The default authentication provider to use when multiple providers are configured. + /// This setting is only needed if multiple providers are configured and the unauthenticated client + /// action is set to "RedirectToLoginPage". + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default authentication provider to use when multiple providers are configured. + This setting is only needed if multiple providers are configured and the unauthenticated client + action is set to ""RedirectToLoginPage"".", + SerializedName = @"redirectToProvider", + PossibleTypes = new [] { typeof(string) })] + string RedirectToProvider { get; set; } + /// The action to take when an unauthenticated client attempts to access the app. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The action to take when an unauthenticated client attempts to access the app.", + SerializedName = @"unauthenticatedClientAction", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2? UnauthenticatedClientAction { get; set; } + + } + /// The configuration settings that determines the validation flow of users using ContainerApp Service Authentication/Authorization. + internal partial interface IGlobalValidationInternal + + { + /// + /// The paths for which unauthenticated flow would not be redirected to the login page. + /// + string[] ExcludedPath { get; set; } + /// + /// The default authentication provider to use when multiple providers are configured. + /// This setting is only needed if multiple providers are configured and the unauthenticated client + /// action is set to "RedirectToLoginPage". + /// + string RedirectToProvider { get; set; } + /// The action to take when an unauthenticated client attempts to access the app. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2? UnauthenticatedClientAction { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.json.cs new file mode 100644 index 000000000000..8f9a3694ec69 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/GlobalValidation.json.cs @@ -0,0 +1,122 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings that determines the validation flow of users using ContainerApp Service Authentication/Authorization. + /// + public partial class GlobalValidation + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGlobalValidation FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new GlobalValidation(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal GlobalValidation(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_unauthenticatedClientAction = If( json?.PropertyT("unauthenticatedClientAction"), out var __jsonUnauthenticatedClientAction) ? (string)__jsonUnauthenticatedClientAction : (string)UnauthenticatedClientAction;} + {_redirectToProvider = If( json?.PropertyT("redirectToProvider"), out var __jsonRedirectToProvider) ? (string)__jsonRedirectToProvider : (string)RedirectToProvider;} + {_excludedPath = If( json?.PropertyT("excludedPaths"), out var __jsonExcludedPaths) ? If( __jsonExcludedPaths as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : ExcludedPath;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._unauthenticatedClientAction)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._unauthenticatedClientAction.ToString()) : null, "unauthenticatedClientAction" ,container.Add ); + AddIf( null != (((object)this._redirectToProvider)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._redirectToProvider.ToString()) : null, "redirectToProvider" ,container.Add ); + if (null != this._excludedPath) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._excludedPath ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("excludedPaths",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Google.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Google.PowerShell.cs new file mode 100644 index 000000000000..c6c082203b46 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Google.PowerShell.cs @@ -0,0 +1,200 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the Google provider. + [System.ComponentModel.TypeConverter(typeof(GoogleTypeConverter))] + public partial class Google + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IGoogle DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Google(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogle DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Google(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogle FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Google(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("Validation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Validation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation) content.GetValueForProperty("Validation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Validation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedAudiencesValidationTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).LoginScope = (string[]) content.GetValueForProperty("LoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).LoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).RegistrationClientId = (string) content.GetValueForProperty("RegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).RegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).RegistrationClientSecretSettingName = (string) content.GetValueForProperty("RegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).RegistrationClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("ValidationAllowedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).ValidationAllowedAudience = (string[]) content.GetValueForProperty("ValidationAllowedAudience",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).ValidationAllowedAudience, __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 Google(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Login")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Login = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("Login",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Login, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("Validation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Validation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation) content.GetValueForProperty("Validation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Validation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedAudiencesValidationTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).LoginScope = (string[]) content.GetValueForProperty("LoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).LoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).RegistrationClientId = (string) content.GetValueForProperty("RegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).RegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).RegistrationClientSecretSettingName = (string) content.GetValueForProperty("RegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).RegistrationClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("ValidationAllowedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).ValidationAllowedAudience = (string[]) content.GetValueForProperty("ValidationAllowedAudience",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)this).ValidationAllowedAudience, __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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the Google provider. + [System.ComponentModel.TypeConverter(typeof(GoogleTypeConverter))] + public partial interface IGoogle + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Google.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Google.TypeConverter.cs new file mode 100644 index 000000000000..f4b60b583b62 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Google.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GoogleTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogle ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogle).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Google.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Google.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Google.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Google.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Google.cs new file mode 100644 index 000000000000..8952c8f902dc --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Google.cs @@ -0,0 +1,155 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Google provider. + public partial class Google : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogle, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal + { + + /// Backing field for property. + private bool? _enabled; + + /// + /// false if the Google provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Enabled { get => this._enabled; set => this._enabled = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes _login; + + /// The configuration settings of the login flow. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Login { get => (this._login = this._login ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopes()); set => this._login = value; } + + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] LoginScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopesInternal)Login).Scope; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopesInternal)Login).Scope = value ?? null /* arrayOf */; } + + /// Internal Acessors for Login + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal.Login { get => (this._login = this._login ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopes()); set { {_login = value;} } } + + /// Internal Acessors for Registration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal.Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistration()); set { {_registration = value;} } } + + /// Internal Acessors for Validation + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal.Validation { get => (this._validation = this._validation ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedAudiencesValidation()); set { {_validation = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration _registration; + + /// The configuration settings of the app registration for the Google provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistration()); set => this._registration = value; } + + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)Registration).ClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)Registration).ClientId = value ?? null; } + + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientSecretSettingName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)Registration).ClientSecretSettingName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistrationInternal)Registration).ClientSecretSettingName = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation _validation; + + /// The configuration settings of the Azure Active Directory token validation flow. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation Validation { get => (this._validation = this._validation ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedAudiencesValidation()); set => this._validation = value; } + + /// + /// The configuration settings of the allowed list of audiences from which to validate the JWT token. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] ValidationAllowedAudience { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidationInternal)Validation).AllowedAudience; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidationInternal)Validation).AllowedAudience = value ?? null /* arrayOf */; } + + /// Creates an new instance. + public Google() + { + + } + } + /// The configuration settings of the Google provider. + public partial interface IGoogle : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// false if the Google provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the Google provider should not be enabled despite the set registration; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? Enabled { get; set; } + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of the scopes that should be requested while authenticating.", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] LoginScope { get; set; } + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Client ID of the app used for login.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientId { get; set; } + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the client secret.", + SerializedName = @"clientSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientSecretSettingName { get; set; } + /// + /// The configuration settings of the allowed list of audiences from which to validate the JWT token. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The configuration settings of the allowed list of audiences from which to validate the JWT token.", + SerializedName = @"allowedAudiences", + PossibleTypes = new [] { typeof(string) })] + string[] ValidationAllowedAudience { get; set; } + + } + /// The configuration settings of the Google provider. + internal partial interface IGoogleInternal + + { + /// + /// false if the Google provider should not be enabled despite the set registration; otherwise, true. + /// + bool? Enabled { get; set; } + /// The configuration settings of the login flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Login { get; set; } + /// A list of the scopes that should be requested while authenticating. + string[] LoginScope { get; set; } + /// The configuration settings of the app registration for the Google provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration Registration { get; set; } + /// The Client ID of the app used for login. + string RegistrationClientId { get; set; } + /// The app setting name that contains the client secret. + string RegistrationClientSecretSettingName { get; set; } + /// The configuration settings of the Azure Active Directory token validation flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation Validation { get; set; } + /// + /// The configuration settings of the allowed list of audiences from which to validate the JWT token. + /// + string[] ValidationAllowedAudience { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Google.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Google.json.cs new file mode 100644 index 000000000000..c083a3292460 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Google.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Google provider. + public partial class Google + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogle. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogle. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogle FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Google(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Google(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_registration = If( json?.PropertyT("registration"), out var __jsonRegistration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistration.FromJson(__jsonRegistration) : Registration;} + {_login = If( json?.PropertyT("login"), out var __jsonLogin) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopes.FromJson(__jsonLogin) : Login;} + {_validation = If( json?.PropertyT("validation"), out var __jsonValidation) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedAudiencesValidation.FromJson(__jsonValidation) : Validation;} + {_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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._registration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._registration.ToJson(null,serializationMode) : null, "registration" ,container.Add ); + AddIf( null != this._login ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._login.ToJson(null,serializationMode) : null, "login" ,container.Add ); + AddIf( null != this._validation ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._validation.ToJson(null,serializationMode) : null, "validation" ,container.Add ); + AddIf( null != this._enabled ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/HttpScaleRule.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.PowerShell.cs new file mode 100644 index 000000000000..afe638dc78ea --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App container Http scaling rule. + [System.ComponentModel.TypeConverter(typeof(HttpScaleRuleTypeConverter))] + public partial class HttpScaleRule + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HttpScaleRule(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HttpScaleRule(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HttpScaleRule(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Metadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleInternal)this).Metadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata) content.GetValueForProperty("Metadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleInternal)this).Metadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpScaleRuleMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("Auth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleInternal)this).Auth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("Auth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleInternal)this).Auth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal HttpScaleRule(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Metadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleInternal)this).Metadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata) content.GetValueForProperty("Metadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleInternal)this).Metadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpScaleRuleMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("Auth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleInternal)this).Auth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("Auth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleInternal)this).Auth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App container Http scaling rule. + [System.ComponentModel.TypeConverter(typeof(HttpScaleRuleTypeConverter))] + public partial interface IHttpScaleRule + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.TypeConverter.cs new file mode 100644 index 000000000000..7373b192b7e8 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HttpScaleRuleTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HttpScaleRule.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HttpScaleRule.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HttpScaleRule.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.cs new file mode 100644 index 000000000000..953cb1406d7a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container Http scaling rule. + public partial class HttpScaleRule : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] _auth; + + /// Authentication secrets for the custom scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] Auth { get => this._auth; set => this._auth = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata _metadata; + + /// Metadata properties to describe http scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata Metadata { get => (this._metadata = this._metadata ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpScaleRuleMetadata()); set => this._metadata = value; } + + /// Creates an new instance. + public HttpScaleRule() + { + + } + } + /// Container App container Http scaling rule. + public partial interface IHttpScaleRule : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Authentication secrets for the custom scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Authentication secrets for the custom scale rule.", + SerializedName = @"auth", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] Auth { get; set; } + /// Metadata properties to describe http scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Metadata properties to describe http scale rule.", + SerializedName = @"metadata", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata Metadata { get; set; } + + } + /// Container App container Http scaling rule. + internal partial interface IHttpScaleRuleInternal + + { + /// Authentication secrets for the custom scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] Auth { get; set; } + /// Metadata properties to describe http scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata Metadata { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.json.cs new file mode 100644 index 000000000000..3c062f75909b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRule.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container Http scaling rule. + public partial class HttpScaleRule + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new HttpScaleRule(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal HttpScaleRule(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_metadata = If( json?.PropertyT("metadata"), out var __jsonMetadata) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpScaleRuleMetadata.FromJson(__jsonMetadata) : Metadata;} + {_auth = If( json?.PropertyT("auth"), out var __jsonAuth) ? If( __jsonAuth as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuth.FromJson(__u) )) ))() : null : Auth;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._metadata ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._metadata.ToJson(null,serializationMode) : null, "metadata" ,container.Add ); + if (null != this._auth) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._auth ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("auth",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.PowerShell.cs new file mode 100644 index 000000000000..bb41309b53bc --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Metadata properties to describe http scale rule. + [System.ComponentModel.TypeConverter(typeof(HttpScaleRuleMetadataTypeConverter))] + public partial class HttpScaleRuleMetadata + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HttpScaleRuleMetadata(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HttpScaleRuleMetadata(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HttpScaleRuleMetadata(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 HttpScaleRuleMetadata(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Metadata properties to describe http scale rule. + [System.ComponentModel.TypeConverter(typeof(HttpScaleRuleMetadataTypeConverter))] + public partial interface IHttpScaleRuleMetadata + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.TypeConverter.cs new file mode 100644 index 000000000000..6a35fe241c06 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HttpScaleRuleMetadataTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HttpScaleRuleMetadata.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HttpScaleRuleMetadata.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HttpScaleRuleMetadata.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.cs new file mode 100644 index 000000000000..7acf984644ec --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.cs @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Metadata properties to describe http scale rule. + public partial class HttpScaleRuleMetadata : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadataInternal + { + + /// Creates an new instance. + public HttpScaleRuleMetadata() + { + + } + } + /// Metadata properties to describe http scale rule. + public partial interface IHttpScaleRuleMetadata : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + + } + /// Metadata properties to describe http scale rule. + internal partial interface IHttpScaleRuleMetadataInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.dictionary.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.dictionary.cs new file mode 100644 index 000000000000..541ff9ad404b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + public partial class HttpScaleRuleMetadata : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.HttpScaleRuleMetadata source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.json.cs new file mode 100644 index 000000000000..3a18f780808a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpScaleRuleMetadata.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Metadata properties to describe http scale rule. + public partial class HttpScaleRuleMetadata + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new HttpScaleRuleMetadata(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal HttpScaleRuleMetadata(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.PowerShell.cs new file mode 100644 index 000000000000..623248e54e17 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.PowerShell.cs @@ -0,0 +1,198 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The configuration settings of the HTTP requests for authentication and authorization requests made against ContainerApp + /// Service Authentication/Authorization. + /// + [System.ComponentModel.TypeConverter(typeof(HttpSettingsTypeConverter))] + public partial class HttpSettings + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HttpSettings(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HttpSettings(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HttpSettings(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Route")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).Route = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes) content.GetValueForProperty("Route",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).Route, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsRoutesTypeConverter.ConvertFrom); + } + if (content.Contains("ForwardProxy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxy = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy) content.GetValueForProperty("ForwardProxy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxy, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ForwardProxyTypeConverter.ConvertFrom); + } + if (content.Contains("RequireHttps")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).RequireHttps = (bool?) content.GetValueForProperty("RequireHttps",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).RequireHttps, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ForwardProxyConvention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxyConvention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention?) content.GetValueForProperty("ForwardProxyConvention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxyConvention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention.CreateFrom); + } + if (content.Contains("RouteApiPrefix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).RouteApiPrefix = (string) content.GetValueForProperty("RouteApiPrefix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).RouteApiPrefix, global::System.Convert.ToString); + } + if (content.Contains("ForwardProxyCustomHostHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxyCustomHostHeaderName = (string) content.GetValueForProperty("ForwardProxyCustomHostHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxyCustomHostHeaderName, global::System.Convert.ToString); + } + if (content.Contains("ForwardProxyCustomProtoHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxyCustomProtoHeaderName = (string) content.GetValueForProperty("ForwardProxyCustomProtoHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxyCustomProtoHeaderName, 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 HttpSettings(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Route")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).Route = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes) content.GetValueForProperty("Route",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).Route, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsRoutesTypeConverter.ConvertFrom); + } + if (content.Contains("ForwardProxy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxy = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy) content.GetValueForProperty("ForwardProxy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxy, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ForwardProxyTypeConverter.ConvertFrom); + } + if (content.Contains("RequireHttps")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).RequireHttps = (bool?) content.GetValueForProperty("RequireHttps",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).RequireHttps, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ForwardProxyConvention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxyConvention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention?) content.GetValueForProperty("ForwardProxyConvention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxyConvention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention.CreateFrom); + } + if (content.Contains("RouteApiPrefix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).RouteApiPrefix = (string) content.GetValueForProperty("RouteApiPrefix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).RouteApiPrefix, global::System.Convert.ToString); + } + if (content.Contains("ForwardProxyCustomHostHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxyCustomHostHeaderName = (string) content.GetValueForProperty("ForwardProxyCustomHostHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxyCustomHostHeaderName, global::System.Convert.ToString); + } + if (content.Contains("ForwardProxyCustomProtoHeaderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxyCustomProtoHeaderName = (string) content.GetValueForProperty("ForwardProxyCustomProtoHeaderName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal)this).ForwardProxyCustomProtoHeaderName, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the HTTP requests for authentication and authorization requests made against ContainerApp + /// Service Authentication/Authorization. + [System.ComponentModel.TypeConverter(typeof(HttpSettingsTypeConverter))] + public partial interface IHttpSettings + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.TypeConverter.cs new file mode 100644 index 000000000000..e6b245511da1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HttpSettingsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HttpSettings.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HttpSettings.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HttpSettings.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.cs new file mode 100644 index 000000000000..48cf40e5b596 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.cs @@ -0,0 +1,145 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the HTTP requests for authentication and authorization requests made against ContainerApp + /// Service Authentication/Authorization. + /// + public partial class HttpSettings : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy _forwardProxy; + + /// The configuration settings of a forward proxy used to make the requests. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy ForwardProxy { get => (this._forwardProxy = this._forwardProxy ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ForwardProxy()); set => this._forwardProxy = value; } + + /// The convention used to determine the url of the request made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention? ForwardProxyConvention { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)ForwardProxy).Convention; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)ForwardProxy).Convention = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention)""); } + + /// The name of the header containing the host of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ForwardProxyCustomHostHeaderName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)ForwardProxy).CustomHostHeaderName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)ForwardProxy).CustomHostHeaderName = value ?? null; } + + /// The name of the header containing the scheme of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ForwardProxyCustomProtoHeaderName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)ForwardProxy).CustomProtoHeaderName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxyInternal)ForwardProxy).CustomProtoHeaderName = value ?? null; } + + /// Internal Acessors for ForwardProxy + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal.ForwardProxy { get => (this._forwardProxy = this._forwardProxy ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ForwardProxy()); set { {_forwardProxy = value;} } } + + /// Internal Acessors for Route + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsInternal.Route { get => (this._route = this._route ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsRoutes()); set { {_route = value;} } } + + /// Backing field for property. + private bool? _requireHttps; + + /// + /// false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, + /// true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? RequireHttps { get => this._requireHttps; set => this._requireHttps = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes _route; + + /// The configuration settings of the paths HTTP requests. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes Route { get => (this._route = this._route ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsRoutes()); set => this._route = value; } + + /// The prefix that should precede all the authentication/authorization paths. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RouteApiPrefix { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutesInternal)Route).ApiPrefix; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutesInternal)Route).ApiPrefix = value ?? null; } + + /// Creates an new instance. + public HttpSettings() + { + + } + } + /// The configuration settings of the HTTP requests for authentication and authorization requests made against ContainerApp + /// Service Authentication/Authorization. + public partial interface IHttpSettings : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The convention used to determine the url of the request made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The convention used to determine the url of the request made.", + SerializedName = @"convention", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention? ForwardProxyConvention { get; set; } + /// The name of the header containing the host of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the header containing the host of the request.", + SerializedName = @"customHostHeaderName", + PossibleTypes = new [] { typeof(string) })] + string ForwardProxyCustomHostHeaderName { get; set; } + /// The name of the header containing the scheme of the request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the header containing the scheme of the request.", + SerializedName = @"customProtoHeaderName", + PossibleTypes = new [] { typeof(string) })] + string ForwardProxyCustomProtoHeaderName { get; set; } + /// + /// false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, + /// true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, true.", + SerializedName = @"requireHttps", + PossibleTypes = new [] { typeof(bool) })] + bool? RequireHttps { get; set; } + /// The prefix that should precede all the authentication/authorization paths. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The prefix that should precede all the authentication/authorization paths.", + SerializedName = @"apiPrefix", + PossibleTypes = new [] { typeof(string) })] + string RouteApiPrefix { get; set; } + + } + /// The configuration settings of the HTTP requests for authentication and authorization requests made against ContainerApp + /// Service Authentication/Authorization. + internal partial interface IHttpSettingsInternal + + { + /// The configuration settings of a forward proxy used to make the requests. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IForwardProxy ForwardProxy { get; set; } + /// The convention used to determine the url of the request made. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention? ForwardProxyConvention { get; set; } + /// The name of the header containing the host of the request. + string ForwardProxyCustomHostHeaderName { get; set; } + /// The name of the header containing the scheme of the request. + string ForwardProxyCustomProtoHeaderName { get; set; } + /// + /// false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, + /// true. + /// + bool? RequireHttps { get; set; } + /// The configuration settings of the paths HTTP requests. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes Route { get; set; } + /// The prefix that should precede all the authentication/authorization paths. + string RouteApiPrefix { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.json.cs new file mode 100644 index 000000000000..b8d03cfbcb2d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettings.json.cs @@ -0,0 +1,115 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the HTTP requests for authentication and authorization requests made against ContainerApp + /// Service Authentication/Authorization. + /// + public partial class HttpSettings + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettings FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new HttpSettings(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal HttpSettings(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_route = If( json?.PropertyT("routes"), out var __jsonRoutes) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpSettingsRoutes.FromJson(__jsonRoutes) : Route;} + {_forwardProxy = If( json?.PropertyT("forwardProxy"), out var __jsonForwardProxy) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ForwardProxy.FromJson(__jsonForwardProxy) : ForwardProxy;} + {_requireHttps = If( json?.PropertyT("requireHttps"), out var __jsonRequireHttps) ? (bool?)__jsonRequireHttps : RequireHttps;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._route ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._route.ToJson(null,serializationMode) : null, "routes" ,container.Add ); + AddIf( null != this._forwardProxy ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._forwardProxy.ToJson(null,serializationMode) : null, "forwardProxy" ,container.Add ); + AddIf( null != this._requireHttps ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._requireHttps) : null, "requireHttps" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.PowerShell.cs new file mode 100644 index 000000000000..5117b56526a8 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the paths HTTP requests. + [System.ComponentModel.TypeConverter(typeof(HttpSettingsRoutesTypeConverter))] + public partial class HttpSettingsRoutes + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HttpSettingsRoutes(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HttpSettingsRoutes(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HttpSettingsRoutes(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ApiPrefix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutesInternal)this).ApiPrefix = (string) content.GetValueForProperty("ApiPrefix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutesInternal)this).ApiPrefix, 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 HttpSettingsRoutes(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ApiPrefix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutesInternal)this).ApiPrefix = (string) content.GetValueForProperty("ApiPrefix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutesInternal)this).ApiPrefix, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the paths HTTP requests. + [System.ComponentModel.TypeConverter(typeof(HttpSettingsRoutesTypeConverter))] + public partial interface IHttpSettingsRoutes + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.TypeConverter.cs new file mode 100644 index 000000000000..23418c9939a5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HttpSettingsRoutesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HttpSettingsRoutes.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HttpSettingsRoutes.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HttpSettingsRoutes.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.cs new file mode 100644 index 000000000000..ba2ffce4c183 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the paths HTTP requests. + public partial class HttpSettingsRoutes : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutesInternal + { + + /// Backing field for property. + private string _apiPrefix; + + /// The prefix that should precede all the authentication/authorization paths. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ApiPrefix { get => this._apiPrefix; set => this._apiPrefix = value; } + + /// Creates an new instance. + public HttpSettingsRoutes() + { + + } + } + /// The configuration settings of the paths HTTP requests. + public partial interface IHttpSettingsRoutes : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The prefix that should precede all the authentication/authorization paths. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The prefix that should precede all the authentication/authorization paths.", + SerializedName = @"apiPrefix", + PossibleTypes = new [] { typeof(string) })] + string ApiPrefix { get; set; } + + } + /// The configuration settings of the paths HTTP requests. + internal partial interface IHttpSettingsRoutesInternal + + { + /// The prefix that should precede all the authentication/authorization paths. + string ApiPrefix { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.json.cs new file mode 100644 index 000000000000..8f491618ff7a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/HttpSettingsRoutes.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the paths HTTP requests. + public partial class HttpSettingsRoutes + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpSettingsRoutes FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new HttpSettingsRoutes(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal HttpSettingsRoutes(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_apiPrefix = If( json?.PropertyT("apiPrefix"), out var __jsonApiPrefix) ? (string)__jsonApiPrefix : (string)ApiPrefix;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._apiPrefix)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._apiPrefix.ToString()) : null, "apiPrefix" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.PowerShell.cs new file mode 100644 index 000000000000..12fac1242e07 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.PowerShell.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Rule to restrict incoming IP address. + [System.ComponentModel.TypeConverter(typeof(IPSecurityRestrictionRuleTypeConverter))] + public partial class IPSecurityRestrictionRule + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new IPSecurityRestrictionRule(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new IPSecurityRestrictionRule(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal IPSecurityRestrictionRule(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("IPAddressRange")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).IPAddressRange = (string) content.GetValueForProperty("IPAddressRange",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).IPAddressRange, global::System.Convert.ToString); + } + if (content.Contains("Action")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).Action = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Action) content.GetValueForProperty("Action",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).Action, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Action.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal IPSecurityRestrictionRule(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("IPAddressRange")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).IPAddressRange = (string) content.GetValueForProperty("IPAddressRange",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).IPAddressRange, global::System.Convert.ToString); + } + if (content.Contains("Action")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).Action = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Action) content.GetValueForProperty("Action",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal)this).Action, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Action.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Rule to restrict incoming IP address. + [System.ComponentModel.TypeConverter(typeof(IPSecurityRestrictionRuleTypeConverter))] + public partial interface IIPSecurityRestrictionRule + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.TypeConverter.cs new file mode 100644 index 000000000000..b1f6a3597286 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IPSecurityRestrictionRuleTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return IPSecurityRestrictionRule.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return IPSecurityRestrictionRule.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return IPSecurityRestrictionRule.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.cs new file mode 100644 index 000000000000..9d8d27f63c93 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Rule to restrict incoming IP address. + public partial class IPSecurityRestrictionRule : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRuleInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Action _action; + + /// + /// Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or ALL Deny + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Action Action { get => this._action; set => this._action = value; } + + /// Backing field for property. + private string _description; + + /// + /// Describe the IP restriction rule that is being sent to the container-app. This is an optional field. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _iPAddressRange; + + /// CIDR notation to match incoming IP address + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string IPAddressRange { get => this._iPAddressRange; set => this._iPAddressRange = value; } + + /// Backing field for property. + private string _name; + + /// Name for the IP restriction rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Creates an new instance. + public IPSecurityRestrictionRule() + { + + } + } + /// Rule to restrict incoming IP address. + public partial interface IIPSecurityRestrictionRule : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or ALL Deny + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or ALL Deny", + SerializedName = @"action", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Action) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Action Action { get; set; } + /// + /// Describe the IP restriction rule that is being sent to the container-app. This is an optional field. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Describe the IP restriction rule that is being sent to the container-app. This is an optional field.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// CIDR notation to match incoming IP address + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"CIDR notation to match incoming IP address", + SerializedName = @"ipAddressRange", + PossibleTypes = new [] { typeof(string) })] + string IPAddressRange { get; set; } + /// Name for the IP restriction rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name for the IP restriction rule.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + + } + /// Rule to restrict incoming IP address. + internal partial interface IIPSecurityRestrictionRuleInternal + + { + /// + /// Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or ALL Deny + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Action Action { get; set; } + /// + /// Describe the IP restriction rule that is being sent to the container-app. This is an optional field. + /// + string Description { get; set; } + /// CIDR notation to match incoming IP address + string IPAddressRange { get; set; } + /// Name for the IP restriction rule. + string Name { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.json.cs new file mode 100644 index 000000000000..117327149267 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/IPSecurityRestrictionRule.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Rule to restrict incoming IP address. + public partial class IPSecurityRestrictionRule + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new IPSecurityRestrictionRule(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal IPSecurityRestrictionRule(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_iPAddressRange = If( json?.PropertyT("ipAddressRange"), out var __jsonIPAddressRange) ? (string)__jsonIPAddressRange : (string)IPAddressRange;} + {_action = If( json?.PropertyT("action"), out var __jsonAction) ? (string)__jsonAction : (string)Action;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._iPAddressRange)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._iPAddressRange.ToString()) : null, "ipAddressRange" ,container.Add ); + AddIf( null != (((object)this._action)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._action.ToString()) : null, "action" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.PowerShell.cs new file mode 100644 index 000000000000..2d5eb8607663 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.PowerShell.cs @@ -0,0 +1,652 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + /// + [System.ComponentModel.TypeConverter(typeof(IdentityProvidersTypeConverter))] + public partial class IdentityProviders + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new IdentityProviders(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new IdentityProviders(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal IdentityProviders(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureActiveDirectory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectory = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory) content.GetValueForProperty("AzureActiveDirectory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectory, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryTypeConverter.ConvertFrom); + } + if (content.Contains("Facebook")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Facebook = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebook) content.GetValueForProperty("Facebook",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Facebook, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.FacebookTypeConverter.ConvertFrom); + } + if (content.Contains("GitHub")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHub = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHub) content.GetValueForProperty("GitHub",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHub, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GitHubTypeConverter.ConvertFrom); + } + if (content.Contains("Google")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Google = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogle) content.GetValueForProperty("Google",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Google, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GoogleTypeConverter.ConvertFrom); + } + if (content.Contains("Twitter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Twitter = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitter) content.GetValueForProperty("Twitter",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Twitter, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TwitterTypeConverter.ConvertFrom); + } + if (content.Contains("Apple")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Apple = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IApple) content.GetValueForProperty("Apple",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Apple, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppleTypeConverter.ConvertFrom); + } + if (content.Contains("AzureStaticWebApp")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebApp = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps) content.GetValueForProperty("AzureStaticWebApp",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebApp, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebAppsTypeConverter.ConvertFrom); + } + if (content.Contains("CustomOpenIdConnectProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).CustomOpenIdConnectProvider = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders) content.GetValueForProperty("CustomOpenIdConnectProvider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).CustomOpenIdConnectProvider, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IdentityProvidersCustomOpenIdConnectProvidersTypeConverter.ConvertFrom); + } + if (content.Contains("AzureActiveDirectoryRegistration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryRegistration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration) content.GetValueForProperty("AzureActiveDirectoryRegistration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryRegistration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("AzureActiveDirectoryLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryLogin = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin) content.GetValueForProperty("AzureActiveDirectoryLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryLogin, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryLoginTypeConverter.ConvertFrom); + } + if (content.Contains("AzureActiveDirectoryValidation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryValidation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation) content.GetValueForProperty("AzureActiveDirectoryValidation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryValidation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryValidationTypeConverter.ConvertFrom); + } + if (content.Contains("TwitterRegistration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).TwitterRegistration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration) content.GetValueForProperty("TwitterRegistration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).TwitterRegistration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TwitterRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("AppleRegistration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleRegistration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration) content.GetValueForProperty("AppleRegistration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleRegistration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppleRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("AzureStaticWebAppRegistration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebAppRegistration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration) content.GetValueForProperty("AzureStaticWebAppRegistration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebAppRegistration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebAppsRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("AzureActiveDirectoryEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryEnabled = (bool?) content.GetValueForProperty("AzureActiveDirectoryEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AzureActiveDirectoryIsAutoProvisioned")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryIsAutoProvisioned = (bool?) content.GetValueForProperty("AzureActiveDirectoryIsAutoProvisioned",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryIsAutoProvisioned, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AzureActiveDirectoryRegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryRegistrationClientId = (string) content.GetValueForProperty("AzureActiveDirectoryRegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryRegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("AzureActiveDirectoryValidationAllowedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryValidationAllowedAudience = (string[]) content.GetValueForProperty("AzureActiveDirectoryValidationAllowedAudience",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryValidationAllowedAudience, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("FacebookRegistration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookRegistration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration) content.GetValueForProperty("FacebookRegistration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookRegistration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("FacebookLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookLogin = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("FacebookLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookLogin, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("FacebookEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookEnabled = (bool?) content.GetValueForProperty("FacebookEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FacebookGraphApiVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookGraphApiVersion = (string) content.GetValueForProperty("FacebookGraphApiVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookGraphApiVersion, global::System.Convert.ToString); + } + if (content.Contains("FacebookLoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookLoginScope = (string[]) content.GetValueForProperty("FacebookLoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookLoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("GitHubRegistration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubRegistration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration) content.GetValueForProperty("GitHubRegistration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubRegistration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("GitHubLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubLogin = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("GitHubLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubLogin, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("GitHubEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubEnabled = (bool?) content.GetValueForProperty("GitHubEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("GitHubLoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubLoginScope = (string[]) content.GetValueForProperty("GitHubLoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubLoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("GoogleRegistration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleRegistration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration) content.GetValueForProperty("GoogleRegistration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleRegistration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("GoogleLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleLogin = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("GoogleLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleLogin, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("GoogleValidation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleValidation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation) content.GetValueForProperty("GoogleValidation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleValidation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedAudiencesValidationTypeConverter.ConvertFrom); + } + if (content.Contains("GoogleEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleEnabled = (bool?) content.GetValueForProperty("GoogleEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("GoogleLoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleLoginScope = (string[]) content.GetValueForProperty("GoogleLoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleLoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TwitterEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).TwitterEnabled = (bool?) content.GetValueForProperty("TwitterEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).TwitterEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RegistrationConsumerKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationConsumerKey = (string) content.GetValueForProperty("RegistrationConsumerKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationConsumerKey, global::System.Convert.ToString); + } + if (content.Contains("AppleLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleLogin = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("AppleLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleLogin, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("AppleEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleEnabled = (bool?) content.GetValueForProperty("AppleEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AppleLoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleLoginScope = (string[]) content.GetValueForProperty("AppleLoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleLoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AppleRegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleRegistrationClientId = (string) content.GetValueForProperty("AppleRegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleRegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("AzureStaticWebAppEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebAppEnabled = (bool?) content.GetValueForProperty("AzureStaticWebAppEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebAppEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AzureStaticWebAppsRegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebAppsRegistrationClientId = (string) content.GetValueForProperty("AzureStaticWebAppsRegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebAppsRegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("RegistrationOpenIdIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationOpenIdIssuer = (string) content.GetValueForProperty("RegistrationOpenIdIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationOpenIdIssuer, global::System.Convert.ToString); + } + if (content.Contains("AzureActiveDirectoryRegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryRegistrationClientSecretSettingName = (string) content.GetValueForProperty("AzureActiveDirectoryRegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryRegistrationClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretCertificateThumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationClientSecretCertificateThumbprint = (string) content.GetValueForProperty("RegistrationClientSecretCertificateThumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationClientSecretCertificateThumbprint, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretCertificateSubjectAlternativeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationClientSecretCertificateSubjectAlternativeName = (string) content.GetValueForProperty("RegistrationClientSecretCertificateSubjectAlternativeName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationClientSecretCertificateSubjectAlternativeName, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretCertificateIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationClientSecretCertificateIssuer = (string) content.GetValueForProperty("RegistrationClientSecretCertificateIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationClientSecretCertificateIssuer, global::System.Convert.ToString); + } + if (content.Contains("LoginParameter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).LoginParameter = (string[]) content.GetValueForProperty("LoginParameter",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).LoginParameter, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("LoginDisableWwwAuthenticate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).LoginDisableWwwAuthenticate = (bool?) content.GetValueForProperty("LoginDisableWwwAuthenticate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).LoginDisableWwwAuthenticate, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ValidationJwtClaimCheck")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).ValidationJwtClaimCheck = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks) content.GetValueForProperty("ValidationJwtClaimCheck",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).ValidationJwtClaimCheck, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.JwtClaimChecksTypeConverter.ConvertFrom); + } + if (content.Contains("ValidationDefaultAuthorizationPolicy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).ValidationDefaultAuthorizationPolicy = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy) content.GetValueForProperty("ValidationDefaultAuthorizationPolicy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).ValidationDefaultAuthorizationPolicy, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultAuthorizationPolicyTypeConverter.ConvertFrom); + } + if (content.Contains("JwtClaimCheckAllowedGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).JwtClaimCheckAllowedGroup = (string[]) content.GetValueForProperty("JwtClaimCheckAllowedGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).JwtClaimCheckAllowedGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("DefaultAuthorizationPolicyAllowedPrincipal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).DefaultAuthorizationPolicyAllowedPrincipal = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals) content.GetValueForProperty("DefaultAuthorizationPolicyAllowedPrincipal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).DefaultAuthorizationPolicyAllowedPrincipal, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedPrincipalsTypeConverter.ConvertFrom); + } + if (content.Contains("DefaultAuthorizationPolicyAllowedApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).DefaultAuthorizationPolicyAllowedApplication = (string[]) content.GetValueForProperty("DefaultAuthorizationPolicyAllowedApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).DefaultAuthorizationPolicyAllowedApplication, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RegistrationAppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationAppId = (string) content.GetValueForProperty("RegistrationAppId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationAppId, global::System.Convert.ToString); + } + if (content.Contains("RegistrationAppSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationAppSecretSettingName = (string) content.GetValueForProperty("RegistrationAppSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationAppSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("GitHubRegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubRegistrationClientId = (string) content.GetValueForProperty("GitHubRegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubRegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("GitHubRegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubRegistrationClientSecretSettingName = (string) content.GetValueForProperty("GitHubRegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubRegistrationClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("GoogleRegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleRegistrationClientId = (string) content.GetValueForProperty("GoogleRegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleRegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("GoogleRegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleRegistrationClientSecretSettingName = (string) content.GetValueForProperty("GoogleRegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleRegistrationClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("GoogleValidationAllowedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleValidationAllowedAudience = (string[]) content.GetValueForProperty("GoogleValidationAllowedAudience",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleValidationAllowedAudience, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RegistrationConsumerSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationConsumerSecretSettingName = (string) content.GetValueForProperty("RegistrationConsumerSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationConsumerSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("AppleRegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleRegistrationClientSecretSettingName = (string) content.GetValueForProperty("AppleRegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleRegistrationClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("JwtClaimCheckAllowedClientApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).JwtClaimCheckAllowedClientApplication = (string[]) content.GetValueForProperty("JwtClaimCheckAllowedClientApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).JwtClaimCheckAllowedClientApplication, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AllowedPrincipalGroup = (string[]) content.GetValueForProperty("AllowedPrincipalGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AllowedPrincipalGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AllowedPrincipalIdentity = (string[]) content.GetValueForProperty("AllowedPrincipalIdentity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AllowedPrincipalIdentity, __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 IdentityProviders(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureActiveDirectory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectory = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory) content.GetValueForProperty("AzureActiveDirectory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectory, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryTypeConverter.ConvertFrom); + } + if (content.Contains("Facebook")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Facebook = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebook) content.GetValueForProperty("Facebook",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Facebook, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.FacebookTypeConverter.ConvertFrom); + } + if (content.Contains("GitHub")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHub = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHub) content.GetValueForProperty("GitHub",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHub, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GitHubTypeConverter.ConvertFrom); + } + if (content.Contains("Google")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Google = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogle) content.GetValueForProperty("Google",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Google, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GoogleTypeConverter.ConvertFrom); + } + if (content.Contains("Twitter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Twitter = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitter) content.GetValueForProperty("Twitter",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Twitter, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TwitterTypeConverter.ConvertFrom); + } + if (content.Contains("Apple")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Apple = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IApple) content.GetValueForProperty("Apple",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).Apple, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppleTypeConverter.ConvertFrom); + } + if (content.Contains("AzureStaticWebApp")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebApp = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps) content.GetValueForProperty("AzureStaticWebApp",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebApp, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebAppsTypeConverter.ConvertFrom); + } + if (content.Contains("CustomOpenIdConnectProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).CustomOpenIdConnectProvider = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders) content.GetValueForProperty("CustomOpenIdConnectProvider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).CustomOpenIdConnectProvider, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IdentityProvidersCustomOpenIdConnectProvidersTypeConverter.ConvertFrom); + } + if (content.Contains("AzureActiveDirectoryRegistration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryRegistration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration) content.GetValueForProperty("AzureActiveDirectoryRegistration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryRegistration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("AzureActiveDirectoryLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryLogin = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin) content.GetValueForProperty("AzureActiveDirectoryLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryLogin, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryLoginTypeConverter.ConvertFrom); + } + if (content.Contains("AzureActiveDirectoryValidation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryValidation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation) content.GetValueForProperty("AzureActiveDirectoryValidation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryValidation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectoryValidationTypeConverter.ConvertFrom); + } + if (content.Contains("TwitterRegistration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).TwitterRegistration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration) content.GetValueForProperty("TwitterRegistration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).TwitterRegistration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TwitterRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("AppleRegistration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleRegistration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration) content.GetValueForProperty("AppleRegistration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleRegistration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppleRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("AzureStaticWebAppRegistration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebAppRegistration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration) content.GetValueForProperty("AzureStaticWebAppRegistration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebAppRegistration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebAppsRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("AzureActiveDirectoryEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryEnabled = (bool?) content.GetValueForProperty("AzureActiveDirectoryEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AzureActiveDirectoryIsAutoProvisioned")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryIsAutoProvisioned = (bool?) content.GetValueForProperty("AzureActiveDirectoryIsAutoProvisioned",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryIsAutoProvisioned, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AzureActiveDirectoryRegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryRegistrationClientId = (string) content.GetValueForProperty("AzureActiveDirectoryRegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryRegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("AzureActiveDirectoryValidationAllowedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryValidationAllowedAudience = (string[]) content.GetValueForProperty("AzureActiveDirectoryValidationAllowedAudience",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryValidationAllowedAudience, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("FacebookRegistration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookRegistration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration) content.GetValueForProperty("FacebookRegistration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookRegistration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("FacebookLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookLogin = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("FacebookLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookLogin, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("FacebookEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookEnabled = (bool?) content.GetValueForProperty("FacebookEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FacebookGraphApiVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookGraphApiVersion = (string) content.GetValueForProperty("FacebookGraphApiVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookGraphApiVersion, global::System.Convert.ToString); + } + if (content.Contains("FacebookLoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookLoginScope = (string[]) content.GetValueForProperty("FacebookLoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).FacebookLoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("GitHubRegistration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubRegistration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration) content.GetValueForProperty("GitHubRegistration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubRegistration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("GitHubLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubLogin = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("GitHubLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubLogin, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("GitHubEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubEnabled = (bool?) content.GetValueForProperty("GitHubEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("GitHubLoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubLoginScope = (string[]) content.GetValueForProperty("GitHubLoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubLoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("GoogleRegistration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleRegistration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration) content.GetValueForProperty("GoogleRegistration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleRegistration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ClientRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("GoogleLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleLogin = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("GoogleLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleLogin, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("GoogleValidation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleValidation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation) content.GetValueForProperty("GoogleValidation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleValidation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedAudiencesValidationTypeConverter.ConvertFrom); + } + if (content.Contains("GoogleEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleEnabled = (bool?) content.GetValueForProperty("GoogleEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("GoogleLoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleLoginScope = (string[]) content.GetValueForProperty("GoogleLoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleLoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TwitterEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).TwitterEnabled = (bool?) content.GetValueForProperty("TwitterEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).TwitterEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RegistrationConsumerKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationConsumerKey = (string) content.GetValueForProperty("RegistrationConsumerKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationConsumerKey, global::System.Convert.ToString); + } + if (content.Contains("AppleLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleLogin = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes) content.GetValueForProperty("AppleLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleLogin, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginScopesTypeConverter.ConvertFrom); + } + if (content.Contains("AppleEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleEnabled = (bool?) content.GetValueForProperty("AppleEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AppleLoginScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleLoginScope = (string[]) content.GetValueForProperty("AppleLoginScope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleLoginScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AppleRegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleRegistrationClientId = (string) content.GetValueForProperty("AppleRegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleRegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("AzureStaticWebAppEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebAppEnabled = (bool?) content.GetValueForProperty("AzureStaticWebAppEnabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebAppEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AzureStaticWebAppsRegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebAppsRegistrationClientId = (string) content.GetValueForProperty("AzureStaticWebAppsRegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureStaticWebAppsRegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("RegistrationOpenIdIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationOpenIdIssuer = (string) content.GetValueForProperty("RegistrationOpenIdIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationOpenIdIssuer, global::System.Convert.ToString); + } + if (content.Contains("AzureActiveDirectoryRegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryRegistrationClientSecretSettingName = (string) content.GetValueForProperty("AzureActiveDirectoryRegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AzureActiveDirectoryRegistrationClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretCertificateThumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationClientSecretCertificateThumbprint = (string) content.GetValueForProperty("RegistrationClientSecretCertificateThumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationClientSecretCertificateThumbprint, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretCertificateSubjectAlternativeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationClientSecretCertificateSubjectAlternativeName = (string) content.GetValueForProperty("RegistrationClientSecretCertificateSubjectAlternativeName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationClientSecretCertificateSubjectAlternativeName, global::System.Convert.ToString); + } + if (content.Contains("RegistrationClientSecretCertificateIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationClientSecretCertificateIssuer = (string) content.GetValueForProperty("RegistrationClientSecretCertificateIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationClientSecretCertificateIssuer, global::System.Convert.ToString); + } + if (content.Contains("LoginParameter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).LoginParameter = (string[]) content.GetValueForProperty("LoginParameter",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).LoginParameter, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("LoginDisableWwwAuthenticate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).LoginDisableWwwAuthenticate = (bool?) content.GetValueForProperty("LoginDisableWwwAuthenticate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).LoginDisableWwwAuthenticate, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ValidationJwtClaimCheck")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).ValidationJwtClaimCheck = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks) content.GetValueForProperty("ValidationJwtClaimCheck",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).ValidationJwtClaimCheck, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.JwtClaimChecksTypeConverter.ConvertFrom); + } + if (content.Contains("ValidationDefaultAuthorizationPolicy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).ValidationDefaultAuthorizationPolicy = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy) content.GetValueForProperty("ValidationDefaultAuthorizationPolicy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).ValidationDefaultAuthorizationPolicy, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DefaultAuthorizationPolicyTypeConverter.ConvertFrom); + } + if (content.Contains("JwtClaimCheckAllowedGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).JwtClaimCheckAllowedGroup = (string[]) content.GetValueForProperty("JwtClaimCheckAllowedGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).JwtClaimCheckAllowedGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("DefaultAuthorizationPolicyAllowedPrincipal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).DefaultAuthorizationPolicyAllowedPrincipal = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals) content.GetValueForProperty("DefaultAuthorizationPolicyAllowedPrincipal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).DefaultAuthorizationPolicyAllowedPrincipal, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AllowedPrincipalsTypeConverter.ConvertFrom); + } + if (content.Contains("DefaultAuthorizationPolicyAllowedApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).DefaultAuthorizationPolicyAllowedApplication = (string[]) content.GetValueForProperty("DefaultAuthorizationPolicyAllowedApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).DefaultAuthorizationPolicyAllowedApplication, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RegistrationAppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationAppId = (string) content.GetValueForProperty("RegistrationAppId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationAppId, global::System.Convert.ToString); + } + if (content.Contains("RegistrationAppSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationAppSecretSettingName = (string) content.GetValueForProperty("RegistrationAppSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationAppSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("GitHubRegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubRegistrationClientId = (string) content.GetValueForProperty("GitHubRegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubRegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("GitHubRegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubRegistrationClientSecretSettingName = (string) content.GetValueForProperty("GitHubRegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GitHubRegistrationClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("GoogleRegistrationClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleRegistrationClientId = (string) content.GetValueForProperty("GoogleRegistrationClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleRegistrationClientId, global::System.Convert.ToString); + } + if (content.Contains("GoogleRegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleRegistrationClientSecretSettingName = (string) content.GetValueForProperty("GoogleRegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleRegistrationClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("GoogleValidationAllowedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleValidationAllowedAudience = (string[]) content.GetValueForProperty("GoogleValidationAllowedAudience",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).GoogleValidationAllowedAudience, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RegistrationConsumerSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationConsumerSecretSettingName = (string) content.GetValueForProperty("RegistrationConsumerSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).RegistrationConsumerSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("AppleRegistrationClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleRegistrationClientSecretSettingName = (string) content.GetValueForProperty("AppleRegistrationClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AppleRegistrationClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("JwtClaimCheckAllowedClientApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).JwtClaimCheckAllowedClientApplication = (string[]) content.GetValueForProperty("JwtClaimCheckAllowedClientApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).JwtClaimCheckAllowedClientApplication, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AllowedPrincipalGroup = (string[]) content.GetValueForProperty("AllowedPrincipalGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AllowedPrincipalGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedPrincipalIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AllowedPrincipalIdentity = (string[]) content.GetValueForProperty("AllowedPrincipalIdentity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal)this).AllowedPrincipalIdentity, __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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + [System.ComponentModel.TypeConverter(typeof(IdentityProvidersTypeConverter))] + public partial interface IIdentityProviders + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.TypeConverter.cs new file mode 100644 index 000000000000..896754556d11 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IdentityProvidersTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return IdentityProviders.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return IdentityProviders.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return IdentityProviders.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.cs new file mode 100644 index 000000000000..54e00bf02e25 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.cs @@ -0,0 +1,975 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + /// + public partial class IdentityProviders : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal + { + + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] AllowedPrincipalGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).AllowedPrincipalGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).AllowedPrincipalGroup = value ?? null /* arrayOf */; } + + /// The list of the allowed identities. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] AllowedPrincipalIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).AllowedPrincipalIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).AllowedPrincipalIdentity = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IApple _apple; + + /// The configuration settings of the Apple provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IApple Apple { get => (this._apple = this._apple ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Apple()); set => this._apple = value; } + + /// + /// false if the Apple provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? AppleEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)Apple).Enabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)Apple).Enabled = value ?? default(bool); } + + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] AppleLoginScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)Apple).LoginScope; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)Apple).LoginScope = value ?? null /* arrayOf */; } + + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AppleRegistrationClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)Apple).RegistrationClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)Apple).RegistrationClientId = value ?? null; } + + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AppleRegistrationClientSecretSettingName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)Apple).RegistrationClientSecretSettingName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)Apple).RegistrationClientSecretSettingName = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory _azureActiveDirectory; + + /// The configuration settings of the Azure Active directory provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory AzureActiveDirectory { get => (this._azureActiveDirectory = this._azureActiveDirectory ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectory()); set => this._azureActiveDirectory = value; } + + /// + /// false if the Azure Active Directory provider should not be enabled despite the set registration; otherwise, + /// true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? AzureActiveDirectoryEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).Enabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).Enabled = value ?? default(bool); } + + /// + /// Gets a value indicating whether the Azure AD configuration was auto-provisioned using 1st party tooling. + /// This is an internal flag primarily intended to support the Azure Management Portal. Users should not + /// read or write to this property. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? AzureActiveDirectoryIsAutoProvisioned { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).IsAutoProvisioned; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).IsAutoProvisioned = value ?? default(bool); } + + /// + /// The Client ID of this relying party application, known as the client_id. + /// This setting is required for enabling OpenID Connection authentication with Azure Active Directory or + /// other 3rd party OpenID Connect providers. + /// More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureActiveDirectoryRegistrationClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).RegistrationClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).RegistrationClientId = value ?? null; } + + /// + /// The app setting name that contains the client secret of the relying party application. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureActiveDirectoryRegistrationClientSecretSettingName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).RegistrationClientSecretSettingName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).RegistrationClientSecretSettingName = value ?? null; } + + /// + /// The list of audiences that can make successful authentication/authorization requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] AzureActiveDirectoryValidationAllowedAudience { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).ValidationAllowedAudience; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).ValidationAllowedAudience = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps _azureStaticWebApp; + + /// The configuration settings of the Azure Static Web Apps provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps AzureStaticWebApp { get => (this._azureStaticWebApp = this._azureStaticWebApp ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebApps()); set => this._azureStaticWebApp = value; } + + /// + /// false if the Azure Static Web Apps provider should not be enabled despite the set registration; otherwise, + /// true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? AzureStaticWebAppEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)AzureStaticWebApp).Enabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)AzureStaticWebApp).Enabled = value ?? default(bool); } + + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureStaticWebAppsRegistrationClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)AzureStaticWebApp).RegistrationClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)AzureStaticWebApp).RegistrationClientId = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders _customOpenIdConnectProvider; + + /// + /// The map of the name of the alias of each custom Open ID Connect provider to the + /// configuration settings of the custom Open ID Connect provider. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders CustomOpenIdConnectProvider { get => (this._customOpenIdConnectProvider = this._customOpenIdConnectProvider ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IdentityProvidersCustomOpenIdConnectProviders()); set => this._customOpenIdConnectProvider = value; } + + /// The configuration settings of the Azure Active Directory allowed applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] DefaultAuthorizationPolicyAllowedApplication { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).DefaultAuthorizationPolicyAllowedApplication; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).DefaultAuthorizationPolicyAllowedApplication = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebook _facebook; + + /// The configuration settings of the Facebook provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebook Facebook { get => (this._facebook = this._facebook ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Facebook()); set => this._facebook = value; } + + /// + /// false if the Facebook provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? FacebookEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)Facebook).Enabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)Facebook).Enabled = value ?? default(bool); } + + /// The version of the Facebook api to be used while logging in. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string FacebookGraphApiVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)Facebook).GraphApiVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)Facebook).GraphApiVersion = value ?? null; } + + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] FacebookLoginScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)Facebook).LoginScope; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)Facebook).LoginScope = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHub _gitHub; + + /// The configuration settings of the GitHub provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHub GitHub { get => (this._gitHub = this._gitHub ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GitHub()); set => this._gitHub = value; } + + /// + /// false if the GitHub provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? GitHubEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)GitHub).Enabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)GitHub).Enabled = value ?? default(bool); } + + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] GitHubLoginScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)GitHub).LoginScope; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)GitHub).LoginScope = value ?? null /* arrayOf */; } + + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GitHubRegistrationClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)GitHub).RegistrationClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)GitHub).RegistrationClientId = value ?? null; } + + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GitHubRegistrationClientSecretSettingName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)GitHub).RegistrationClientSecretSettingName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)GitHub).RegistrationClientSecretSettingName = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogle _google; + + /// The configuration settings of the Google provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogle Google { get => (this._google = this._google ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Google()); set => this._google = value; } + + /// + /// false if the Google provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? GoogleEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).Enabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).Enabled = value ?? default(bool); } + + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] GoogleLoginScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).LoginScope; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).LoginScope = value ?? null /* arrayOf */; } + + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GoogleRegistrationClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).RegistrationClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).RegistrationClientId = value ?? null; } + + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GoogleRegistrationClientSecretSettingName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).RegistrationClientSecretSettingName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).RegistrationClientSecretSettingName = value ?? null; } + + /// + /// The configuration settings of the allowed list of audiences from which to validate the JWT token. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] GoogleValidationAllowedAudience { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).ValidationAllowedAudience; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).ValidationAllowedAudience = value ?? null /* arrayOf */; } + + /// The list of the allowed client applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] JwtClaimCheckAllowedClientApplication { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).JwtClaimCheckAllowedClientApplication; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).JwtClaimCheckAllowedClientApplication = value ?? null /* arrayOf */; } + + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] JwtClaimCheckAllowedGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).JwtClaimCheckAllowedGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).JwtClaimCheckAllowedGroup = value ?? null /* arrayOf */; } + + /// + /// true if the www-authenticate provider should be omitted from the request; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? LoginDisableWwwAuthenticate { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).LoginDisableWwwAuthenticate; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).LoginDisableWwwAuthenticate = value ?? default(bool); } + + /// + /// Login parameters to send to the OpenID Connect authorization endpoint when + /// a user logs in. Each parameter must be in the form "key=value". + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string[] LoginParameter { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).LoginParameter; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).LoginParameter = value ?? null /* arrayOf */; } + + /// Internal Acessors for Apple + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IApple Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.Apple { get => (this._apple = this._apple ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Apple()); set { {_apple = value;} } } + + /// Internal Acessors for AppleLogin + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.AppleLogin { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)Apple).Login; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)Apple).Login = value; } + + /// Internal Acessors for AppleRegistration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.AppleRegistration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)Apple).Registration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleInternal)Apple).Registration = value; } + + /// Internal Acessors for AzureActiveDirectory + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.AzureActiveDirectory { get => (this._azureActiveDirectory = this._azureActiveDirectory ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectory()); set { {_azureActiveDirectory = value;} } } + + /// Internal Acessors for AzureActiveDirectoryLogin + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.AzureActiveDirectoryLogin { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).Login; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).Login = value; } + + /// Internal Acessors for AzureActiveDirectoryRegistration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.AzureActiveDirectoryRegistration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).Registration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).Registration = value; } + + /// Internal Acessors for AzureActiveDirectoryValidation + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.AzureActiveDirectoryValidation { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).Validation; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).Validation = value; } + + /// Internal Acessors for AzureStaticWebApp + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.AzureStaticWebApp { get => (this._azureStaticWebApp = this._azureStaticWebApp ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebApps()); set { {_azureStaticWebApp = value;} } } + + /// Internal Acessors for AzureStaticWebAppRegistration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.AzureStaticWebAppRegistration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)AzureStaticWebApp).Registration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsInternal)AzureStaticWebApp).Registration = value; } + + /// Internal Acessors for DefaultAuthorizationPolicyAllowedPrincipal + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.DefaultAuthorizationPolicyAllowedPrincipal { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).DefaultAuthorizationPolicyAllowedPrincipal; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).DefaultAuthorizationPolicyAllowedPrincipal = value; } + + /// Internal Acessors for Facebook + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebook Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.Facebook { get => (this._facebook = this._facebook ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Facebook()); set { {_facebook = value;} } } + + /// Internal Acessors for FacebookLogin + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.FacebookLogin { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)Facebook).Login; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)Facebook).Login = value; } + + /// Internal Acessors for FacebookRegistration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.FacebookRegistration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)Facebook).Registration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)Facebook).Registration = value; } + + /// Internal Acessors for GitHub + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHub Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.GitHub { get => (this._gitHub = this._gitHub ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GitHub()); set { {_gitHub = value;} } } + + /// Internal Acessors for GitHubLogin + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.GitHubLogin { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)GitHub).Login; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)GitHub).Login = value; } + + /// Internal Acessors for GitHubRegistration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.GitHubRegistration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)GitHub).Registration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHubInternal)GitHub).Registration = value; } + + /// Internal Acessors for Google + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogle Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.Google { get => (this._google = this._google ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Google()); set { {_google = value;} } } + + /// Internal Acessors for GoogleLogin + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.GoogleLogin { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).Login; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).Login = value; } + + /// Internal Acessors for GoogleRegistration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.GoogleRegistration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).Registration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).Registration = value; } + + /// Internal Acessors for GoogleValidation + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.GoogleValidation { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).Validation; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogleInternal)Google).Validation = value; } + + /// Internal Acessors for Twitter + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitter Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.Twitter { get => (this._twitter = this._twitter ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Twitter()); set { {_twitter = value;} } } + + /// Internal Acessors for TwitterRegistration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.TwitterRegistration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)Twitter).Registration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)Twitter).Registration = value; } + + /// Internal Acessors for ValidationDefaultAuthorizationPolicy + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.ValidationDefaultAuthorizationPolicy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).ValidationDefaultAuthorizationPolicy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).ValidationDefaultAuthorizationPolicy = value; } + + /// Internal Acessors for ValidationJwtClaimCheck + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersInternal.ValidationJwtClaimCheck { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).ValidationJwtClaimCheck; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).ValidationJwtClaimCheck = value; } + + /// The App ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationAppId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)Facebook).RegistrationAppId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)Facebook).RegistrationAppId = value ?? null; } + + /// The app setting name that contains the app secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationAppSecretSettingName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)Facebook).RegistrationAppSecretSettingName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebookInternal)Facebook).RegistrationAppSecretSettingName = value ?? null; } + + /// + /// An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientSecretCertificateIssuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).RegistrationClientSecretCertificateIssuer; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).RegistrationClientSecretCertificateIssuer = value ?? null; } + + /// + /// An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing + /// purposes. This property acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientSecretCertificateSubjectAlternativeName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).RegistrationClientSecretCertificateSubjectAlternativeName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).RegistrationClientSecretCertificateSubjectAlternativeName = value ?? null; } + + /// + /// An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationClientSecretCertificateThumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).RegistrationClientSecretCertificateThumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).RegistrationClientSecretCertificateThumbprint = value ?? null; } + + /// + /// The OAuth 1.0a consumer key of the Twitter application used for sign-in. + /// This setting is required for enabling Twitter Sign-In. + /// Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationConsumerKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)Twitter).RegistrationConsumerKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)Twitter).RegistrationConsumerKey = value ?? null; } + + /// + /// The app setting name that contains the OAuth 1.0a consumer secret of the Twitter + /// application used for sign-in. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationConsumerSecretSettingName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)Twitter).RegistrationConsumerSecretSettingName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)Twitter).RegistrationConsumerSecretSettingName = value ?? null; } + + /// + /// The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. + /// When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. + /// This URI is a case-sensitive identifier for the token issuer. + /// More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationOpenIdIssuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).RegistrationOpenIdIssuer; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryInternal)AzureActiveDirectory).RegistrationOpenIdIssuer = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitter _twitter; + + /// The configuration settings of the Twitter provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitter Twitter { get => (this._twitter = this._twitter ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Twitter()); set => this._twitter = value; } + + /// + /// false if the Twitter provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? TwitterEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)Twitter).Enabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)Twitter).Enabled = value ?? default(bool); } + + /// Creates an new instance. + public IdentityProviders() + { + + } + } + /// The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + public partial interface IIdentityProviders : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed groups.", + SerializedName = @"groups", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedPrincipalGroup { get; set; } + /// The list of the allowed identities. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed identities.", + SerializedName = @"identities", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedPrincipalIdentity { get; set; } + /// + /// false if the Apple provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the Apple provider should not be enabled despite the set registration; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? AppleEnabled { get; set; } + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of the scopes that should be requested while authenticating.", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] AppleLoginScope { get; set; } + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Client ID of the app used for login.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string AppleRegistrationClientId { get; set; } + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the client secret.", + SerializedName = @"clientSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string AppleRegistrationClientSecretSettingName { get; set; } + /// + /// false if the Azure Active Directory provider should not be enabled despite the set registration; otherwise, + /// true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the Azure Active Directory provider should not be enabled despite the set registration; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? AzureActiveDirectoryEnabled { get; set; } + /// + /// Gets a value indicating whether the Azure AD configuration was auto-provisioned using 1st party tooling. + /// This is an internal flag primarily intended to support the Azure Management Portal. Users should not + /// read or write to this property. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets a value indicating whether the Azure AD configuration was auto-provisioned using 1st party tooling. + This is an internal flag primarily intended to support the Azure Management Portal. Users should not + read or write to this property.", + SerializedName = @"isAutoProvisioned", + PossibleTypes = new [] { typeof(bool) })] + bool? AzureActiveDirectoryIsAutoProvisioned { get; set; } + /// + /// The Client ID of this relying party application, known as the client_id. + /// This setting is required for enabling OpenID Connection authentication with Azure Active Directory or + /// other 3rd party OpenID Connect providers. + /// More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Client ID of this relying party application, known as the client_id. + This setting is required for enabling OpenID Connection authentication with Azure Active Directory or + other 3rd party OpenID Connect providers. + More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string AzureActiveDirectoryRegistrationClientId { get; set; } + /// + /// The app setting name that contains the client secret of the relying party application. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the client secret of the relying party application.", + SerializedName = @"clientSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string AzureActiveDirectoryRegistrationClientSecretSettingName { get; set; } + /// + /// The list of audiences that can make successful authentication/authorization requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of audiences that can make successful authentication/authorization requests.", + SerializedName = @"allowedAudiences", + PossibleTypes = new [] { typeof(string) })] + string[] AzureActiveDirectoryValidationAllowedAudience { get; set; } + /// + /// false if the Azure Static Web Apps provider should not be enabled despite the set registration; otherwise, + /// true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the Azure Static Web Apps provider should not be enabled despite the set registration; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? AzureStaticWebAppEnabled { get; set; } + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Client ID of the app used for login.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string AzureStaticWebAppsRegistrationClientId { get; set; } + /// + /// The map of the name of the alias of each custom Open ID Connect provider to the + /// configuration settings of the custom Open ID Connect provider. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The map of the name of the alias of each custom Open ID Connect provider to the + configuration settings of the custom Open ID Connect provider.", + SerializedName = @"customOpenIdConnectProviders", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders CustomOpenIdConnectProvider { get; set; } + /// The configuration settings of the Azure Active Directory allowed applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The configuration settings of the Azure Active Directory allowed applications.", + SerializedName = @"allowedApplications", + PossibleTypes = new [] { typeof(string) })] + string[] DefaultAuthorizationPolicyAllowedApplication { get; set; } + /// + /// false if the Facebook provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the Facebook provider should not be enabled despite the set registration; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? FacebookEnabled { get; set; } + /// The version of the Facebook api to be used while logging in. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the Facebook api to be used while logging in.", + SerializedName = @"graphApiVersion", + PossibleTypes = new [] { typeof(string) })] + string FacebookGraphApiVersion { get; set; } + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of the scopes that should be requested while authenticating.", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] FacebookLoginScope { get; set; } + /// + /// false if the GitHub provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the GitHub provider should not be enabled despite the set registration; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? GitHubEnabled { get; set; } + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of the scopes that should be requested while authenticating.", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] GitHubLoginScope { get; set; } + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Client ID of the app used for login.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string GitHubRegistrationClientId { get; set; } + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the client secret.", + SerializedName = @"clientSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string GitHubRegistrationClientSecretSettingName { get; set; } + /// + /// false if the Google provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the Google provider should not be enabled despite the set registration; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? GoogleEnabled { get; set; } + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of the scopes that should be requested while authenticating.", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] GoogleLoginScope { get; set; } + /// The Client ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Client ID of the app used for login.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string GoogleRegistrationClientId { get; set; } + /// The app setting name that contains the client secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the client secret.", + SerializedName = @"clientSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string GoogleRegistrationClientSecretSettingName { get; set; } + /// + /// The configuration settings of the allowed list of audiences from which to validate the JWT token. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The configuration settings of the allowed list of audiences from which to validate the JWT token.", + SerializedName = @"allowedAudiences", + PossibleTypes = new [] { typeof(string) })] + string[] GoogleValidationAllowedAudience { get; set; } + /// The list of the allowed client applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed client applications.", + SerializedName = @"allowedClientApplications", + PossibleTypes = new [] { typeof(string) })] + string[] JwtClaimCheckAllowedClientApplication { get; set; } + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed groups.", + SerializedName = @"allowedGroups", + PossibleTypes = new [] { typeof(string) })] + string[] JwtClaimCheckAllowedGroup { get; set; } + /// + /// true if the www-authenticate provider should be omitted from the request; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"true if the www-authenticate provider should be omitted from the request; otherwise, false.", + SerializedName = @"disableWWWAuthenticate", + PossibleTypes = new [] { typeof(bool) })] + bool? LoginDisableWwwAuthenticate { get; set; } + /// + /// Login parameters to send to the OpenID Connect authorization endpoint when + /// a user logs in. Each parameter must be in the form "key=value". + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Login parameters to send to the OpenID Connect authorization endpoint when + a user logs in. Each parameter must be in the form ""key=value"".", + SerializedName = @"loginParameters", + PossibleTypes = new [] { typeof(string) })] + string[] LoginParameter { get; set; } + /// The App ID of the app used for login. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The App ID of the app used for login.", + SerializedName = @"appId", + PossibleTypes = new [] { typeof(string) })] + string RegistrationAppId { get; set; } + /// The app setting name that contains the app secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the app secret.", + SerializedName = @"appSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string RegistrationAppSecretSettingName { get; set; } + /// + /// An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret Certificate Thumbprint. It is also optional.", + SerializedName = @"clientSecretCertificateIssuer", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientSecretCertificateIssuer { get; set; } + /// + /// An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing + /// purposes. This property acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret Certificate Thumbprint. It is also optional.", + SerializedName = @"clientSecretCertificateSubjectAlternativeName", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientSecretCertificateSubjectAlternativeName { get; set; } + /// + /// An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret. It is also optional. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret. It is also optional.", + SerializedName = @"clientSecretCertificateThumbprint", + PossibleTypes = new [] { typeof(string) })] + string RegistrationClientSecretCertificateThumbprint { get; set; } + /// + /// The OAuth 1.0a consumer key of the Twitter application used for sign-in. + /// This setting is required for enabling Twitter Sign-In. + /// Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The OAuth 1.0a consumer key of the Twitter application used for sign-in. + This setting is required for enabling Twitter Sign-In. + Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in", + SerializedName = @"consumerKey", + PossibleTypes = new [] { typeof(string) })] + string RegistrationConsumerKey { get; set; } + /// + /// The app setting name that contains the OAuth 1.0a consumer secret of the Twitter + /// application used for sign-in. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter + application used for sign-in.", + SerializedName = @"consumerSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string RegistrationConsumerSecretSettingName { get; set; } + /// + /// The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. + /// When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. + /// This URI is a case-sensitive identifier for the token issuer. + /// More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. + When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. + This URI is a case-sensitive identifier for the token issuer. + More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html", + SerializedName = @"openIdIssuer", + PossibleTypes = new [] { typeof(string) })] + string RegistrationOpenIdIssuer { get; set; } + /// + /// false if the Twitter provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the Twitter provider should not be enabled despite the set registration; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? TwitterEnabled { get; set; } + + } + /// The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + internal partial interface IIdentityProvidersInternal + + { + /// The list of the allowed groups. + string[] AllowedPrincipalGroup { get; set; } + /// The list of the allowed identities. + string[] AllowedPrincipalIdentity { get; set; } + /// The configuration settings of the Apple provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IApple Apple { get; set; } + /// + /// false if the Apple provider should not be enabled despite the set registration; otherwise, true. + /// + bool? AppleEnabled { get; set; } + /// The configuration settings of the login flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes AppleLogin { get; set; } + /// A list of the scopes that should be requested while authenticating. + string[] AppleLoginScope { get; set; } + /// The configuration settings of the Apple registration. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppleRegistration AppleRegistration { get; set; } + /// The Client ID of the app used for login. + string AppleRegistrationClientId { get; set; } + /// The app setting name that contains the client secret. + string AppleRegistrationClientSecretSettingName { get; set; } + /// The configuration settings of the Azure Active directory provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectory AzureActiveDirectory { get; set; } + /// + /// false if the Azure Active Directory provider should not be enabled despite the set registration; otherwise, + /// true. + /// + bool? AzureActiveDirectoryEnabled { get; set; } + /// + /// Gets a value indicating whether the Azure AD configuration was auto-provisioned using 1st party tooling. + /// This is an internal flag primarily intended to support the Azure Management Portal. Users should not + /// read or write to this property. + /// + bool? AzureActiveDirectoryIsAutoProvisioned { get; set; } + /// The configuration settings of the Azure Active Directory login flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryLogin AzureActiveDirectoryLogin { get; set; } + /// The configuration settings of the Azure Active Directory app registration. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryRegistration AzureActiveDirectoryRegistration { get; set; } + /// + /// The Client ID of this relying party application, known as the client_id. + /// This setting is required for enabling OpenID Connection authentication with Azure Active Directory or + /// other 3rd party OpenID Connect providers. + /// More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html + /// + string AzureActiveDirectoryRegistrationClientId { get; set; } + /// + /// The app setting name that contains the client secret of the relying party application. + /// + string AzureActiveDirectoryRegistrationClientSecretSettingName { get; set; } + /// The configuration settings of the Azure Active Directory token validation flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureActiveDirectoryValidation AzureActiveDirectoryValidation { get; set; } + /// + /// The list of audiences that can make successful authentication/authorization requests. + /// + string[] AzureActiveDirectoryValidationAllowedAudience { get; set; } + /// The configuration settings of the Azure Static Web Apps provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebApps AzureStaticWebApp { get; set; } + /// + /// false if the Azure Static Web Apps provider should not be enabled despite the set registration; otherwise, + /// true. + /// + bool? AzureStaticWebAppEnabled { get; set; } + /// The configuration settings of the Azure Static Web Apps registration. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureStaticWebAppsRegistration AzureStaticWebAppRegistration { get; set; } + /// The Client ID of the app used for login. + string AzureStaticWebAppsRegistrationClientId { get; set; } + /// + /// The map of the name of the alias of each custom Open ID Connect provider to the + /// configuration settings of the custom Open ID Connect provider. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders CustomOpenIdConnectProvider { get; set; } + /// The configuration settings of the Azure Active Directory allowed applications. + string[] DefaultAuthorizationPolicyAllowedApplication { get; set; } + /// The configuration settings of the Azure Active Directory allowed principals. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedPrincipals DefaultAuthorizationPolicyAllowedPrincipal { get; set; } + /// The configuration settings of the Facebook provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IFacebook Facebook { get; set; } + /// + /// false if the Facebook provider should not be enabled despite the set registration; otherwise, true. + /// + bool? FacebookEnabled { get; set; } + /// The version of the Facebook api to be used while logging in. + string FacebookGraphApiVersion { get; set; } + /// The configuration settings of the login flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes FacebookLogin { get; set; } + /// A list of the scopes that should be requested while authenticating. + string[] FacebookLoginScope { get; set; } + /// The configuration settings of the app registration for the Facebook provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppRegistration FacebookRegistration { get; set; } + /// The configuration settings of the GitHub provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGitHub GitHub { get; set; } + /// + /// false if the GitHub provider should not be enabled despite the set registration; otherwise, true. + /// + bool? GitHubEnabled { get; set; } + /// The configuration settings of the login flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes GitHubLogin { get; set; } + /// A list of the scopes that should be requested while authenticating. + string[] GitHubLoginScope { get; set; } + /// The configuration settings of the app registration for the GitHub provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration GitHubRegistration { get; set; } + /// The Client ID of the app used for login. + string GitHubRegistrationClientId { get; set; } + /// The app setting name that contains the client secret. + string GitHubRegistrationClientSecretSettingName { get; set; } + /// The configuration settings of the Google provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGoogle Google { get; set; } + /// + /// false if the Google provider should not be enabled despite the set registration; otherwise, true. + /// + bool? GoogleEnabled { get; set; } + /// The configuration settings of the login flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes GoogleLogin { get; set; } + /// A list of the scopes that should be requested while authenticating. + string[] GoogleLoginScope { get; set; } + /// The configuration settings of the app registration for the Google provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IClientRegistration GoogleRegistration { get; set; } + /// The Client ID of the app used for login. + string GoogleRegistrationClientId { get; set; } + /// The app setting name that contains the client secret. + string GoogleRegistrationClientSecretSettingName { get; set; } + /// The configuration settings of the Azure Active Directory token validation flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAllowedAudiencesValidation GoogleValidation { get; set; } + /// + /// The configuration settings of the allowed list of audiences from which to validate the JWT token. + /// + string[] GoogleValidationAllowedAudience { get; set; } + /// The list of the allowed client applications. + string[] JwtClaimCheckAllowedClientApplication { get; set; } + /// The list of the allowed groups. + string[] JwtClaimCheckAllowedGroup { get; set; } + /// + /// true if the www-authenticate provider should be omitted from the request; otherwise, false. + /// + bool? LoginDisableWwwAuthenticate { get; set; } + /// + /// Login parameters to send to the OpenID Connect authorization endpoint when + /// a user logs in. Each parameter must be in the form "key=value". + /// + string[] LoginParameter { get; set; } + /// The App ID of the app used for login. + string RegistrationAppId { get; set; } + /// The app setting name that contains the app secret. + string RegistrationAppSecretSettingName { get; set; } + /// + /// An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + string RegistrationClientSecretCertificateIssuer { get; set; } + /// + /// An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing + /// purposes. This property acts as + /// a replacement for the Client Secret Certificate Thumbprint. It is also optional. + /// + string RegistrationClientSecretCertificateSubjectAlternativeName { get; set; } + /// + /// An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property + /// acts as + /// a replacement for the Client Secret. It is also optional. + /// + string RegistrationClientSecretCertificateThumbprint { get; set; } + /// + /// The OAuth 1.0a consumer key of the Twitter application used for sign-in. + /// This setting is required for enabling Twitter Sign-In. + /// Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in + /// + string RegistrationConsumerKey { get; set; } + /// + /// The app setting name that contains the OAuth 1.0a consumer secret of the Twitter + /// application used for sign-in. + /// + string RegistrationConsumerSecretSettingName { get; set; } + /// + /// The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application. + /// When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. + /// This URI is a case-sensitive identifier for the token issuer. + /// More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html + /// + string RegistrationOpenIdIssuer { get; set; } + /// The configuration settings of the Twitter provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitter Twitter { get; set; } + /// + /// false if the Twitter provider should not be enabled despite the set registration; otherwise, true. + /// + bool? TwitterEnabled { get; set; } + /// The configuration settings of the app registration for the Twitter provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration TwitterRegistration { get; set; } + /// The configuration settings of the default authorization policy. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultAuthorizationPolicy ValidationDefaultAuthorizationPolicy { get; set; } + /// + /// The configuration settings of the checks that should be made while validating the JWT Claims. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks ValidationJwtClaimCheck { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.json.cs new file mode 100644 index 000000000000..f703248c375f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProviders.json.cs @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + /// + public partial class IdentityProviders + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new IdentityProviders(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal IdentityProviders(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_azureActiveDirectory = If( json?.PropertyT("azureActiveDirectory"), out var __jsonAzureActiveDirectory) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureActiveDirectory.FromJson(__jsonAzureActiveDirectory) : AzureActiveDirectory;} + {_facebook = If( json?.PropertyT("facebook"), out var __jsonFacebook) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Facebook.FromJson(__jsonFacebook) : Facebook;} + {_gitHub = If( json?.PropertyT("gitHub"), out var __jsonGitHub) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GitHub.FromJson(__jsonGitHub) : GitHub;} + {_google = If( json?.PropertyT("google"), out var __jsonGoogle) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Google.FromJson(__jsonGoogle) : Google;} + {_twitter = If( json?.PropertyT("twitter"), out var __jsonTwitter) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Twitter.FromJson(__jsonTwitter) : Twitter;} + {_apple = If( json?.PropertyT("apple"), out var __jsonApple) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Apple.FromJson(__jsonApple) : Apple;} + {_azureStaticWebApp = If( json?.PropertyT("azureStaticWebApps"), out var __jsonAzureStaticWebApps) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureStaticWebApps.FromJson(__jsonAzureStaticWebApps) : AzureStaticWebApp;} + {_customOpenIdConnectProvider = If( json?.PropertyT("customOpenIdConnectProviders"), out var __jsonCustomOpenIdConnectProviders) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IdentityProvidersCustomOpenIdConnectProviders.FromJson(__jsonCustomOpenIdConnectProviders) : CustomOpenIdConnectProvider;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._azureActiveDirectory ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._azureActiveDirectory.ToJson(null,serializationMode) : null, "azureActiveDirectory" ,container.Add ); + AddIf( null != this._facebook ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._facebook.ToJson(null,serializationMode) : null, "facebook" ,container.Add ); + AddIf( null != this._gitHub ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._gitHub.ToJson(null,serializationMode) : null, "gitHub" ,container.Add ); + AddIf( null != this._google ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._google.ToJson(null,serializationMode) : null, "google" ,container.Add ); + AddIf( null != this._twitter ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._twitter.ToJson(null,serializationMode) : null, "twitter" ,container.Add ); + AddIf( null != this._apple ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._apple.ToJson(null,serializationMode) : null, "apple" ,container.Add ); + AddIf( null != this._azureStaticWebApp ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._azureStaticWebApp.ToJson(null,serializationMode) : null, "azureStaticWebApps" ,container.Add ); + AddIf( null != this._customOpenIdConnectProvider ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._customOpenIdConnectProvider.ToJson(null,serializationMode) : null, "customOpenIdConnectProviders" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.PowerShell.cs new file mode 100644 index 000000000000..290300c88b2e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.PowerShell.cs @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The map of the name of the alias of each custom Open ID Connect provider to the + /// configuration settings of the custom Open ID Connect provider. + /// + [System.ComponentModel.TypeConverter(typeof(IdentityProvidersCustomOpenIdConnectProvidersTypeConverter))] + public partial class IdentityProvidersCustomOpenIdConnectProviders + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new IdentityProvidersCustomOpenIdConnectProviders(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new IdentityProvidersCustomOpenIdConnectProviders(content); + } + + /// + /// Creates a new instance of , deserializing the content from + /// a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal IdentityProvidersCustomOpenIdConnectProviders(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 IdentityProvidersCustomOpenIdConnectProviders(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The map of the name of the alias of each custom Open ID Connect provider to the + /// configuration settings of the custom Open ID Connect provider. + [System.ComponentModel.TypeConverter(typeof(IdentityProvidersCustomOpenIdConnectProvidersTypeConverter))] + public partial interface IIdentityProvidersCustomOpenIdConnectProviders + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.TypeConverter.cs new file mode 100644 index 000000000000..50bc766916e2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.TypeConverter.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IdentityProvidersCustomOpenIdConnectProvidersTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, + /// otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return IdentityProvidersCustomOpenIdConnectProviders.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return IdentityProvidersCustomOpenIdConnectProviders.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return IdentityProvidersCustomOpenIdConnectProviders.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.cs new file mode 100644 index 000000000000..b1efad9b2b1b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.cs @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The map of the name of the alias of each custom Open ID Connect provider to the + /// configuration settings of the custom Open ID Connect provider. + /// + public partial class IdentityProvidersCustomOpenIdConnectProviders : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProvidersInternal + { + + /// + /// Creates an new instance. + /// + public IdentityProvidersCustomOpenIdConnectProviders() + { + + } + } + /// The map of the name of the alias of each custom Open ID Connect provider to the + /// configuration settings of the custom Open ID Connect provider. + public partial interface IIdentityProvidersCustomOpenIdConnectProviders : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + + } + /// The map of the name of the alias of each custom Open ID Connect provider to the + /// configuration settings of the custom Open ID Connect provider. + internal partial interface IIdentityProvidersCustomOpenIdConnectProvidersInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.dictionary.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.dictionary.cs new file mode 100644 index 000000000000..b09cb5d77fe2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + public partial class IdentityProvidersCustomOpenIdConnectProviders : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Values { get => __additionalProperties.Values; } + + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProvider this[global::System.String index] { get => __additionalProperties[index]; set => __additionalProperties[index] = value; } + + /// + /// + public void Add(global::System.String key, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProvider 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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.TypeConverterExtensions.GetFilteredProperties(source, new global::System.Collections.Generic.HashSet() { } ) ) + { + if ((null != property.Key && null != property.Value)) + { + this.__additionalProperties.Add(property.Key.ToString(), global::System.Management.Automation.LanguagePrimitives.ConvertTo( property.Value)); + } + } + } + } + + /// + public bool Remove(global::System.String key) => __additionalProperties.Remove( key); + + /// + /// + public bool TryGetValue(global::System.String key, out Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomOpenIdConnectProvider value) => __additionalProperties.TryGetValue( key, out value); + + /// + + public static implicit operator global::System.Collections.Generic.Dictionary(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IdentityProvidersCustomOpenIdConnectProviders source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.json.cs new file mode 100644 index 000000000000..28fed79decac --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/IdentityProvidersCustomOpenIdConnectProviders.json.cs @@ -0,0 +1,115 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The map of the name of the alias of each custom Open ID Connect provider to the + /// configuration settings of the custom Open ID Connect provider. + /// + public partial class IdentityProvidersCustomOpenIdConnectProviders + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProvidersCustomOpenIdConnectProviders FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new IdentityProvidersCustomOpenIdConnectProviders(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal IdentityProvidersCustomOpenIdConnectProviders(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, (j) => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomOpenIdConnectProvider.FromJson(j) ,exclusions ); + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.PowerShell.cs new file mode 100644 index 000000000000..84dc63034148 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.PowerShell.cs @@ -0,0 +1,208 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App Ingress configuration. + [System.ComponentModel.TypeConverter(typeof(IngressTypeConverter))] + public partial class Ingress + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IIngress DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Ingress(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Ingress(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Ingress(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).Fqdn, global::System.Convert.ToString); + } + if (content.Contains("External")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).External = (bool?) content.GetValueForProperty("External",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).External, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("TargetPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).TargetPort = (int?) content.GetValueForProperty("TargetPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).TargetPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ExposedPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).ExposedPort = (int?) content.GetValueForProperty("ExposedPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).ExposedPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Transport")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).Transport = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod?) content.GetValueForProperty("Transport",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).Transport, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod.CreateFrom); + } + if (content.Contains("Traffic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).Traffic = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[]) content.GetValueForProperty("Traffic",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).Traffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TrafficWeightTypeConverter.ConvertFrom)); + } + if (content.Contains("CustomDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).CustomDomain = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[]) content.GetValueForProperty("CustomDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).CustomDomain, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainTypeConverter.ConvertFrom)); + } + if (content.Contains("AllowInsecure")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).AllowInsecure = (bool?) content.GetValueForProperty("AllowInsecure",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).AllowInsecure, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IPSecurityRestriction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).IPSecurityRestriction = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[]) content.GetValueForProperty("IPSecurityRestriction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).IPSecurityRestriction, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IPSecurityRestrictionRuleTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Ingress(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).Fqdn, global::System.Convert.ToString); + } + if (content.Contains("External")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).External = (bool?) content.GetValueForProperty("External",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).External, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("TargetPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).TargetPort = (int?) content.GetValueForProperty("TargetPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).TargetPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ExposedPort")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).ExposedPort = (int?) content.GetValueForProperty("ExposedPort",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).ExposedPort, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Transport")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).Transport = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod?) content.GetValueForProperty("Transport",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).Transport, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod.CreateFrom); + } + if (content.Contains("Traffic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).Traffic = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[]) content.GetValueForProperty("Traffic",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).Traffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TrafficWeightTypeConverter.ConvertFrom)); + } + if (content.Contains("CustomDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).CustomDomain = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[]) content.GetValueForProperty("CustomDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).CustomDomain, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainTypeConverter.ConvertFrom)); + } + if (content.Contains("AllowInsecure")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).AllowInsecure = (bool?) content.GetValueForProperty("AllowInsecure",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).AllowInsecure, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("IPSecurityRestriction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).IPSecurityRestriction = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[]) content.GetValueForProperty("IPSecurityRestriction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal)this).IPSecurityRestriction, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IPSecurityRestrictionRuleTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App Ingress configuration. + [System.ComponentModel.TypeConverter(typeof(IngressTypeConverter))] + public partial interface IIngress + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.TypeConverter.cs new file mode 100644 index 000000000000..891224856adc --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IngressTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Ingress.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Ingress.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Ingress.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.cs new file mode 100644 index 000000000000..6b2cf9759b51 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.cs @@ -0,0 +1,199 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Ingress configuration. + public partial class Ingress : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal + { + + /// Backing field for property. + private bool? _allowInsecure; + + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? AllowInsecure { get => this._allowInsecure; set => this._allowInsecure = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] _customDomain; + + /// custom domain bindings for Container Apps' hostnames. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] CustomDomain { get => this._customDomain; set => this._customDomain = value; } + + /// Backing field for property. + private int? _exposedPort; + + /// Exposed Port in containers for TCP traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? ExposedPort { get => this._exposedPort; set => this._exposedPort = value; } + + /// Backing field for property. + private bool? _external; + + /// Bool indicating if app exposes an external http endpoint + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? External { get => this._external; set => this._external = value; } + + /// Backing field for property. + private string _fqdn; + + /// Hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Fqdn { get => this._fqdn; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] _iPSecurityRestriction; + + /// Rules to restrict incoming IP address. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IPSecurityRestriction { get => this._iPSecurityRestriction; set => this._iPSecurityRestriction = value; } + + /// Internal Acessors for Fqdn + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngressInternal.Fqdn { get => this._fqdn; set { {_fqdn = value;} } } + + /// Backing field for property. + private int? _targetPort; + + /// Target Port in containers for traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? TargetPort { get => this._targetPort; set => this._targetPort = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] _traffic; + + /// Traffic weights for app's revisions + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] Traffic { get => this._traffic; set => this._traffic = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod? _transport; + + /// Ingress transport protocol + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod? Transport { get => this._transport; set => this._transport = value; } + + /// Creates an new instance. + public Ingress() + { + + } + } + /// Container App Ingress configuration. + public partial interface IIngress : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS connections", + SerializedName = @"allowInsecure", + PossibleTypes = new [] { typeof(bool) })] + bool? AllowInsecure { get; set; } + /// custom domain bindings for Container Apps' hostnames. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"custom domain bindings for Container Apps' hostnames.", + SerializedName = @"customDomains", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] CustomDomain { get; set; } + /// Exposed Port in containers for TCP traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Exposed Port in containers for TCP traffic from ingress", + SerializedName = @"exposedPort", + PossibleTypes = new [] { typeof(int) })] + int? ExposedPort { get; set; } + /// Bool indicating if app exposes an external http endpoint + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Bool indicating if app exposes an external http endpoint", + SerializedName = @"external", + PossibleTypes = new [] { typeof(bool) })] + bool? External { get; set; } + /// Hostname. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Hostname.", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + string Fqdn { get; } + /// Rules to restrict incoming IP address. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Rules to restrict incoming IP address.", + SerializedName = @"ipSecurityRestrictions", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IPSecurityRestriction { get; set; } + /// Target Port in containers for traffic from ingress + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Target Port in containers for traffic from ingress", + SerializedName = @"targetPort", + PossibleTypes = new [] { typeof(int) })] + int? TargetPort { get; set; } + /// Traffic weights for app's revisions + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Traffic weights for app's revisions", + SerializedName = @"traffic", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] Traffic { get; set; } + /// Ingress transport protocol + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress transport protocol", + SerializedName = @"transport", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod? Transport { get; set; } + + } + /// Container App Ingress configuration. + internal partial interface IIngressInternal + + { + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + bool? AllowInsecure { get; set; } + /// custom domain bindings for Container Apps' hostnames. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] CustomDomain { get; set; } + /// Exposed Port in containers for TCP traffic from ingress + int? ExposedPort { get; set; } + /// Bool indicating if app exposes an external http endpoint + bool? External { get; set; } + /// Hostname. + string Fqdn { get; set; } + /// Rules to restrict incoming IP address. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IPSecurityRestriction { get; set; } + /// Target Port in containers for traffic from ingress + int? TargetPort { get; set; } + /// Traffic weights for app's revisions + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] Traffic { get; set; } + /// Ingress transport protocol + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod? Transport { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.json.cs new file mode 100644 index 000000000000..840ab38afd50 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Ingress.json.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Ingress configuration. + public partial class Ingress + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIngress FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Ingress(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Ingress(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_fqdn = If( json?.PropertyT("fqdn"), out var __jsonFqdn) ? (string)__jsonFqdn : (string)Fqdn;} + {_external = If( json?.PropertyT("external"), out var __jsonExternal) ? (bool?)__jsonExternal : External;} + {_targetPort = If( json?.PropertyT("targetPort"), out var __jsonTargetPort) ? (int?)__jsonTargetPort : TargetPort;} + {_exposedPort = If( json?.PropertyT("exposedPort"), out var __jsonExposedPort) ? (int?)__jsonExposedPort : ExposedPort;} + {_transport = If( json?.PropertyT("transport"), out var __jsonTransport) ? (string)__jsonTransport : (string)Transport;} + {_traffic = If( json?.PropertyT("traffic"), out var __jsonTraffic) ? If( __jsonTraffic as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TrafficWeight.FromJson(__u) )) ))() : null : Traffic;} + {_customDomain = If( json?.PropertyT("customDomains"), out var __jsonCustomDomains) ? If( __jsonCustomDomains as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomain.FromJson(__p) )) ))() : null : CustomDomain;} + {_allowInsecure = If( json?.PropertyT("allowInsecure"), out var __jsonAllowInsecure) ? (bool?)__jsonAllowInsecure : AllowInsecure;} + {_iPSecurityRestriction = If( json?.PropertyT("ipSecurityRestrictions"), out var __jsonIPSecurityRestrictions) ? If( __jsonIPSecurityRestrictions as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IPSecurityRestrictionRule.FromJson(__k) )) ))() : null : IPSecurityRestriction;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._fqdn)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._fqdn.ToString()) : null, "fqdn" ,container.Add ); + } + AddIf( null != this._external ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._external) : null, "external" ,container.Add ); + AddIf( null != this._targetPort ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._targetPort) : null, "targetPort" ,container.Add ); + AddIf( null != this._exposedPort ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._exposedPort) : null, "exposedPort" ,container.Add ); + AddIf( null != (((object)this._transport)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._transport.ToString()) : null, "transport" ,container.Add ); + if (null != this._traffic) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._traffic ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("traffic",__w); + } + if (null != this._customDomain) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._customDomain ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("customDomains",__r); + } + AddIf( null != this._allowInsecure ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._allowInsecure) : null, "allowInsecure" ,container.Add ); + if (null != this._iPSecurityRestriction) + { + var __m = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __n in this._iPSecurityRestriction ) + { + AddIf(__n?.ToJson(null, serializationMode) ,__m.Add); + } + container.Add("ipSecurityRestrictions",__m); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.PowerShell.cs new file mode 100644 index 000000000000..cddeff0c78f2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.PowerShell.cs @@ -0,0 +1,218 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App init container definition + [System.ComponentModel.TypeConverter(typeof(InitContainerTypeConverter))] + public partial class InitContainer + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IInitContainer DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new InitContainer(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IInitContainer DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new InitContainer(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IInitContainer FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal InitContainer(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceCpu = (double?) content.GetValueForProperty("ResourceCpu",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceCpu, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("ResourceMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceMemory = (string) content.GetValueForProperty("ResourceMemory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceEphemeralStorage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceEphemeralStorage = (string) content.GetValueForProperty("ResourceEphemeralStorage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceEphemeralStorage, global::System.Convert.ToString); + } + if (content.Contains("Resource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Resource = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Resource, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerResourcesTypeConverter.ConvertFrom); + } + if (content.Contains("Image")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Image = (string) content.GetValueForProperty("Image",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Image, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Command")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Command = (string[]) content.GetValueForProperty("Command",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Command, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Arg")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Arg = (string[]) content.GetValueForProperty("Arg",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Arg, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Env")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Env = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar[]) content.GetValueForProperty("Env",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Env, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentVarTypeConverter.ConvertFrom)); + } + if (content.Contains("VolumeMount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).VolumeMount = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount[]) content.GetValueForProperty("VolumeMount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).VolumeMount, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeMountTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal InitContainer(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceCpu = (double?) content.GetValueForProperty("ResourceCpu",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceCpu, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("ResourceMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceMemory = (string) content.GetValueForProperty("ResourceMemory",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceEphemeralStorage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceEphemeralStorage = (string) content.GetValueForProperty("ResourceEphemeralStorage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).ResourceEphemeralStorage, global::System.Convert.ToString); + } + if (content.Contains("Resource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Resource = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Resource, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerResourcesTypeConverter.ConvertFrom); + } + if (content.Contains("Image")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Image = (string) content.GetValueForProperty("Image",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Image, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Command")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Command = (string[]) content.GetValueForProperty("Command",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Command, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Arg")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Arg = (string[]) content.GetValueForProperty("Arg",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Arg, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Env")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Env = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar[]) content.GetValueForProperty("Env",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).Env, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentVarTypeConverter.ConvertFrom)); + } + if (content.Contains("VolumeMount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).VolumeMount = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount[]) content.GetValueForProperty("VolumeMount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)this).VolumeMount, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeMountTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App init container definition + [System.ComponentModel.TypeConverter(typeof(InitContainerTypeConverter))] + public partial interface IInitContainer + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.TypeConverter.cs new file mode 100644 index 000000000000..27b1edbedad5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class InitContainerTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IInitContainer ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IInitContainer).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return InitContainer.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return InitContainer.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return InitContainer.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.cs new file mode 100644 index 000000000000..41b257ccbc6c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.cs @@ -0,0 +1,96 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App init container definition + public partial class InitContainer : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IInitContainer, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IInitContainerInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer __baseContainer = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainer(); + + /// Container start command arguments. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string[] Arg { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Arg; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Arg = value ?? null /* arrayOf */; } + + /// Container start command. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string[] Command { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Command; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Command = value ?? null /* arrayOf */; } + + /// Container environment variables. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentVar[] Env { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Env; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Env = value ?? null /* arrayOf */; } + + /// Container image tag. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Image { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Image; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Image = value ?? null; } + + /// Internal Acessors for ResourceEphemeralStorage + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal.ResourceEphemeralStorage { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).ResourceEphemeralStorage; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).ResourceEphemeralStorage = value; } + + /// Custom container name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Name = value ?? null; } + + /// Container resource requirements. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerResources Resource { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Resource; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).Resource = value ?? null /* model class */; } + + /// Required CPU in cores, e.g. 0.5 + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public double? ResourceCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).ResourceCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).ResourceCpu = value ?? default(double); } + + /// Ephemeral Storage, e.g. "1Gi" + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string ResourceEphemeralStorage { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).ResourceEphemeralStorage; } + + /// Required memory, e.g. "250Mb" + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string ResourceMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).ResourceMemory; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).ResourceMemory = value ?? null; } + + /// Container volume mounts. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount[] VolumeMount { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).VolumeMount; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal)__baseContainer).VolumeMount = value ?? null /* arrayOf */; } + + /// Creates an new instance. + public InitContainer() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__baseContainer), __baseContainer); + await eventListener.AssertObjectIsValid(nameof(__baseContainer), __baseContainer); + } + } + /// Container App init container definition + public partial interface IInitContainer : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer + { + + } + /// Container App init container definition + internal partial interface IInitContainerInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainerInternal + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.json.cs new file mode 100644 index 000000000000..9977ee59450b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/InitContainer.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App init container definition + public partial class InitContainer + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IInitContainer. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IInitContainer. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IInitContainer FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new InitContainer(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal InitContainer(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __baseContainer = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainer(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __baseContainer?.ToJson(container, serializationMode); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.PowerShell.cs new file mode 100644 index 000000000000..7c53ececdd1c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.PowerShell.cs @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The configuration settings of the checks that should be made while validating the JWT Claims. + /// + [System.ComponentModel.TypeConverter(typeof(JwtClaimChecksTypeConverter))] + public partial class JwtClaimChecks + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new JwtClaimChecks(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new JwtClaimChecks(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal JwtClaimChecks(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AllowedGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecksInternal)this).AllowedGroup = (string[]) content.GetValueForProperty("AllowedGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecksInternal)this).AllowedGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedClientApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecksInternal)this).AllowedClientApplication = (string[]) content.GetValueForProperty("AllowedClientApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecksInternal)this).AllowedClientApplication, __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 JwtClaimChecks(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AllowedGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecksInternal)this).AllowedGroup = (string[]) content.GetValueForProperty("AllowedGroup",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecksInternal)this).AllowedGroup, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedClientApplication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecksInternal)this).AllowedClientApplication = (string[]) content.GetValueForProperty("AllowedClientApplication",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecksInternal)this).AllowedClientApplication, __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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the checks that should be made while validating the JWT Claims. + [System.ComponentModel.TypeConverter(typeof(JwtClaimChecksTypeConverter))] + public partial interface IJwtClaimChecks + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.TypeConverter.cs new file mode 100644 index 000000000000..d805ade15790 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class JwtClaimChecksTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return JwtClaimChecks.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return JwtClaimChecks.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return JwtClaimChecks.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.cs new file mode 100644 index 000000000000..0649ef74d246 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.cs @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the checks that should be made while validating the JWT Claims. + /// + public partial class JwtClaimChecks : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecksInternal + { + + /// Backing field for property. + private string[] _allowedClientApplication; + + /// The list of the allowed client applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] AllowedClientApplication { get => this._allowedClientApplication; set => this._allowedClientApplication = value; } + + /// Backing field for property. + private string[] _allowedGroup; + + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] AllowedGroup { get => this._allowedGroup; set => this._allowedGroup = value; } + + /// Creates an new instance. + public JwtClaimChecks() + { + + } + } + /// The configuration settings of the checks that should be made while validating the JWT Claims. + public partial interface IJwtClaimChecks : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The list of the allowed client applications. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed client applications.", + SerializedName = @"allowedClientApplications", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedClientApplication { get; set; } + /// The list of the allowed groups. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of the allowed groups.", + SerializedName = @"allowedGroups", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedGroup { get; set; } + + } + /// The configuration settings of the checks that should be made while validating the JWT Claims. + internal partial interface IJwtClaimChecksInternal + + { + /// The list of the allowed client applications. + string[] AllowedClientApplication { get; set; } + /// The list of the allowed groups. + string[] AllowedGroup { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.json.cs new file mode 100644 index 000000000000..766c4b819554 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/JwtClaimChecks.json.cs @@ -0,0 +1,128 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the checks that should be made while validating the JWT Claims. + /// + public partial class JwtClaimChecks + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IJwtClaimChecks FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new JwtClaimChecks(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal JwtClaimChecks(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_allowedGroup = If( json?.PropertyT("allowedGroups"), out var __jsonAllowedGroups) ? If( __jsonAllowedGroups as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : AllowedGroup;} + {_allowedClientApplication = If( json?.PropertyT("allowedClientApplications"), out var __jsonAllowedClientApplications) ? If( __jsonAllowedClientApplications as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : AllowedClientApplication;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._allowedGroup) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._allowedGroup ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("allowedGroups",__w); + } + if (null != this._allowedClientApplication) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._allowedClientApplication ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("allowedClientApplications",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.PowerShell.cs new file mode 100644 index 000000000000..2ec847ed8be5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Log analytics configuration + [System.ComponentModel.TypeConverter(typeof(LogAnalyticsConfigurationTypeConverter))] + public partial class LogAnalyticsConfiguration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new LogAnalyticsConfiguration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new LogAnalyticsConfiguration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal LogAnalyticsConfiguration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CustomerId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfigurationInternal)this).CustomerId = (string) content.GetValueForProperty("CustomerId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfigurationInternal)this).CustomerId, global::System.Convert.ToString); + } + if (content.Contains("SharedKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfigurationInternal)this).SharedKey = (string) content.GetValueForProperty("SharedKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfigurationInternal)this).SharedKey, 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 LogAnalyticsConfiguration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CustomerId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfigurationInternal)this).CustomerId = (string) content.GetValueForProperty("CustomerId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfigurationInternal)this).CustomerId, global::System.Convert.ToString); + } + if (content.Contains("SharedKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfigurationInternal)this).SharedKey = (string) content.GetValueForProperty("SharedKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfigurationInternal)this).SharedKey, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Log analytics configuration + [System.ComponentModel.TypeConverter(typeof(LogAnalyticsConfigurationTypeConverter))] + public partial interface ILogAnalyticsConfiguration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.TypeConverter.cs new file mode 100644 index 000000000000..852c431cbdc6 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class LogAnalyticsConfigurationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return LogAnalyticsConfiguration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return LogAnalyticsConfiguration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return LogAnalyticsConfiguration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.cs new file mode 100644 index 000000000000..ef79ca1d96f9 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Log analytics configuration + public partial class LogAnalyticsConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfigurationInternal + { + + /// Backing field for property. + private string _customerId; + + /// Log analytics customer id + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string CustomerId { get => this._customerId; set => this._customerId = value; } + + /// Backing field for property. + private string _sharedKey; + + /// Log analytics customer key + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string SharedKey { get => this._sharedKey; set => this._sharedKey = value; } + + /// Creates an new instance. + public LogAnalyticsConfiguration() + { + + } + } + /// Log analytics configuration + public partial interface ILogAnalyticsConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Log analytics customer id + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log analytics customer id", + SerializedName = @"customerId", + PossibleTypes = new [] { typeof(string) })] + string CustomerId { get; set; } + /// Log analytics customer key + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log analytics customer key", + SerializedName = @"sharedKey", + PossibleTypes = new [] { typeof(string) })] + string SharedKey { get; set; } + + } + /// Log analytics configuration + internal partial interface ILogAnalyticsConfigurationInternal + + { + /// Log analytics customer id + string CustomerId { get; set; } + /// Log analytics customer key + string SharedKey { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.json.cs new file mode 100644 index 000000000000..9c7824fe28d2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/LogAnalyticsConfiguration.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Log analytics configuration + public partial class LogAnalyticsConfiguration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new LogAnalyticsConfiguration(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal LogAnalyticsConfiguration(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_customerId = If( json?.PropertyT("customerId"), out var __jsonCustomerId) ? (string)__jsonCustomerId : (string)CustomerId;} + {_sharedKey = If( json?.PropertyT("sharedKey"), out var __jsonSharedKey) ? (string)__jsonSharedKey : (string)SharedKey;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._customerId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._customerId.ToString()) : null, "customerId" ,container.Add ); + AddIf( null != (((object)this._sharedKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._sharedKey.ToString()) : null, "sharedKey" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Login.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Login.PowerShell.cs new file mode 100644 index 000000000000..d855aca9b8b7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Login.PowerShell.cs @@ -0,0 +1,218 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization. + /// + [System.ComponentModel.TypeConverter(typeof(LoginTypeConverter))] + public partial class Login + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ILogin DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Login(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Login(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Login(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Route")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).Route = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes) content.GetValueForProperty("Route",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).Route, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginRoutesTypeConverter.ConvertFrom); + } + if (content.Contains("CookieExpiration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).CookieExpiration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration) content.GetValueForProperty("CookieExpiration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).CookieExpiration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CookieExpirationTypeConverter.ConvertFrom); + } + if (content.Contains("Nonce")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).Nonce = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce) content.GetValueForProperty("Nonce",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).Nonce, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.NonceTypeConverter.ConvertFrom); + } + if (content.Contains("PreserveUrlFragmentsForLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).PreserveUrlFragmentsForLogin = (bool?) content.GetValueForProperty("PreserveUrlFragmentsForLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).PreserveUrlFragmentsForLogin, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AllowedExternalRedirectUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).AllowedExternalRedirectUrl = (string[]) content.GetValueForProperty("AllowedExternalRedirectUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).AllowedExternalRedirectUrl, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CookieExpirationConvention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).CookieExpirationConvention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention?) content.GetValueForProperty("CookieExpirationConvention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).CookieExpirationConvention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention.CreateFrom); + } + if (content.Contains("RouteLogoutEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).RouteLogoutEndpoint = (string) content.GetValueForProperty("RouteLogoutEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).RouteLogoutEndpoint, global::System.Convert.ToString); + } + if (content.Contains("CookieExpirationTimeToExpiration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).CookieExpirationTimeToExpiration = (string) content.GetValueForProperty("CookieExpirationTimeToExpiration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).CookieExpirationTimeToExpiration, global::System.Convert.ToString); + } + if (content.Contains("NonceValidateNonce")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).NonceValidateNonce = (bool?) content.GetValueForProperty("NonceValidateNonce",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).NonceValidateNonce, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("NonceExpirationInterval")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).NonceExpirationInterval = (string) content.GetValueForProperty("NonceExpirationInterval",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).NonceExpirationInterval, 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 Login(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Route")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).Route = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes) content.GetValueForProperty("Route",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).Route, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginRoutesTypeConverter.ConvertFrom); + } + if (content.Contains("CookieExpiration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).CookieExpiration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration) content.GetValueForProperty("CookieExpiration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).CookieExpiration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CookieExpirationTypeConverter.ConvertFrom); + } + if (content.Contains("Nonce")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).Nonce = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce) content.GetValueForProperty("Nonce",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).Nonce, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.NonceTypeConverter.ConvertFrom); + } + if (content.Contains("PreserveUrlFragmentsForLogin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).PreserveUrlFragmentsForLogin = (bool?) content.GetValueForProperty("PreserveUrlFragmentsForLogin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).PreserveUrlFragmentsForLogin, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AllowedExternalRedirectUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).AllowedExternalRedirectUrl = (string[]) content.GetValueForProperty("AllowedExternalRedirectUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).AllowedExternalRedirectUrl, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CookieExpirationConvention")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).CookieExpirationConvention = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention?) content.GetValueForProperty("CookieExpirationConvention",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).CookieExpirationConvention, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention.CreateFrom); + } + if (content.Contains("RouteLogoutEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).RouteLogoutEndpoint = (string) content.GetValueForProperty("RouteLogoutEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).RouteLogoutEndpoint, global::System.Convert.ToString); + } + if (content.Contains("CookieExpirationTimeToExpiration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).CookieExpirationTimeToExpiration = (string) content.GetValueForProperty("CookieExpirationTimeToExpiration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).CookieExpirationTimeToExpiration, global::System.Convert.ToString); + } + if (content.Contains("NonceValidateNonce")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).NonceValidateNonce = (bool?) content.GetValueForProperty("NonceValidateNonce",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).NonceValidateNonce, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("NonceExpirationInterval")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).NonceExpirationInterval = (string) content.GetValueForProperty("NonceExpirationInterval",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal)this).NonceExpirationInterval, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization. + [System.ComponentModel.TypeConverter(typeof(LoginTypeConverter))] + public partial interface ILogin + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Login.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Login.TypeConverter.cs new file mode 100644 index 000000000000..e9bdcc15d6b9 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Login.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class LoginTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Login.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Login.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Login.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Login.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Login.cs new file mode 100644 index 000000000000..2370a8549bf1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Login.cs @@ -0,0 +1,205 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization. + /// + public partial class Login : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal + { + + /// Backing field for property. + private string[] _allowedExternalRedirectUrl; + + /// + /// External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part + /// of the URL is ignored. + /// This is an advanced setting typically only needed by Windows Store application backends. + /// Note that URLs within the current domain are always implicitly allowed. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] AllowedExternalRedirectUrl { get => this._allowedExternalRedirectUrl; set => this._allowedExternalRedirectUrl = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration _cookieExpiration; + + /// The configuration settings of the session cookie's expiration. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration CookieExpiration { get => (this._cookieExpiration = this._cookieExpiration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CookieExpiration()); set => this._cookieExpiration = value; } + + /// The convention used when determining the session cookie's expiration. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention? CookieExpirationConvention { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpirationInternal)CookieExpiration).Convention; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpirationInternal)CookieExpiration).Convention = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention)""); } + + /// The time after the request is made when the session cookie should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CookieExpirationTimeToExpiration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpirationInternal)CookieExpiration).TimeToExpiration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpirationInternal)CookieExpiration).TimeToExpiration = value ?? null; } + + /// Internal Acessors for CookieExpiration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal.CookieExpiration { get => (this._cookieExpiration = this._cookieExpiration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CookieExpiration()); set { {_cookieExpiration = value;} } } + + /// Internal Acessors for Nonce + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal.Nonce { get => (this._nonce = this._nonce ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Nonce()); set { {_nonce = value;} } } + + /// Internal Acessors for Route + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginInternal.Route { get => (this._route = this._route ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginRoutes()); set { {_route = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce _nonce; + + /// The configuration settings of the nonce used in the login flow. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce Nonce { get => (this._nonce = this._nonce ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Nonce()); set => this._nonce = value; } + + /// The time after the request is made when the nonce should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string NonceExpirationInterval { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonceInternal)Nonce).ExpirationInterval; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonceInternal)Nonce).ExpirationInterval = value ?? null; } + + /// + /// false if the nonce should not be validated while completing the login flow; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? NonceValidateNonce { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonceInternal)Nonce).ValidateNonce; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonceInternal)Nonce).ValidateNonce = value ?? default(bool); } + + /// Backing field for property. + private bool? _preserveUrlFragmentsForLogin; + + /// + /// true if the fragments from the request are preserved after the login request is made; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? PreserveUrlFragmentsForLogin { get => this._preserveUrlFragmentsForLogin; set => this._preserveUrlFragmentsForLogin = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes _route; + + /// The routes that specify the endpoints used for login and logout requests. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes Route { get => (this._route = this._route ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginRoutes()); set => this._route = value; } + + /// The endpoint at which a logout request should be made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RouteLogoutEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutesInternal)Route).LogoutEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutesInternal)Route).LogoutEndpoint = value ?? null; } + + /// Creates an new instance. + public Login() + { + + } + } + /// The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization. + public partial interface ILogin : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part + /// of the URL is ignored. + /// This is an advanced setting typically only needed by Windows Store application backends. + /// Note that URLs within the current domain are always implicitly allowed. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part of the URL is ignored. + This is an advanced setting typically only needed by Windows Store application backends. + Note that URLs within the current domain are always implicitly allowed.", + SerializedName = @"allowedExternalRedirectUrls", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedExternalRedirectUrl { get; set; } + /// The convention used when determining the session cookie's expiration. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The convention used when determining the session cookie's expiration.", + SerializedName = @"convention", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention? CookieExpirationConvention { get; set; } + /// The time after the request is made when the session cookie should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time after the request is made when the session cookie should expire.", + SerializedName = @"timeToExpiration", + PossibleTypes = new [] { typeof(string) })] + string CookieExpirationTimeToExpiration { get; set; } + /// The time after the request is made when the nonce should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time after the request is made when the nonce should expire.", + SerializedName = @"nonceExpirationInterval", + PossibleTypes = new [] { typeof(string) })] + string NonceExpirationInterval { get; set; } + /// + /// false if the nonce should not be validated while completing the login flow; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the nonce should not be validated while completing the login flow; otherwise, true.", + SerializedName = @"validateNonce", + PossibleTypes = new [] { typeof(bool) })] + bool? NonceValidateNonce { get; set; } + /// + /// true if the fragments from the request are preserved after the login request is made; otherwise, false. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"true if the fragments from the request are preserved after the login request is made; otherwise, false.", + SerializedName = @"preserveUrlFragmentsForLogins", + PossibleTypes = new [] { typeof(bool) })] + bool? PreserveUrlFragmentsForLogin { get; set; } + /// The endpoint at which a logout request should be made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint at which a logout request should be made.", + SerializedName = @"logoutEndpoint", + PossibleTypes = new [] { typeof(string) })] + string RouteLogoutEndpoint { get; set; } + + } + /// The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization. + internal partial interface ILoginInternal + + { + /// + /// External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part + /// of the URL is ignored. + /// This is an advanced setting typically only needed by Windows Store application backends. + /// Note that URLs within the current domain are always implicitly allowed. + /// + string[] AllowedExternalRedirectUrl { get; set; } + /// The configuration settings of the session cookie's expiration. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICookieExpiration CookieExpiration { get; set; } + /// The convention used when determining the session cookie's expiration. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention? CookieExpirationConvention { get; set; } + /// The time after the request is made when the session cookie should expire. + string CookieExpirationTimeToExpiration { get; set; } + /// The configuration settings of the nonce used in the login flow. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce Nonce { get; set; } + /// The time after the request is made when the nonce should expire. + string NonceExpirationInterval { get; set; } + /// + /// false if the nonce should not be validated while completing the login flow; otherwise, true. + /// + bool? NonceValidateNonce { get; set; } + /// + /// true if the fragments from the request are preserved after the login request is made; otherwise, false. + /// + bool? PreserveUrlFragmentsForLogin { get; set; } + /// The routes that specify the endpoints used for login and logout requests. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes Route { get; set; } + /// The endpoint at which a logout request should be made. + string RouteLogoutEndpoint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Login.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Login.json.cs new file mode 100644 index 000000000000..efc7bb889f7e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Login.json.cs @@ -0,0 +1,126 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization. + /// + public partial class Login + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogin FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Login(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Login(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_route = If( json?.PropertyT("routes"), out var __jsonRoutes) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LoginRoutes.FromJson(__jsonRoutes) : Route;} + {_cookieExpiration = If( json?.PropertyT("cookieExpiration"), out var __jsonCookieExpiration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CookieExpiration.FromJson(__jsonCookieExpiration) : CookieExpiration;} + {_nonce = If( json?.PropertyT("nonce"), out var __jsonNonce) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Nonce.FromJson(__jsonNonce) : Nonce;} + {_preserveUrlFragmentsForLogin = If( json?.PropertyT("preserveUrlFragmentsForLogins"), out var __jsonPreserveUrlFragmentsForLogins) ? (bool?)__jsonPreserveUrlFragmentsForLogins : PreserveUrlFragmentsForLogin;} + {_allowedExternalRedirectUrl = If( json?.PropertyT("allowedExternalRedirectUrls"), out var __jsonAllowedExternalRedirectUrls) ? If( __jsonAllowedExternalRedirectUrls as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : AllowedExternalRedirectUrl;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._route ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._route.ToJson(null,serializationMode) : null, "routes" ,container.Add ); + AddIf( null != this._cookieExpiration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._cookieExpiration.ToJson(null,serializationMode) : null, "cookieExpiration" ,container.Add ); + AddIf( null != this._nonce ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._nonce.ToJson(null,serializationMode) : null, "nonce" ,container.Add ); + AddIf( null != this._preserveUrlFragmentsForLogin ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._preserveUrlFragmentsForLogin) : null, "preserveUrlFragmentsForLogins" ,container.Add ); + if (null != this._allowedExternalRedirectUrl) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._allowedExternalRedirectUrl ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("allowedExternalRedirectUrls",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.PowerShell.cs new file mode 100644 index 000000000000..cf8ba2a38088 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The routes that specify the endpoints used for login and logout requests. + [System.ComponentModel.TypeConverter(typeof(LoginRoutesTypeConverter))] + public partial class LoginRoutes + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new LoginRoutes(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new LoginRoutes(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal LoginRoutes(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("LogoutEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutesInternal)this).LogoutEndpoint = (string) content.GetValueForProperty("LogoutEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutesInternal)this).LogoutEndpoint, 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 LoginRoutes(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("LogoutEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutesInternal)this).LogoutEndpoint = (string) content.GetValueForProperty("LogoutEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutesInternal)this).LogoutEndpoint, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The routes that specify the endpoints used for login and logout requests. + [System.ComponentModel.TypeConverter(typeof(LoginRoutesTypeConverter))] + public partial interface ILoginRoutes + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.TypeConverter.cs new file mode 100644 index 000000000000..a46b5f6256b7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class LoginRoutesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return LoginRoutes.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return LoginRoutes.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return LoginRoutes.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.cs new file mode 100644 index 000000000000..a289248ec6eb --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The routes that specify the endpoints used for login and logout requests. + public partial class LoginRoutes : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutesInternal + { + + /// Backing field for property. + private string _logoutEndpoint; + + /// The endpoint at which a logout request should be made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string LogoutEndpoint { get => this._logoutEndpoint; set => this._logoutEndpoint = value; } + + /// Creates an new instance. + public LoginRoutes() + { + + } + } + /// The routes that specify the endpoints used for login and logout requests. + public partial interface ILoginRoutes : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The endpoint at which a logout request should be made. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint at which a logout request should be made.", + SerializedName = @"logoutEndpoint", + PossibleTypes = new [] { typeof(string) })] + string LogoutEndpoint { get; set; } + + } + /// The routes that specify the endpoints used for login and logout requests. + internal partial interface ILoginRoutesInternal + + { + /// The endpoint at which a logout request should be made. + string LogoutEndpoint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.json.cs new file mode 100644 index 000000000000..abfb8eef0b7c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginRoutes.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The routes that specify the endpoints used for login and logout requests. + public partial class LoginRoutes + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginRoutes FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new LoginRoutes(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal LoginRoutes(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_logoutEndpoint = If( json?.PropertyT("logoutEndpoint"), out var __jsonLogoutEndpoint) ? (string)__jsonLogoutEndpoint : (string)LogoutEndpoint;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._logoutEndpoint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._logoutEndpoint.ToString()) : null, "logoutEndpoint" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.PowerShell.cs new file mode 100644 index 000000000000..da0cba398b07 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.PowerShell.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The configuration settings of the login flow, including the scopes that should be requested. + /// + [System.ComponentModel.TypeConverter(typeof(LoginScopesTypeConverter))] + public partial class LoginScopes + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new LoginScopes(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new LoginScopes(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal LoginScopes(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Scope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopesInternal)this).Scope = (string[]) content.GetValueForProperty("Scope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopesInternal)this).Scope, __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 LoginScopes(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Scope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopesInternal)this).Scope = (string[]) content.GetValueForProperty("Scope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopesInternal)this).Scope, __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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the login flow, including the scopes that should be requested. + [System.ComponentModel.TypeConverter(typeof(LoginScopesTypeConverter))] + public partial interface ILoginScopes + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.TypeConverter.cs new file mode 100644 index 000000000000..93401b884f2b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class LoginScopesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return LoginScopes.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return LoginScopes.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return LoginScopes.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.cs new file mode 100644 index 000000000000..b91205650be0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.cs @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the login flow, including the scopes that should be requested. + /// + public partial class LoginScopes : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopesInternal + { + + /// Backing field for property. + private string[] _scope; + + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] Scope { get => this._scope; set => this._scope = value; } + + /// Creates an new instance. + public LoginScopes() + { + + } + } + /// The configuration settings of the login flow, including the scopes that should be requested. + public partial interface ILoginScopes : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of the scopes that should be requested while authenticating.", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] Scope { get; set; } + + } + /// The configuration settings of the login flow, including the scopes that should be requested. + internal partial interface ILoginScopesInternal + + { + /// A list of the scopes that should be requested while authenticating. + string[] Scope { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.json.cs new file mode 100644 index 000000000000..4472d6a78993 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/LoginScopes.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the login flow, including the scopes that should be requested. + /// + public partial class LoginScopes + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILoginScopes FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new LoginScopes(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal LoginScopes(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_scope = If( json?.PropertyT("scopes"), out var __jsonScopes) ? If( __jsonScopes as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Scope;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._scope) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._scope ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("scopes",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.PowerShell.cs new file mode 100644 index 000000000000..2841e52b4500 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.PowerShell.cs @@ -0,0 +1,284 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// Managed certificates used for Custom Domain bindings of Container Apps in a Managed Environment + /// + [System.ComponentModel.TypeConverter(typeof(ManagedCertificateTypeConverter))] + public partial class ManagedCertificate + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedCertificate(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedCertificate(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedCertificate(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificatePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState.CreateFrom); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).Error = (string) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).Error, global::System.Convert.ToString); + } + if (content.Contains("DomainControlValidation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).DomainControlValidation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation?) content.GetValueForProperty("DomainControlValidation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).DomainControlValidation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation.CreateFrom); + } + if (content.Contains("ValidationToken")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).ValidationToken = (string) content.GetValueForProperty("ValidationToken",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).ValidationToken, 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 ManagedCertificate(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificatePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState.CreateFrom); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).Error = (string) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).Error, global::System.Convert.ToString); + } + if (content.Contains("DomainControlValidation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).DomainControlValidation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation?) content.GetValueForProperty("DomainControlValidation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).DomainControlValidation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation.CreateFrom); + } + if (content.Contains("ValidationToken")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).ValidationToken = (string) content.GetValueForProperty("ValidationToken",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal)this).ValidationToken, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Managed certificates used for Custom Domain bindings of Container Apps in a Managed Environment + [System.ComponentModel.TypeConverter(typeof(ManagedCertificateTypeConverter))] + public partial interface IManagedCertificate + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.TypeConverter.cs new file mode 100644 index 000000000000..e4f98218deaf --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedCertificateTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedCertificate.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedCertificate.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedCertificate.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.cs new file mode 100644 index 000000000000..28246d636d74 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.cs @@ -0,0 +1,218 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Managed certificates used for Custom Domain bindings of Container Apps in a Managed Environment + /// + public partial class ManagedCertificate : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource(); + + /// Selected type of domain control validation for managed certificates. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation? DomainControlValidation { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)Property).DomainControlValidation; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)Property).DomainControlValidation = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation)""); } + + /// Any error occurred during the certificate provision. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Error { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)Property).Error; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id; } + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// Internal Acessors for Error + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal.Error { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)Property).Error; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)Property).Error = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificateProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for ValidationToken + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateInternal.ValidationToken { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)Property).ValidationToken; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)Property).ValidationToken = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties _property; + + /// Certificate resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificateProperties()); set => this._property = value; } + + /// Provisioning state of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)Property).ProvisioningState; } + + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string SubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)Property).SubjectName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)Property).SubjectName = value ?? null; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type; } + + /// + /// A TXT token used for DNS TXT domain control validation when issuing this type of managed certificates. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ValidationToken { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)Property).ValidationToken; } + + /// Creates an new instance. + public ManagedCertificate() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// Managed certificates used for Custom Domain bindings of Container Apps in a Managed Environment + public partial interface IManagedCertificate : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource + { + /// Selected type of domain control validation for managed certificates. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Selected type of domain control validation for managed certificates.", + SerializedName = @"domainControlValidation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation? DomainControlValidation { get; set; } + /// Any error occurred during the certificate provision. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Any error occurred during the certificate provision.", + SerializedName = @"error", + PossibleTypes = new [] { typeof(string) })] + string Error { get; } + /// Provisioning state of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the certificate.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? ProvisioningState { get; } + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Subject name of the certificate.", + SerializedName = @"subjectName", + PossibleTypes = new [] { typeof(string) })] + string SubjectName { get; set; } + /// + /// A TXT token used for DNS TXT domain control validation when issuing this type of managed certificates. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"A TXT token used for DNS TXT domain control validation when issuing this type of managed certificates.", + SerializedName = @"validationToken", + PossibleTypes = new [] { typeof(string) })] + string ValidationToken { get; } + + } + /// Managed certificates used for Custom Domain bindings of Container Apps in a Managed Environment + internal partial interface IManagedCertificateInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal + { + /// Selected type of domain control validation for managed certificates. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation? DomainControlValidation { get; set; } + /// Any error occurred during the certificate provision. + string Error { get; set; } + /// Certificate resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties Property { get; set; } + /// Provisioning state of the certificate. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? ProvisioningState { get; set; } + /// Subject name of the certificate. + string SubjectName { get; set; } + /// + /// A TXT token used for DNS TXT domain control validation when issuing this type of managed certificates. + /// + string ValidationToken { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.json.cs new file mode 100644 index 000000000000..36c3e104c23d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificate.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Managed certificates used for Custom Domain bindings of Container Apps in a Managed Environment + /// + public partial class ManagedCertificate + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ManagedCertificate(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedCertificate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificateProperties.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.PowerShell.cs new file mode 100644 index 000000000000..02bb8b002442 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Collection of Managed Certificates. + [System.ComponentModel.TypeConverter(typeof(ManagedCertificateCollectionTypeConverter))] + public partial class ManagedCertificateCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedCertificateCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedCertificateCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedCertificateCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificateTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollectionInternal)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 ManagedCertificateCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificateTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollectionInternal)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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of Managed Certificates. + [System.ComponentModel.TypeConverter(typeof(ManagedCertificateCollectionTypeConverter))] + public partial interface IManagedCertificateCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.TypeConverter.cs new file mode 100644 index 000000000000..f34c340a3b37 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedCertificateCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedCertificateCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedCertificateCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedCertificateCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.cs new file mode 100644 index 000000000000..98bad45ade14 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of Managed Certificates. + public partial class ManagedCertificateCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollectionInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollectionInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate[] _value; + + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ManagedCertificateCollection() + { + + } + } + /// Collection of Managed Certificates. + public partial interface IManagedCertificateCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to next page of resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate[] Value { get; set; } + + } + /// Collection of Managed Certificates. + internal partial interface IManagedCertificateCollectionInternal + + { + /// Link to next page of resources. + string NextLink { get; set; } + /// Collection of resources. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.json.cs new file mode 100644 index 000000000000..19bf109ffbfe --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateCollection.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of Managed Certificates. + public partial class ManagedCertificateCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ManagedCertificateCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedCertificateCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificate.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.PowerShell.cs new file mode 100644 index 000000000000..fee81469eb2c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// A managed certificate to update + [System.ComponentModel.TypeConverter(typeof(ManagedCertificatePatchTypeConverter))] + public partial class ManagedCertificatePatch + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatch DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedCertificatePatch(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatch DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedCertificatePatch(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatch FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedCertificatePatch(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificatePatchTagsTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ManagedCertificatePatch(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificatePatchTagsTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A managed certificate to update + [System.ComponentModel.TypeConverter(typeof(ManagedCertificatePatchTypeConverter))] + public partial interface IManagedCertificatePatch + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.TypeConverter.cs new file mode 100644 index 000000000000..572edec065a2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedCertificatePatchTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatch ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatch).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedCertificatePatch.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedCertificatePatch.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedCertificatePatch.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.cs new file mode 100644 index 000000000000..168fb0421b88 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// A managed certificate to update + public partial class ManagedCertificatePatch : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatch, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags _tag; + + /// Application-specific metadata in the form of key-value pairs. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificatePatchTags()); set => this._tag = value; } + + /// Creates an new instance. + public ManagedCertificatePatch() + { + + } + } + /// A managed certificate to update + public partial interface IManagedCertificatePatch : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Application-specific metadata in the form of key-value pairs. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application-specific metadata in the form of key-value pairs.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags Tag { get; set; } + + } + /// A managed certificate to update + internal partial interface IManagedCertificatePatchInternal + + { + /// Application-specific metadata in the form of key-value pairs. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.json.cs new file mode 100644 index 000000000000..e50ad3754cc9 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatch.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// A managed certificate to update + public partial class ManagedCertificatePatch + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatch. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatch. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatch FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ManagedCertificatePatch(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedCertificatePatch(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificatePatchTags.FromJson(__jsonTags) : Tag;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._tag.ToJson(null,serializationMode) : null, "tags" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.PowerShell.cs new file mode 100644 index 000000000000..eaeda8fb256c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Application-specific metadata in the form of key-value pairs. + [System.ComponentModel.TypeConverter(typeof(ManagedCertificatePatchTagsTypeConverter))] + public partial class ManagedCertificatePatchTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedCertificatePatchTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedCertificatePatchTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedCertificatePatchTags(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 ManagedCertificatePatchTags(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Application-specific metadata in the form of key-value pairs. + [System.ComponentModel.TypeConverter(typeof(ManagedCertificatePatchTagsTypeConverter))] + public partial interface IManagedCertificatePatchTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.TypeConverter.cs new file mode 100644 index 000000000000..a8af66ec2902 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedCertificatePatchTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedCertificatePatchTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedCertificatePatchTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedCertificatePatchTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.cs new file mode 100644 index 000000000000..a955537c69ce --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.cs @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Application-specific metadata in the form of key-value pairs. + public partial class ManagedCertificatePatchTags : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTagsInternal + { + + /// Creates an new instance. + public ManagedCertificatePatchTags() + { + + } + } + /// Application-specific metadata in the form of key-value pairs. + public partial interface IManagedCertificatePatchTags : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + + } + /// Application-specific metadata in the form of key-value pairs. + internal partial interface IManagedCertificatePatchTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.dictionary.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.dictionary.cs new file mode 100644 index 000000000000..29d6137cb558 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + public partial class ManagedCertificatePatchTags : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificatePatchTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.json.cs new file mode 100644 index 000000000000..c8995fbbce7c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificatePatchTags.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Application-specific metadata in the form of key-value pairs. + public partial class ManagedCertificatePatchTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ManagedCertificatePatchTags(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal ManagedCertificatePatchTags(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.PowerShell.cs new file mode 100644 index 000000000000..64ff5196c31f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.PowerShell.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Certificate resource specific properties + [System.ComponentModel.TypeConverter(typeof(ManagedCertificatePropertiesTypeConverter))] + public partial class ManagedCertificateProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedCertificateProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedCertificateProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedCertificateProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState.CreateFrom); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).Error = (string) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).Error, global::System.Convert.ToString); + } + if (content.Contains("DomainControlValidation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).DomainControlValidation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation?) content.GetValueForProperty("DomainControlValidation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).DomainControlValidation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation.CreateFrom); + } + if (content.Contains("ValidationToken")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).ValidationToken = (string) content.GetValueForProperty("ValidationToken",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).ValidationToken, 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 ManagedCertificateProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState.CreateFrom); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).Error = (string) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).Error, global::System.Convert.ToString); + } + if (content.Contains("DomainControlValidation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).DomainControlValidation = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation?) content.GetValueForProperty("DomainControlValidation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).DomainControlValidation, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation.CreateFrom); + } + if (content.Contains("ValidationToken")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).ValidationToken = (string) content.GetValueForProperty("ValidationToken",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal)this).ValidationToken, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Certificate resource specific properties + [System.ComponentModel.TypeConverter(typeof(ManagedCertificatePropertiesTypeConverter))] + public partial interface IManagedCertificateProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.TypeConverter.cs new file mode 100644 index 000000000000..2e0564c0a5fd --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedCertificatePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedCertificateProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedCertificateProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedCertificateProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.cs new file mode 100644 index 000000000000..cf0b53f00d89 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Certificate resource specific properties + public partial class ManagedCertificateProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation? _domainControlValidation; + + /// Selected type of domain control validation for managed certificates. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation? DomainControlValidation { get => this._domainControlValidation; set => this._domainControlValidation = value; } + + /// Backing field for property. + private string _error; + + /// Any error occurred during the certificate provision. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Error { get => this._error; } + + /// Internal Acessors for Error + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal.Error { get => this._error; set { {_error = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for ValidationToken + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePropertiesInternal.ValidationToken { get => this._validationToken; set { {_validationToken = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? _provisioningState; + + /// Provisioning state of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _subjectName; + + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string SubjectName { get => this._subjectName; set => this._subjectName = value; } + + /// Backing field for property. + private string _validationToken; + + /// + /// A TXT token used for DNS TXT domain control validation when issuing this type of managed certificates. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ValidationToken { get => this._validationToken; } + + /// Creates an new instance. + public ManagedCertificateProperties() + { + + } + } + /// Certificate resource specific properties + public partial interface IManagedCertificateProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Selected type of domain control validation for managed certificates. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Selected type of domain control validation for managed certificates.", + SerializedName = @"domainControlValidation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation? DomainControlValidation { get; set; } + /// Any error occurred during the certificate provision. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Any error occurred during the certificate provision.", + SerializedName = @"error", + PossibleTypes = new [] { typeof(string) })] + string Error { get; } + /// Provisioning state of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the certificate.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? ProvisioningState { get; } + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Subject name of the certificate.", + SerializedName = @"subjectName", + PossibleTypes = new [] { typeof(string) })] + string SubjectName { get; set; } + /// + /// A TXT token used for DNS TXT domain control validation when issuing this type of managed certificates. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"A TXT token used for DNS TXT domain control validation when issuing this type of managed certificates.", + SerializedName = @"validationToken", + PossibleTypes = new [] { typeof(string) })] + string ValidationToken { get; } + + } + /// Certificate resource specific properties + internal partial interface IManagedCertificatePropertiesInternal + + { + /// Selected type of domain control validation for managed certificates. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation? DomainControlValidation { get; set; } + /// Any error occurred during the certificate provision. + string Error { get; set; } + /// Provisioning state of the certificate. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState? ProvisioningState { get; set; } + /// Subject name of the certificate. + string SubjectName { get; set; } + /// + /// A TXT token used for DNS TXT domain control validation when issuing this type of managed certificates. + /// + string ValidationToken { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.json.cs new file mode 100644 index 000000000000..f3376bf9fb06 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedCertificateProperties.json.cs @@ -0,0 +1,125 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Certificate resource specific properties + public partial class ManagedCertificateProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ManagedCertificateProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedCertificateProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_subjectName = If( json?.PropertyT("subjectName"), out var __jsonSubjectName) ? (string)__jsonSubjectName : (string)SubjectName;} + {_error = If( json?.PropertyT("error"), out var __jsonError) ? (string)__jsonError : (string)Error;} + {_domainControlValidation = If( json?.PropertyT("domainControlValidation"), out var __jsonDomainControlValidation) ? (string)__jsonDomainControlValidation : (string)DomainControlValidation;} + {_validationToken = If( json?.PropertyT("validationToken"), out var __jsonValidationToken) ? (string)__jsonValidationToken : (string)ValidationToken;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != (((object)this._subjectName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._subjectName.ToString()) : null, "subjectName" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._error)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._error.ToString()) : null, "error" ,container.Add ); + } + AddIf( null != (((object)this._domainControlValidation)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._domainControlValidation.ToString()) : null, "domainControlValidation" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._validationToken)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._validationToken.ToString()) : null, "validationToken" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.PowerShell.cs new file mode 100644 index 000000000000..f0d03f075ceb --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.PowerShell.cs @@ -0,0 +1,514 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// An environment for hosting container apps + [System.ComponentModel.TypeConverter(typeof(ManagedEnvironmentTypeConverter))] + public partial class ManagedEnvironment + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedEnvironment(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedEnvironment(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedEnvironment(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentSkuPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName.CreateFrom); + } + if (content.Contains("VnetConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration) content.GetValueForProperty("VnetConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VnetConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("AppLogsConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).AppLogsConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration) content.GetValueForProperty("AppLogsConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).AppLogsConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppLogsConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("CustomDomainConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration) content.GetValueForProperty("CustomDomainConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState.CreateFrom); + } + if (content.Contains("DaprAiInstrumentationKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DaprAiInstrumentationKey = (string) content.GetValueForProperty("DaprAiInstrumentationKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DaprAiInstrumentationKey, global::System.Convert.ToString); + } + if (content.Contains("DaprAiConnectionString")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DaprAiConnectionString = (string) content.GetValueForProperty("DaprAiConnectionString",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DaprAiConnectionString, global::System.Convert.ToString); + } + if (content.Contains("DeploymentError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DeploymentError = (string) content.GetValueForProperty("DeploymentError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DeploymentError, global::System.Convert.ToString); + } + if (content.Contains("DefaultDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DefaultDomain = (string) content.GetValueForProperty("DefaultDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DefaultDomain, global::System.Convert.ToString); + } + if (content.Contains("StaticIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).StaticIP = (string) content.GetValueForProperty("StaticIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).StaticIP, global::System.Convert.ToString); + } + if (content.Contains("ZoneRedundant")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).ZoneRedundant = (bool?) content.GetValueForProperty("ZoneRedundant",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).ZoneRedundant, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EventStreamEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).EventStreamEndpoint = (string) content.GetValueForProperty("EventStreamEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).EventStreamEndpoint, global::System.Convert.ToString); + } + if (content.Contains("WorkloadProfile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).WorkloadProfile = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[]) content.GetValueForProperty("WorkloadProfile",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).WorkloadProfile, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileTypeConverter.ConvertFrom)); + } + if (content.Contains("AppLogConfigurationDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).AppLogConfigurationDestination = (string) content.GetValueForProperty("AppLogConfigurationDestination",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).AppLogConfigurationDestination, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationDnsSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationDnsSuffix = (string) content.GetValueForProperty("CustomDomainConfigurationDnsSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationDnsSuffix, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCertificateValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationCertificateValue = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificateValue",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationCertificateValue, i => i); + } + if (content.Contains("CustomDomainConfigurationCertificatePassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationCertificatePassword = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificatePassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationCertificatePassword, i => i); + } + if (content.Contains("CustomDomainConfigurationExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationExpirationDate = (global::System.DateTime?) content.GetValueForProperty("CustomDomainConfigurationExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationExpirationDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("CustomDomainConfigurationThumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationThumbprint = (string) content.GetValueForProperty("CustomDomainConfigurationThumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationThumbprint, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationSubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationSubjectName = (string) content.GetValueForProperty("CustomDomainConfigurationSubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationSubjectName, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationOutboundSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationOutboundSetting = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings) content.GetValueForProperty("VnetConfigurationOutboundSetting",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationOutboundSetting, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentOutboundSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("VnetConfigurationInternal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationInternal = (bool?) content.GetValueForProperty("VnetConfigurationInternal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationInternal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("VnetConfigurationInfrastructureSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationInfrastructureSubnetId = (string) content.GetValueForProperty("VnetConfigurationInfrastructureSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationInfrastructureSubnetId, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationRuntimeSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationRuntimeSubnetId = (string) content.GetValueForProperty("VnetConfigurationRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationRuntimeSubnetId, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationDockerBridgeCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationDockerBridgeCidr = (string) content.GetValueForProperty("VnetConfigurationDockerBridgeCidr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationDockerBridgeCidr, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationPlatformReservedCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationPlatformReservedCidr = (string) content.GetValueForProperty("VnetConfigurationPlatformReservedCidr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationPlatformReservedCidr, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationPlatformReservedDnsIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationPlatformReservedDnsIP = (string) content.GetValueForProperty("VnetConfigurationPlatformReservedDnsIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationPlatformReservedDnsIP, global::System.Convert.ToString); + } + if (content.Contains("AppLogConfigurationLogAnalyticsConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).AppLogConfigurationLogAnalyticsConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration) content.GetValueForProperty("AppLogConfigurationLogAnalyticsConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).AppLogConfigurationLogAnalyticsConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LogAnalyticsConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("LogAnalyticConfigurationCustomerId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).LogAnalyticConfigurationCustomerId = (string) content.GetValueForProperty("LogAnalyticConfigurationCustomerId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).LogAnalyticConfigurationCustomerId, global::System.Convert.ToString); + } + if (content.Contains("LogAnalyticConfigurationSharedKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).LogAnalyticConfigurationSharedKey = (string) content.GetValueForProperty("LogAnalyticConfigurationSharedKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).LogAnalyticConfigurationSharedKey, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCustomDomainVerificationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationCustomDomainVerificationId = (string) content.GetValueForProperty("CustomDomainConfigurationCustomDomainVerificationId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationCustomDomainVerificationId, global::System.Convert.ToString); + } + if (content.Contains("OutboundSettingOutBoundType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).OutboundSettingOutBoundType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType?) content.GetValueForProperty("OutboundSettingOutBoundType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).OutboundSettingOutBoundType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType.CreateFrom); + } + if (content.Contains("OutboundSettingVirtualNetworkApplianceIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).OutboundSettingVirtualNetworkApplianceIP = (string) content.GetValueForProperty("OutboundSettingVirtualNetworkApplianceIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).OutboundSettingVirtualNetworkApplianceIP, 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 ManagedEnvironment(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentSkuPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName.CreateFrom); + } + if (content.Contains("VnetConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration) content.GetValueForProperty("VnetConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VnetConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("AppLogsConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).AppLogsConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration) content.GetValueForProperty("AppLogsConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).AppLogsConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppLogsConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("CustomDomainConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration) content.GetValueForProperty("CustomDomainConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState.CreateFrom); + } + if (content.Contains("DaprAiInstrumentationKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DaprAiInstrumentationKey = (string) content.GetValueForProperty("DaprAiInstrumentationKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DaprAiInstrumentationKey, global::System.Convert.ToString); + } + if (content.Contains("DaprAiConnectionString")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DaprAiConnectionString = (string) content.GetValueForProperty("DaprAiConnectionString",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DaprAiConnectionString, global::System.Convert.ToString); + } + if (content.Contains("DeploymentError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DeploymentError = (string) content.GetValueForProperty("DeploymentError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DeploymentError, global::System.Convert.ToString); + } + if (content.Contains("DefaultDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DefaultDomain = (string) content.GetValueForProperty("DefaultDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).DefaultDomain, global::System.Convert.ToString); + } + if (content.Contains("StaticIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).StaticIP = (string) content.GetValueForProperty("StaticIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).StaticIP, global::System.Convert.ToString); + } + if (content.Contains("ZoneRedundant")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).ZoneRedundant = (bool?) content.GetValueForProperty("ZoneRedundant",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).ZoneRedundant, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EventStreamEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).EventStreamEndpoint = (string) content.GetValueForProperty("EventStreamEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).EventStreamEndpoint, global::System.Convert.ToString); + } + if (content.Contains("WorkloadProfile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).WorkloadProfile = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[]) content.GetValueForProperty("WorkloadProfile",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).WorkloadProfile, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileTypeConverter.ConvertFrom)); + } + if (content.Contains("AppLogConfigurationDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).AppLogConfigurationDestination = (string) content.GetValueForProperty("AppLogConfigurationDestination",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).AppLogConfigurationDestination, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationDnsSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationDnsSuffix = (string) content.GetValueForProperty("CustomDomainConfigurationDnsSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationDnsSuffix, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCertificateValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationCertificateValue = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificateValue",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationCertificateValue, i => i); + } + if (content.Contains("CustomDomainConfigurationCertificatePassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationCertificatePassword = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificatePassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationCertificatePassword, i => i); + } + if (content.Contains("CustomDomainConfigurationExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationExpirationDate = (global::System.DateTime?) content.GetValueForProperty("CustomDomainConfigurationExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationExpirationDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("CustomDomainConfigurationThumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationThumbprint = (string) content.GetValueForProperty("CustomDomainConfigurationThumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationThumbprint, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationSubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationSubjectName = (string) content.GetValueForProperty("CustomDomainConfigurationSubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationSubjectName, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationOutboundSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationOutboundSetting = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings) content.GetValueForProperty("VnetConfigurationOutboundSetting",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationOutboundSetting, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentOutboundSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("VnetConfigurationInternal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationInternal = (bool?) content.GetValueForProperty("VnetConfigurationInternal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationInternal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("VnetConfigurationInfrastructureSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationInfrastructureSubnetId = (string) content.GetValueForProperty("VnetConfigurationInfrastructureSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationInfrastructureSubnetId, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationRuntimeSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationRuntimeSubnetId = (string) content.GetValueForProperty("VnetConfigurationRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationRuntimeSubnetId, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationDockerBridgeCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationDockerBridgeCidr = (string) content.GetValueForProperty("VnetConfigurationDockerBridgeCidr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationDockerBridgeCidr, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationPlatformReservedCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationPlatformReservedCidr = (string) content.GetValueForProperty("VnetConfigurationPlatformReservedCidr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationPlatformReservedCidr, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationPlatformReservedDnsIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationPlatformReservedDnsIP = (string) content.GetValueForProperty("VnetConfigurationPlatformReservedDnsIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).VnetConfigurationPlatformReservedDnsIP, global::System.Convert.ToString); + } + if (content.Contains("AppLogConfigurationLogAnalyticsConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).AppLogConfigurationLogAnalyticsConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration) content.GetValueForProperty("AppLogConfigurationLogAnalyticsConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).AppLogConfigurationLogAnalyticsConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LogAnalyticsConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("LogAnalyticConfigurationCustomerId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).LogAnalyticConfigurationCustomerId = (string) content.GetValueForProperty("LogAnalyticConfigurationCustomerId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).LogAnalyticConfigurationCustomerId, global::System.Convert.ToString); + } + if (content.Contains("LogAnalyticConfigurationSharedKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).LogAnalyticConfigurationSharedKey = (string) content.GetValueForProperty("LogAnalyticConfigurationSharedKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).LogAnalyticConfigurationSharedKey, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCustomDomainVerificationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationCustomDomainVerificationId = (string) content.GetValueForProperty("CustomDomainConfigurationCustomDomainVerificationId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).CustomDomainConfigurationCustomDomainVerificationId, global::System.Convert.ToString); + } + if (content.Contains("OutboundSettingOutBoundType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).OutboundSettingOutBoundType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType?) content.GetValueForProperty("OutboundSettingOutBoundType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).OutboundSettingOutBoundType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType.CreateFrom); + } + if (content.Contains("OutboundSettingVirtualNetworkApplianceIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).OutboundSettingVirtualNetworkApplianceIP = (string) content.GetValueForProperty("OutboundSettingVirtualNetworkApplianceIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal)this).OutboundSettingVirtualNetworkApplianceIP, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// An environment for hosting container apps + [System.ComponentModel.TypeConverter(typeof(ManagedEnvironmentTypeConverter))] + public partial interface IManagedEnvironment + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.TypeConverter.cs new file mode 100644 index 000000000000..a338d2083d6e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedEnvironmentTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedEnvironment.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedEnvironment.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedEnvironment.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.cs new file mode 100644 index 000000000000..77b43309cbe1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.cs @@ -0,0 +1,651 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// An environment for hosting container apps + public partial class ManagedEnvironment : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource(); + + /// Logs destination + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AppLogConfigurationDestination { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).AppLogConfigurationDestination; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).AppLogConfigurationDestination = value ?? null; } + + /// Certificate password + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public byte[] CustomDomainConfigurationCertificatePassword { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationCertificatePassword; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationCertificatePassword = value ?? null /* byte array */; } + + /// PFX or PEM blob + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public byte[] CustomDomainConfigurationCertificateValue { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationCertificateValue; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationCertificateValue = value ?? null /* byte array */; } + + /// Id used to verify domain name ownership + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationCustomDomainVerificationId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationCustomDomainVerificationId; } + + /// Dns suffix for the environment domain + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationDnsSuffix { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationDnsSuffix; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationDnsSuffix = value ?? null; } + + /// Certificate expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public global::System.DateTime? CustomDomainConfigurationExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationExpirationDate; } + + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationSubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationSubjectName; } + + /// Certificate thumbprint. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationThumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationThumbprint; } + + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DaprAiConnectionString { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).DaprAiConnectionString; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).DaprAiConnectionString = value ?? null; } + + /// + /// Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DaprAiInstrumentationKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).DaprAiInstrumentationKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).DaprAiInstrumentationKey = value ?? null; } + + /// Default Domain Name for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DefaultDomain { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).DefaultDomain; } + + /// Any errors that occurred during deployment or deployment validation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DeploymentError { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).DeploymentError; } + + /// The endpoint of the eventstream of the Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string EventStreamEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).EventStreamEndpoint; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id; } + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// Log analytics customer id + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string LogAnalyticConfigurationCustomerId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).LogAnalyticConfigurationCustomerId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).LogAnalyticConfigurationCustomerId = value ?? null; } + + /// Log analytics customer key + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string LogAnalyticConfigurationSharedKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).LogAnalyticConfigurationSharedKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).LogAnalyticConfigurationSharedKey = value ?? null; } + + /// Internal Acessors for AppLogConfigurationLogAnalyticsConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.AppLogConfigurationLogAnalyticsConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).AppLogConfigurationLogAnalyticsConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).AppLogConfigurationLogAnalyticsConfiguration = value; } + + /// Internal Acessors for AppLogsConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.AppLogsConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).AppLogsConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).AppLogsConfiguration = value; } + + /// Internal Acessors for CustomDomainConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.CustomDomainConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfiguration = value; } + + /// Internal Acessors for CustomDomainConfigurationCustomDomainVerificationId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.CustomDomainConfigurationCustomDomainVerificationId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationCustomDomainVerificationId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationCustomDomainVerificationId = value; } + + /// Internal Acessors for CustomDomainConfigurationExpirationDate + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.CustomDomainConfigurationExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationExpirationDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationExpirationDate = value; } + + /// Internal Acessors for CustomDomainConfigurationSubjectName + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.CustomDomainConfigurationSubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationSubjectName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationSubjectName = value; } + + /// Internal Acessors for CustomDomainConfigurationThumbprint + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.CustomDomainConfigurationThumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationThumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).CustomDomainConfigurationThumbprint = value; } + + /// Internal Acessors for DefaultDomain + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.DefaultDomain { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).DefaultDomain; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).DefaultDomain = value; } + + /// Internal Acessors for DeploymentError + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.DeploymentError { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).DeploymentError; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).DeploymentError = value; } + + /// Internal Acessors for EventStreamEndpoint + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.EventStreamEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).EventStreamEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).EventStreamEndpoint = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentSkuProperties()); set { {_sku = value;} } } + + /// Internal Acessors for StaticIP + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.StaticIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).StaticIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).StaticIP = value; } + + /// Internal Acessors for VnetConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.VnetConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfiguration = value; } + + /// Internal Acessors for VnetConfigurationOutboundSetting + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentInternal.VnetConfigurationOutboundSetting { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfigurationOutboundSetting; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfigurationOutboundSetting = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Name; } + + /// Outbound type for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType? OutboundSettingOutBoundType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).OutboundSettingOutBoundType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).OutboundSettingOutBoundType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType)""); } + + /// Virtual Appliance IP used as the Egress controller for the Environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string OutboundSettingVirtualNetworkApplianceIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).OutboundSettingVirtualNetworkApplianceIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).OutboundSettingVirtualNetworkApplianceIP = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties _property; + + /// Managed environment resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentProperties()); set => this._property = value; } + + /// Provisioning state of the Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).ProvisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties _sku; + + /// SKU properties of the Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentSkuProperties()); set => this._sku = value; } + + /// Name of the Sku. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName? SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuPropertiesInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuPropertiesInternal)Sku).Name = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName)""); } + + /// Static IP of the Environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string StaticIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).StaticIP; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__trackedResource).Type; } + + /// + /// CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string VnetConfigurationDockerBridgeCidr { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfigurationDockerBridgeCidr; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfigurationDockerBridgeCidr = value ?? null; } + + /// + /// Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + /// Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string VnetConfigurationInfrastructureSubnetId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfigurationInfrastructureSubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfigurationInfrastructureSubnetId = value ?? null; } + + /// + /// Boolean indicating the environment only has an internal load balancer. These environments do not have a public static + /// IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? VnetConfigurationInternal { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfigurationInternal; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfigurationInternal = value ?? default(bool); } + + /// + /// IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any + /// other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string VnetConfigurationPlatformReservedCidr { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfigurationPlatformReservedCidr; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfigurationPlatformReservedCidr = value ?? null; } + + /// + /// An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string VnetConfigurationPlatformReservedDnsIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfigurationPlatformReservedDnsIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfigurationPlatformReservedDnsIP = value ?? null; } + + /// + /// Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet + /// defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string VnetConfigurationRuntimeSubnetId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfigurationRuntimeSubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).VnetConfigurationRuntimeSubnetId = value ?? null; } + + /// Workload profiles configured for the Managed Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[] WorkloadProfile { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).WorkloadProfile; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).WorkloadProfile = value ?? null /* arrayOf */; } + + /// Whether or not this Managed Environment is zone-redundant. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? ZoneRedundant { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).ZoneRedundant; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)Property).ZoneRedundant = value ?? default(bool); } + + /// Creates an new instance. + public ManagedEnvironment() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// An environment for hosting container apps + public partial interface IManagedEnvironment : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource + { + /// Logs destination + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Logs destination", + SerializedName = @"destination", + PossibleTypes = new [] { typeof(string) })] + string AppLogConfigurationDestination { get; set; } + /// Certificate password + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Certificate password", + SerializedName = @"certificatePassword", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] CustomDomainConfigurationCertificatePassword { get; set; } + /// PFX or PEM blob + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"PFX or PEM blob", + SerializedName = @"certificateValue", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] CustomDomainConfigurationCertificateValue { get; set; } + /// Id used to verify domain name ownership + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Id used to verify domain name ownership", + SerializedName = @"customDomainVerificationId", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationCustomDomainVerificationId { get; } + /// Dns suffix for the environment domain + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dns suffix for the environment domain", + SerializedName = @"dnsSuffix", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationDnsSuffix { get; set; } + /// Certificate expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate expiration date.", + SerializedName = @"expirationDate", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CustomDomainConfigurationExpirationDate { get; } + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Subject name of the certificate.", + SerializedName = @"subjectName", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationSubjectName { get; } + /// Certificate thumbprint. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate thumbprint.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationThumbprint { get; } + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application Insights connection string used by Dapr to export Service to Service communication telemetry", + SerializedName = @"daprAIConnectionString", + PossibleTypes = new [] { typeof(string) })] + string DaprAiConnectionString { get; set; } + /// + /// Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry", + SerializedName = @"daprAIInstrumentationKey", + PossibleTypes = new [] { typeof(string) })] + string DaprAiInstrumentationKey { get; set; } + /// Default Domain Name for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Default Domain Name for the cluster", + SerializedName = @"defaultDomain", + PossibleTypes = new [] { typeof(string) })] + string DefaultDomain { get; } + /// Any errors that occurred during deployment or deployment validation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Any errors that occurred during deployment or deployment validation", + SerializedName = @"deploymentErrors", + PossibleTypes = new [] { typeof(string) })] + string DeploymentError { get; } + /// The endpoint of the eventstream of the Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The endpoint of the eventstream of the Environment.", + SerializedName = @"eventStreamEndpoint", + PossibleTypes = new [] { typeof(string) })] + string EventStreamEndpoint { get; } + /// Log analytics customer id + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log analytics customer id", + SerializedName = @"customerId", + PossibleTypes = new [] { typeof(string) })] + string LogAnalyticConfigurationCustomerId { get; set; } + /// Log analytics customer key + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log analytics customer key", + SerializedName = @"sharedKey", + PossibleTypes = new [] { typeof(string) })] + string LogAnalyticConfigurationSharedKey { get; set; } + /// Outbound type for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Outbound type for the cluster", + SerializedName = @"outBoundType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType? OutboundSettingOutBoundType { get; set; } + /// Virtual Appliance IP used as the Egress controller for the Environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Virtual Appliance IP used as the Egress controller for the Environment", + SerializedName = @"virtualNetworkApplianceIp", + PossibleTypes = new [] { typeof(string) })] + string OutboundSettingVirtualNetworkApplianceIP { get; set; } + /// Provisioning state of the Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Environment.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState? ProvisioningState { get; } + /// Name of the Sku. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName? SkuName { get; set; } + /// Static IP of the Environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Static IP of the Environment", + SerializedName = @"staticIp", + PossibleTypes = new [] { typeof(string) })] + string StaticIP { get; } + /// + /// CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges.", + SerializedName = @"dockerBridgeCidr", + PossibleTypes = new [] { typeof(string) })] + string VnetConfigurationDockerBridgeCidr { get; set; } + /// + /// Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + /// Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. Must not overlap with any other provided IP ranges.", + SerializedName = @"infrastructureSubnetId", + PossibleTypes = new [] { typeof(string) })] + string VnetConfigurationInfrastructureSubnetId { get; set; } + /// + /// Boolean indicating the environment only has an internal load balancer. These environments do not have a public static + /// IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean indicating the environment only has an internal load balancer. These environments do not have a public static IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property", + SerializedName = @"internal", + PossibleTypes = new [] { typeof(bool) })] + bool? VnetConfigurationInternal { get; set; } + /// + /// IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any + /// other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any other provided IP ranges.", + SerializedName = @"platformReservedCidr", + PossibleTypes = new [] { typeof(string) })] + string VnetConfigurationPlatformReservedCidr { get; set; } + /// + /// An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @" An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server.", + SerializedName = @"platformReservedDnsIP", + PossibleTypes = new [] { typeof(string) })] + string VnetConfigurationPlatformReservedDnsIP { get; set; } + /// + /// Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet + /// defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges.", + SerializedName = @"runtimeSubnetId", + PossibleTypes = new [] { typeof(string) })] + string VnetConfigurationRuntimeSubnetId { get; set; } + /// Workload profiles configured for the Managed Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Workload profiles configured for the Managed Environment.", + SerializedName = @"workloadProfiles", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[] WorkloadProfile { get; set; } + /// Whether or not this Managed Environment is zone-redundant. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether or not this Managed Environment is zone-redundant.", + SerializedName = @"zoneRedundant", + PossibleTypes = new [] { typeof(bool) })] + bool? ZoneRedundant { get; set; } + + } + /// An environment for hosting container apps + internal partial interface IManagedEnvironmentInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal + { + /// Logs destination + string AppLogConfigurationDestination { get; set; } + /// Log Analytics configuration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration AppLogConfigurationLogAnalyticsConfiguration { get; set; } + /// + /// Cluster configuration which enables the log daemon to export + /// app logs to a destination. Currently only "log-analytics" is + /// supported + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration AppLogsConfiguration { get; set; } + /// Custom domain configuration for the environment + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration CustomDomainConfiguration { get; set; } + /// Certificate password + byte[] CustomDomainConfigurationCertificatePassword { get; set; } + /// PFX or PEM blob + byte[] CustomDomainConfigurationCertificateValue { get; set; } + /// Id used to verify domain name ownership + string CustomDomainConfigurationCustomDomainVerificationId { get; set; } + /// Dns suffix for the environment domain + string CustomDomainConfigurationDnsSuffix { get; set; } + /// Certificate expiration date. + global::System.DateTime? CustomDomainConfigurationExpirationDate { get; set; } + /// Subject name of the certificate. + string CustomDomainConfigurationSubjectName { get; set; } + /// Certificate thumbprint. + string CustomDomainConfigurationThumbprint { get; set; } + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + string DaprAiConnectionString { get; set; } + /// + /// Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + /// + string DaprAiInstrumentationKey { get; set; } + /// Default Domain Name for the cluster + string DefaultDomain { get; set; } + /// Any errors that occurred during deployment or deployment validation + string DeploymentError { get; set; } + /// The endpoint of the eventstream of the Environment. + string EventStreamEndpoint { get; set; } + /// Log analytics customer id + string LogAnalyticConfigurationCustomerId { get; set; } + /// Log analytics customer key + string LogAnalyticConfigurationSharedKey { get; set; } + /// Outbound type for the cluster + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType? OutboundSettingOutBoundType { get; set; } + /// Virtual Appliance IP used as the Egress controller for the Environment + string OutboundSettingVirtualNetworkApplianceIP { get; set; } + /// Managed environment resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties Property { get; set; } + /// Provisioning state of the Environment. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState? ProvisioningState { get; set; } + /// SKU properties of the Environment. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentSkuProperties Sku { get; set; } + /// Name of the Sku. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName? SkuName { get; set; } + /// Static IP of the Environment + string StaticIP { get; set; } + /// Vnet configuration for the environment + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration VnetConfiguration { get; set; } + /// + /// CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges. + /// + string VnetConfigurationDockerBridgeCidr { get; set; } + /// + /// Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + /// Must not overlap with any other provided IP ranges. + /// + string VnetConfigurationInfrastructureSubnetId { get; set; } + /// + /// Boolean indicating the environment only has an internal load balancer. These environments do not have a public static + /// IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + /// + bool? VnetConfigurationInternal { get; set; } + /// Configuration used to control the Environment Egress outbound traffic + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings VnetConfigurationOutboundSetting { get; set; } + /// + /// IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any + /// other provided IP ranges. + /// + string VnetConfigurationPlatformReservedCidr { get; set; } + /// + /// An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + /// + string VnetConfigurationPlatformReservedDnsIP { get; set; } + /// + /// Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet + /// defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges. + /// + string VnetConfigurationRuntimeSubnetId { get; set; } + /// Workload profiles configured for the Managed Environment. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[] WorkloadProfile { get; set; } + /// Whether or not this Managed Environment is zone-redundant. + bool? ZoneRedundant { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.json.cs new file mode 100644 index 000000000000..08a069b41c79 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironment.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// An environment for hosting container apps + public partial class ManagedEnvironment + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ManagedEnvironment(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedEnvironment(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResource(json); + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.EnvironmentSkuProperties.FromJson(__jsonSku) : Sku;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentProperties.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __trackedResource?.ToJson(container, serializationMode); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.PowerShell.cs new file mode 100644 index 000000000000..dde3f6ef40e5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.PowerShell.cs @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Configuration used to control the Environment Egress outbound traffic + [System.ComponentModel.TypeConverter(typeof(ManagedEnvironmentOutboundSettingsTypeConverter))] + public partial class ManagedEnvironmentOutboundSettings + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedEnvironmentOutboundSettings(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedEnvironmentOutboundSettings(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedEnvironmentOutboundSettings(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OutBoundType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettingsInternal)this).OutBoundType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType?) content.GetValueForProperty("OutBoundType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettingsInternal)this).OutBoundType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType.CreateFrom); + } + if (content.Contains("VirtualNetworkApplianceIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettingsInternal)this).VirtualNetworkApplianceIP = (string) content.GetValueForProperty("VirtualNetworkApplianceIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettingsInternal)this).VirtualNetworkApplianceIP, 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 ManagedEnvironmentOutboundSettings(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OutBoundType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettingsInternal)this).OutBoundType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType?) content.GetValueForProperty("OutBoundType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettingsInternal)this).OutBoundType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType.CreateFrom); + } + if (content.Contains("VirtualNetworkApplianceIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettingsInternal)this).VirtualNetworkApplianceIP = (string) content.GetValueForProperty("VirtualNetworkApplianceIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettingsInternal)this).VirtualNetworkApplianceIP, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Configuration used to control the Environment Egress outbound traffic + [System.ComponentModel.TypeConverter(typeof(ManagedEnvironmentOutboundSettingsTypeConverter))] + public partial interface IManagedEnvironmentOutboundSettings + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.TypeConverter.cs new file mode 100644 index 000000000000..f2fd8e8e9d5d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.TypeConverter.cs @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedEnvironmentOutboundSettingsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedEnvironmentOutboundSettings.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedEnvironmentOutboundSettings.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedEnvironmentOutboundSettings.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.cs new file mode 100644 index 000000000000..156c3142b664 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Configuration used to control the Environment Egress outbound traffic + public partial class ManagedEnvironmentOutboundSettings : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettingsInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType? _outBoundType; + + /// Outbound type for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType? OutBoundType { get => this._outBoundType; set => this._outBoundType = value; } + + /// Backing field for property. + private string _virtualNetworkApplianceIP; + + /// Virtual Appliance IP used as the Egress controller for the Environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string VirtualNetworkApplianceIP { get => this._virtualNetworkApplianceIP; set => this._virtualNetworkApplianceIP = value; } + + /// Creates an new instance. + public ManagedEnvironmentOutboundSettings() + { + + } + } + /// Configuration used to control the Environment Egress outbound traffic + public partial interface IManagedEnvironmentOutboundSettings : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Outbound type for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Outbound type for the cluster", + SerializedName = @"outBoundType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType? OutBoundType { get; set; } + /// Virtual Appliance IP used as the Egress controller for the Environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Virtual Appliance IP used as the Egress controller for the Environment", + SerializedName = @"virtualNetworkApplianceIp", + PossibleTypes = new [] { typeof(string) })] + string VirtualNetworkApplianceIP { get; set; } + + } + /// Configuration used to control the Environment Egress outbound traffic + internal partial interface IManagedEnvironmentOutboundSettingsInternal + + { + /// Outbound type for the cluster + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType? OutBoundType { get; set; } + /// Virtual Appliance IP used as the Egress controller for the Environment + string VirtualNetworkApplianceIP { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.json.cs new file mode 100644 index 000000000000..0fec64cdf42b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentOutboundSettings.json.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Configuration used to control the Environment Egress outbound traffic + public partial class ManagedEnvironmentOutboundSettings + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ManagedEnvironmentOutboundSettings(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedEnvironmentOutboundSettings(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_outBoundType = If( json?.PropertyT("outBoundType"), out var __jsonOutBoundType) ? (string)__jsonOutBoundType : (string)OutBoundType;} + {_virtualNetworkApplianceIP = If( json?.PropertyT("virtualNetworkApplianceIp"), out var __jsonVirtualNetworkApplianceIP) ? (string)__jsonVirtualNetworkApplianceIP : (string)VirtualNetworkApplianceIP;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._outBoundType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._outBoundType.ToString()) : null, "outBoundType" ,container.Add ); + AddIf( null != (((object)this._virtualNetworkApplianceIP)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._virtualNetworkApplianceIP.ToString()) : null, "virtualNetworkApplianceIp" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.PowerShell.cs new file mode 100644 index 000000000000..6ac57f73e7d9 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.PowerShell.cs @@ -0,0 +1,394 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Managed environment resource specific properties + [System.ComponentModel.TypeConverter(typeof(ManagedEnvironmentPropertiesTypeConverter))] + public partial class ManagedEnvironmentProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedEnvironmentProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedEnvironmentProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedEnvironmentProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("VnetConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration) content.GetValueForProperty("VnetConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VnetConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("AppLogsConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).AppLogsConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration) content.GetValueForProperty("AppLogsConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).AppLogsConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppLogsConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("CustomDomainConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration) content.GetValueForProperty("CustomDomainConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState.CreateFrom); + } + if (content.Contains("DaprAiInstrumentationKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DaprAiInstrumentationKey = (string) content.GetValueForProperty("DaprAiInstrumentationKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DaprAiInstrumentationKey, global::System.Convert.ToString); + } + if (content.Contains("DaprAiConnectionString")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DaprAiConnectionString = (string) content.GetValueForProperty("DaprAiConnectionString",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DaprAiConnectionString, global::System.Convert.ToString); + } + if (content.Contains("DeploymentError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DeploymentError = (string) content.GetValueForProperty("DeploymentError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DeploymentError, global::System.Convert.ToString); + } + if (content.Contains("DefaultDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DefaultDomain = (string) content.GetValueForProperty("DefaultDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DefaultDomain, global::System.Convert.ToString); + } + if (content.Contains("StaticIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).StaticIP = (string) content.GetValueForProperty("StaticIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).StaticIP, global::System.Convert.ToString); + } + if (content.Contains("ZoneRedundant")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).ZoneRedundant = (bool?) content.GetValueForProperty("ZoneRedundant",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).ZoneRedundant, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EventStreamEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).EventStreamEndpoint = (string) content.GetValueForProperty("EventStreamEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).EventStreamEndpoint, global::System.Convert.ToString); + } + if (content.Contains("WorkloadProfile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).WorkloadProfile = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[]) content.GetValueForProperty("WorkloadProfile",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).WorkloadProfile, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileTypeConverter.ConvertFrom)); + } + if (content.Contains("AppLogConfigurationDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).AppLogConfigurationDestination = (string) content.GetValueForProperty("AppLogConfigurationDestination",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).AppLogConfigurationDestination, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationDnsSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationDnsSuffix = (string) content.GetValueForProperty("CustomDomainConfigurationDnsSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationDnsSuffix, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCertificateValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificateValue = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificateValue",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificateValue, i => i); + } + if (content.Contains("CustomDomainConfigurationCertificatePassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificatePassword = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificatePassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificatePassword, i => i); + } + if (content.Contains("CustomDomainConfigurationExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationExpirationDate = (global::System.DateTime?) content.GetValueForProperty("CustomDomainConfigurationExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationExpirationDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("CustomDomainConfigurationThumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationThumbprint = (string) content.GetValueForProperty("CustomDomainConfigurationThumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationThumbprint, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationSubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationSubjectName = (string) content.GetValueForProperty("CustomDomainConfigurationSubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationSubjectName, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationOutboundSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationOutboundSetting = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings) content.GetValueForProperty("VnetConfigurationOutboundSetting",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationOutboundSetting, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentOutboundSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("VnetConfigurationInternal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationInternal = (bool?) content.GetValueForProperty("VnetConfigurationInternal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationInternal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("VnetConfigurationInfrastructureSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationInfrastructureSubnetId = (string) content.GetValueForProperty("VnetConfigurationInfrastructureSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationInfrastructureSubnetId, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationRuntimeSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationRuntimeSubnetId = (string) content.GetValueForProperty("VnetConfigurationRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationRuntimeSubnetId, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationDockerBridgeCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationDockerBridgeCidr = (string) content.GetValueForProperty("VnetConfigurationDockerBridgeCidr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationDockerBridgeCidr, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationPlatformReservedCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationPlatformReservedCidr = (string) content.GetValueForProperty("VnetConfigurationPlatformReservedCidr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationPlatformReservedCidr, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationPlatformReservedDnsIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationPlatformReservedDnsIP = (string) content.GetValueForProperty("VnetConfigurationPlatformReservedDnsIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationPlatformReservedDnsIP, global::System.Convert.ToString); + } + if (content.Contains("AppLogConfigurationLogAnalyticsConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).AppLogConfigurationLogAnalyticsConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration) content.GetValueForProperty("AppLogConfigurationLogAnalyticsConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).AppLogConfigurationLogAnalyticsConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LogAnalyticsConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("LogAnalyticConfigurationCustomerId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).LogAnalyticConfigurationCustomerId = (string) content.GetValueForProperty("LogAnalyticConfigurationCustomerId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).LogAnalyticConfigurationCustomerId, global::System.Convert.ToString); + } + if (content.Contains("LogAnalyticConfigurationSharedKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).LogAnalyticConfigurationSharedKey = (string) content.GetValueForProperty("LogAnalyticConfigurationSharedKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).LogAnalyticConfigurationSharedKey, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCustomDomainVerificationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCustomDomainVerificationId = (string) content.GetValueForProperty("CustomDomainConfigurationCustomDomainVerificationId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCustomDomainVerificationId, global::System.Convert.ToString); + } + if (content.Contains("OutboundSettingOutBoundType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).OutboundSettingOutBoundType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType?) content.GetValueForProperty("OutboundSettingOutBoundType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).OutboundSettingOutBoundType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType.CreateFrom); + } + if (content.Contains("OutboundSettingVirtualNetworkApplianceIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).OutboundSettingVirtualNetworkApplianceIP = (string) content.GetValueForProperty("OutboundSettingVirtualNetworkApplianceIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).OutboundSettingVirtualNetworkApplianceIP, 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 ManagedEnvironmentProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("VnetConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration) content.GetValueForProperty("VnetConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VnetConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("AppLogsConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).AppLogsConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration) content.GetValueForProperty("AppLogsConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).AppLogsConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppLogsConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("CustomDomainConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration) content.GetValueForProperty("CustomDomainConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState.CreateFrom); + } + if (content.Contains("DaprAiInstrumentationKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DaprAiInstrumentationKey = (string) content.GetValueForProperty("DaprAiInstrumentationKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DaprAiInstrumentationKey, global::System.Convert.ToString); + } + if (content.Contains("DaprAiConnectionString")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DaprAiConnectionString = (string) content.GetValueForProperty("DaprAiConnectionString",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DaprAiConnectionString, global::System.Convert.ToString); + } + if (content.Contains("DeploymentError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DeploymentError = (string) content.GetValueForProperty("DeploymentError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DeploymentError, global::System.Convert.ToString); + } + if (content.Contains("DefaultDomain")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DefaultDomain = (string) content.GetValueForProperty("DefaultDomain",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).DefaultDomain, global::System.Convert.ToString); + } + if (content.Contains("StaticIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).StaticIP = (string) content.GetValueForProperty("StaticIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).StaticIP, global::System.Convert.ToString); + } + if (content.Contains("ZoneRedundant")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).ZoneRedundant = (bool?) content.GetValueForProperty("ZoneRedundant",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).ZoneRedundant, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EventStreamEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).EventStreamEndpoint = (string) content.GetValueForProperty("EventStreamEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).EventStreamEndpoint, global::System.Convert.ToString); + } + if (content.Contains("WorkloadProfile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).WorkloadProfile = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[]) content.GetValueForProperty("WorkloadProfile",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).WorkloadProfile, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileTypeConverter.ConvertFrom)); + } + if (content.Contains("AppLogConfigurationDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).AppLogConfigurationDestination = (string) content.GetValueForProperty("AppLogConfigurationDestination",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).AppLogConfigurationDestination, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationDnsSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationDnsSuffix = (string) content.GetValueForProperty("CustomDomainConfigurationDnsSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationDnsSuffix, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCertificateValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificateValue = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificateValue",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificateValue, i => i); + } + if (content.Contains("CustomDomainConfigurationCertificatePassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificatePassword = (byte[]) content.GetValueForProperty("CustomDomainConfigurationCertificatePassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCertificatePassword, i => i); + } + if (content.Contains("CustomDomainConfigurationExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationExpirationDate = (global::System.DateTime?) content.GetValueForProperty("CustomDomainConfigurationExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationExpirationDate, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("CustomDomainConfigurationThumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationThumbprint = (string) content.GetValueForProperty("CustomDomainConfigurationThumbprint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationThumbprint, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationSubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationSubjectName = (string) content.GetValueForProperty("CustomDomainConfigurationSubjectName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationSubjectName, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationOutboundSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationOutboundSetting = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings) content.GetValueForProperty("VnetConfigurationOutboundSetting",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationOutboundSetting, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentOutboundSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("VnetConfigurationInternal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationInternal = (bool?) content.GetValueForProperty("VnetConfigurationInternal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationInternal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("VnetConfigurationInfrastructureSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationInfrastructureSubnetId = (string) content.GetValueForProperty("VnetConfigurationInfrastructureSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationInfrastructureSubnetId, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationRuntimeSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationRuntimeSubnetId = (string) content.GetValueForProperty("VnetConfigurationRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationRuntimeSubnetId, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationDockerBridgeCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationDockerBridgeCidr = (string) content.GetValueForProperty("VnetConfigurationDockerBridgeCidr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationDockerBridgeCidr, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationPlatformReservedCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationPlatformReservedCidr = (string) content.GetValueForProperty("VnetConfigurationPlatformReservedCidr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationPlatformReservedCidr, global::System.Convert.ToString); + } + if (content.Contains("VnetConfigurationPlatformReservedDnsIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationPlatformReservedDnsIP = (string) content.GetValueForProperty("VnetConfigurationPlatformReservedDnsIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).VnetConfigurationPlatformReservedDnsIP, global::System.Convert.ToString); + } + if (content.Contains("AppLogConfigurationLogAnalyticsConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).AppLogConfigurationLogAnalyticsConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration) content.GetValueForProperty("AppLogConfigurationLogAnalyticsConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).AppLogConfigurationLogAnalyticsConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.LogAnalyticsConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("LogAnalyticConfigurationCustomerId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).LogAnalyticConfigurationCustomerId = (string) content.GetValueForProperty("LogAnalyticConfigurationCustomerId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).LogAnalyticConfigurationCustomerId, global::System.Convert.ToString); + } + if (content.Contains("LogAnalyticConfigurationSharedKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).LogAnalyticConfigurationSharedKey = (string) content.GetValueForProperty("LogAnalyticConfigurationSharedKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).LogAnalyticConfigurationSharedKey, global::System.Convert.ToString); + } + if (content.Contains("CustomDomainConfigurationCustomDomainVerificationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCustomDomainVerificationId = (string) content.GetValueForProperty("CustomDomainConfigurationCustomDomainVerificationId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).CustomDomainConfigurationCustomDomainVerificationId, global::System.Convert.ToString); + } + if (content.Contains("OutboundSettingOutBoundType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).OutboundSettingOutBoundType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType?) content.GetValueForProperty("OutboundSettingOutBoundType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).OutboundSettingOutBoundType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType.CreateFrom); + } + if (content.Contains("OutboundSettingVirtualNetworkApplianceIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).OutboundSettingVirtualNetworkApplianceIP = (string) content.GetValueForProperty("OutboundSettingVirtualNetworkApplianceIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal)this).OutboundSettingVirtualNetworkApplianceIP, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Managed environment resource specific properties + [System.ComponentModel.TypeConverter(typeof(ManagedEnvironmentPropertiesTypeConverter))] + public partial interface IManagedEnvironmentProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.TypeConverter.cs new file mode 100644 index 000000000000..0aad92215c60 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedEnvironmentPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedEnvironmentProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedEnvironmentProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedEnvironmentProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.cs new file mode 100644 index 000000000000..36fbbacdb74d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.cs @@ -0,0 +1,580 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Managed environment resource specific properties + public partial class ManagedEnvironmentProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal + { + + /// Logs destination + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AppLogConfigurationDestination { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)AppLogsConfiguration).Destination; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)AppLogsConfiguration).Destination = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration _appLogsConfiguration; + + /// + /// Cluster configuration which enables the log daemon to export + /// app logs to a destination. Currently only "log-analytics" is + /// supported + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration AppLogsConfiguration { get => (this._appLogsConfiguration = this._appLogsConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppLogsConfiguration()); set => this._appLogsConfiguration = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration _customDomainConfiguration; + + /// Custom domain configuration for the environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration CustomDomainConfiguration { get => (this._customDomainConfiguration = this._customDomainConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfiguration()); set => this._customDomainConfiguration = value; } + + /// Certificate password + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public byte[] CustomDomainConfigurationCertificatePassword { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).CertificatePassword; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).CertificatePassword = value ?? null /* byte array */; } + + /// PFX or PEM blob + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public byte[] CustomDomainConfigurationCertificateValue { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).CertificateValue; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).CertificateValue = value ?? null /* byte array */; } + + /// Id used to verify domain name ownership + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationCustomDomainVerificationId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).CustomDomainVerificationId; } + + /// Dns suffix for the environment domain + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationDnsSuffix { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).DnsSuffix; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).DnsSuffix = value ?? null; } + + /// Certificate expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public global::System.DateTime? CustomDomainConfigurationExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).ExpirationDate; } + + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationSubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).SubjectName; } + + /// Certificate thumbprint. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomDomainConfigurationThumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).Thumbprint; } + + /// Backing field for property. + private string _daprAiConnectionString; + + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string DaprAiConnectionString { get => this._daprAiConnectionString; set => this._daprAiConnectionString = value; } + + /// Backing field for property. + private string _daprAiInstrumentationKey; + + /// + /// Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string DaprAiInstrumentationKey { get => this._daprAiInstrumentationKey; set => this._daprAiInstrumentationKey = value; } + + /// Backing field for property. + private string _defaultDomain; + + /// Default Domain Name for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string DefaultDomain { get => this._defaultDomain; } + + /// Backing field for property. + private string _deploymentError; + + /// Any errors that occurred during deployment or deployment validation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string DeploymentError { get => this._deploymentError; } + + /// Backing field for property. + private string _eventStreamEndpoint; + + /// The endpoint of the eventstream of the Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string EventStreamEndpoint { get => this._eventStreamEndpoint; } + + /// Log analytics customer id + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string LogAnalyticConfigurationCustomerId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)AppLogsConfiguration).LogAnalyticConfigurationCustomerId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)AppLogsConfiguration).LogAnalyticConfigurationCustomerId = value ?? null; } + + /// Log analytics customer key + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string LogAnalyticConfigurationSharedKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)AppLogsConfiguration).LogAnalyticConfigurationSharedKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)AppLogsConfiguration).LogAnalyticConfigurationSharedKey = value ?? null; } + + /// Internal Acessors for AppLogConfigurationLogAnalyticsConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal.AppLogConfigurationLogAnalyticsConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)AppLogsConfiguration).LogAnalyticsConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfigurationInternal)AppLogsConfiguration).LogAnalyticsConfiguration = value; } + + /// Internal Acessors for AppLogsConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal.AppLogsConfiguration { get => (this._appLogsConfiguration = this._appLogsConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppLogsConfiguration()); set { {_appLogsConfiguration = value;} } } + + /// Internal Acessors for CustomDomainConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal.CustomDomainConfiguration { get => (this._customDomainConfiguration = this._customDomainConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfiguration()); set { {_customDomainConfiguration = value;} } } + + /// Internal Acessors for CustomDomainConfigurationCustomDomainVerificationId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal.CustomDomainConfigurationCustomDomainVerificationId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).CustomDomainVerificationId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).CustomDomainVerificationId = value; } + + /// Internal Acessors for CustomDomainConfigurationExpirationDate + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal.CustomDomainConfigurationExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).ExpirationDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).ExpirationDate = value; } + + /// Internal Acessors for CustomDomainConfigurationSubjectName + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal.CustomDomainConfigurationSubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).SubjectName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).SubjectName = value; } + + /// Internal Acessors for CustomDomainConfigurationThumbprint + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal.CustomDomainConfigurationThumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).Thumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfigurationInternal)CustomDomainConfiguration).Thumbprint = value; } + + /// Internal Acessors for DefaultDomain + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal.DefaultDomain { get => this._defaultDomain; set { {_defaultDomain = value;} } } + + /// Internal Acessors for DeploymentError + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal.DeploymentError { get => this._deploymentError; set { {_deploymentError = value;} } } + + /// Internal Acessors for EventStreamEndpoint + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal.EventStreamEndpoint { get => this._eventStreamEndpoint; set { {_eventStreamEndpoint = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for StaticIP + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal.StaticIP { get => this._staticIP; set { {_staticIP = value;} } } + + /// Internal Acessors for VnetConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal.VnetConfiguration { get => (this._vnetConfiguration = this._vnetConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VnetConfiguration()); set { {_vnetConfiguration = value;} } } + + /// Internal Acessors for VnetConfigurationOutboundSetting + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentPropertiesInternal.VnetConfigurationOutboundSetting { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).OutboundSetting; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).OutboundSetting = value; } + + /// Outbound type for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType? OutboundSettingOutBoundType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).OutboundSettingOutBoundType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).OutboundSettingOutBoundType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType)""); } + + /// Virtual Appliance IP used as the Egress controller for the Environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string OutboundSettingVirtualNetworkApplianceIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).OutboundSettingVirtualNetworkApplianceIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).OutboundSettingVirtualNetworkApplianceIP = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState? _provisioningState; + + /// Provisioning state of the Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _staticIP; + + /// Static IP of the Environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string StaticIP { get => this._staticIP; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration _vnetConfiguration; + + /// Vnet configuration for the environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration VnetConfiguration { get => (this._vnetConfiguration = this._vnetConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VnetConfiguration()); set => this._vnetConfiguration = value; } + + /// + /// CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string VnetConfigurationDockerBridgeCidr { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).DockerBridgeCidr; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).DockerBridgeCidr = value ?? null; } + + /// + /// Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + /// Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string VnetConfigurationInfrastructureSubnetId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).InfrastructureSubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).InfrastructureSubnetId = value ?? null; } + + /// + /// Boolean indicating the environment only has an internal load balancer. These environments do not have a public static + /// IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? VnetConfigurationInternal { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).Internal; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).Internal = value ?? default(bool); } + + /// + /// IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any + /// other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string VnetConfigurationPlatformReservedCidr { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).PlatformReservedCidr; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).PlatformReservedCidr = value ?? null; } + + /// + /// An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string VnetConfigurationPlatformReservedDnsIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).PlatformReservedDnsIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).PlatformReservedDnsIP = value ?? null; } + + /// + /// Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet + /// defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string VnetConfigurationRuntimeSubnetId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).RuntimeSubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)VnetConfiguration).RuntimeSubnetId = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[] _workloadProfile; + + /// Workload profiles configured for the Managed Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[] WorkloadProfile { get => this._workloadProfile; set => this._workloadProfile = value; } + + /// Backing field for property. + private bool? _zoneRedundant; + + /// Whether or not this Managed Environment is zone-redundant. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? ZoneRedundant { get => this._zoneRedundant; set => this._zoneRedundant = value; } + + /// Creates an new instance. + public ManagedEnvironmentProperties() + { + + } + } + /// Managed environment resource specific properties + public partial interface IManagedEnvironmentProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Logs destination + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Logs destination", + SerializedName = @"destination", + PossibleTypes = new [] { typeof(string) })] + string AppLogConfigurationDestination { get; set; } + /// Certificate password + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Certificate password", + SerializedName = @"certificatePassword", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] CustomDomainConfigurationCertificatePassword { get; set; } + /// PFX or PEM blob + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"PFX or PEM blob", + SerializedName = @"certificateValue", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] CustomDomainConfigurationCertificateValue { get; set; } + /// Id used to verify domain name ownership + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Id used to verify domain name ownership", + SerializedName = @"customDomainVerificationId", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationCustomDomainVerificationId { get; } + /// Dns suffix for the environment domain + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dns suffix for the environment domain", + SerializedName = @"dnsSuffix", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationDnsSuffix { get; set; } + /// Certificate expiration date. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate expiration date.", + SerializedName = @"expirationDate", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CustomDomainConfigurationExpirationDate { get; } + /// Subject name of the certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Subject name of the certificate.", + SerializedName = @"subjectName", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationSubjectName { get; } + /// Certificate thumbprint. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Certificate thumbprint.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string CustomDomainConfigurationThumbprint { get; } + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application Insights connection string used by Dapr to export Service to Service communication telemetry", + SerializedName = @"daprAIConnectionString", + PossibleTypes = new [] { typeof(string) })] + string DaprAiConnectionString { get; set; } + /// + /// Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry", + SerializedName = @"daprAIInstrumentationKey", + PossibleTypes = new [] { typeof(string) })] + string DaprAiInstrumentationKey { get; set; } + /// Default Domain Name for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Default Domain Name for the cluster", + SerializedName = @"defaultDomain", + PossibleTypes = new [] { typeof(string) })] + string DefaultDomain { get; } + /// Any errors that occurred during deployment or deployment validation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Any errors that occurred during deployment or deployment validation", + SerializedName = @"deploymentErrors", + PossibleTypes = new [] { typeof(string) })] + string DeploymentError { get; } + /// The endpoint of the eventstream of the Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The endpoint of the eventstream of the Environment.", + SerializedName = @"eventStreamEndpoint", + PossibleTypes = new [] { typeof(string) })] + string EventStreamEndpoint { get; } + /// Log analytics customer id + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log analytics customer id", + SerializedName = @"customerId", + PossibleTypes = new [] { typeof(string) })] + string LogAnalyticConfigurationCustomerId { get; set; } + /// Log analytics customer key + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log analytics customer key", + SerializedName = @"sharedKey", + PossibleTypes = new [] { typeof(string) })] + string LogAnalyticConfigurationSharedKey { get; set; } + /// Outbound type for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Outbound type for the cluster", + SerializedName = @"outBoundType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType? OutboundSettingOutBoundType { get; set; } + /// Virtual Appliance IP used as the Egress controller for the Environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Virtual Appliance IP used as the Egress controller for the Environment", + SerializedName = @"virtualNetworkApplianceIp", + PossibleTypes = new [] { typeof(string) })] + string OutboundSettingVirtualNetworkApplianceIP { get; set; } + /// Provisioning state of the Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Environment.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState? ProvisioningState { get; } + /// Static IP of the Environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Static IP of the Environment", + SerializedName = @"staticIp", + PossibleTypes = new [] { typeof(string) })] + string StaticIP { get; } + /// + /// CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges.", + SerializedName = @"dockerBridgeCidr", + PossibleTypes = new [] { typeof(string) })] + string VnetConfigurationDockerBridgeCidr { get; set; } + /// + /// Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + /// Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. Must not overlap with any other provided IP ranges.", + SerializedName = @"infrastructureSubnetId", + PossibleTypes = new [] { typeof(string) })] + string VnetConfigurationInfrastructureSubnetId { get; set; } + /// + /// Boolean indicating the environment only has an internal load balancer. These environments do not have a public static + /// IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean indicating the environment only has an internal load balancer. These environments do not have a public static IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property", + SerializedName = @"internal", + PossibleTypes = new [] { typeof(bool) })] + bool? VnetConfigurationInternal { get; set; } + /// + /// IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any + /// other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any other provided IP ranges.", + SerializedName = @"platformReservedCidr", + PossibleTypes = new [] { typeof(string) })] + string VnetConfigurationPlatformReservedCidr { get; set; } + /// + /// An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @" An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server.", + SerializedName = @"platformReservedDnsIP", + PossibleTypes = new [] { typeof(string) })] + string VnetConfigurationPlatformReservedDnsIP { get; set; } + /// + /// Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet + /// defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges.", + SerializedName = @"runtimeSubnetId", + PossibleTypes = new [] { typeof(string) })] + string VnetConfigurationRuntimeSubnetId { get; set; } + /// Workload profiles configured for the Managed Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Workload profiles configured for the Managed Environment.", + SerializedName = @"workloadProfiles", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[] WorkloadProfile { get; set; } + /// Whether or not this Managed Environment is zone-redundant. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether or not this Managed Environment is zone-redundant.", + SerializedName = @"zoneRedundant", + PossibleTypes = new [] { typeof(bool) })] + bool? ZoneRedundant { get; set; } + + } + /// Managed environment resource specific properties + internal partial interface IManagedEnvironmentPropertiesInternal + + { + /// Logs destination + string AppLogConfigurationDestination { get; set; } + /// Log Analytics configuration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ILogAnalyticsConfiguration AppLogConfigurationLogAnalyticsConfiguration { get; set; } + /// + /// Cluster configuration which enables the log daemon to export + /// app logs to a destination. Currently only "log-analytics" is + /// supported + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAppLogsConfiguration AppLogsConfiguration { get; set; } + /// Custom domain configuration for the environment + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomainConfiguration CustomDomainConfiguration { get; set; } + /// Certificate password + byte[] CustomDomainConfigurationCertificatePassword { get; set; } + /// PFX or PEM blob + byte[] CustomDomainConfigurationCertificateValue { get; set; } + /// Id used to verify domain name ownership + string CustomDomainConfigurationCustomDomainVerificationId { get; set; } + /// Dns suffix for the environment domain + string CustomDomainConfigurationDnsSuffix { get; set; } + /// Certificate expiration date. + global::System.DateTime? CustomDomainConfigurationExpirationDate { get; set; } + /// Subject name of the certificate. + string CustomDomainConfigurationSubjectName { get; set; } + /// Certificate thumbprint. + string CustomDomainConfigurationThumbprint { get; set; } + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + string DaprAiConnectionString { get; set; } + /// + /// Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + /// + string DaprAiInstrumentationKey { get; set; } + /// Default Domain Name for the cluster + string DefaultDomain { get; set; } + /// Any errors that occurred during deployment or deployment validation + string DeploymentError { get; set; } + /// The endpoint of the eventstream of the Environment. + string EventStreamEndpoint { get; set; } + /// Log analytics customer id + string LogAnalyticConfigurationCustomerId { get; set; } + /// Log analytics customer key + string LogAnalyticConfigurationSharedKey { get; set; } + /// Outbound type for the cluster + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType? OutboundSettingOutBoundType { get; set; } + /// Virtual Appliance IP used as the Egress controller for the Environment + string OutboundSettingVirtualNetworkApplianceIP { get; set; } + /// Provisioning state of the Environment. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState? ProvisioningState { get; set; } + /// Static IP of the Environment + string StaticIP { get; set; } + /// Vnet configuration for the environment + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration VnetConfiguration { get; set; } + /// + /// CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges. + /// + string VnetConfigurationDockerBridgeCidr { get; set; } + /// + /// Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + /// Must not overlap with any other provided IP ranges. + /// + string VnetConfigurationInfrastructureSubnetId { get; set; } + /// + /// Boolean indicating the environment only has an internal load balancer. These environments do not have a public static + /// IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + /// + bool? VnetConfigurationInternal { get; set; } + /// Configuration used to control the Environment Egress outbound traffic + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings VnetConfigurationOutboundSetting { get; set; } + /// + /// IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any + /// other provided IP ranges. + /// + string VnetConfigurationPlatformReservedCidr { get; set; } + /// + /// An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + /// + string VnetConfigurationPlatformReservedDnsIP { get; set; } + /// + /// Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet + /// defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges. + /// + string VnetConfigurationRuntimeSubnetId { get; set; } + /// Workload profiles configured for the Managed Environment. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[] WorkloadProfile { get; set; } + /// Whether or not this Managed Environment is zone-redundant. + bool? ZoneRedundant { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.json.cs new file mode 100644 index 000000000000..dd15d62ba93b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentProperties.json.cs @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Managed environment resource specific properties + public partial class ManagedEnvironmentProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ManagedEnvironmentProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedEnvironmentProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_vnetConfiguration = If( json?.PropertyT("vnetConfiguration"), out var __jsonVnetConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VnetConfiguration.FromJson(__jsonVnetConfiguration) : VnetConfiguration;} + {_appLogsConfiguration = If( json?.PropertyT("appLogsConfiguration"), out var __jsonAppLogsConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AppLogsConfiguration.FromJson(__jsonAppLogsConfiguration) : AppLogsConfiguration;} + {_customDomainConfiguration = If( json?.PropertyT("customDomainConfiguration"), out var __jsonCustomDomainConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomDomainConfiguration.FromJson(__jsonCustomDomainConfiguration) : CustomDomainConfiguration;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_daprAiInstrumentationKey = If( json?.PropertyT("daprAIInstrumentationKey"), out var __jsonDaprAiInstrumentationKey) ? (string)__jsonDaprAiInstrumentationKey : (string)DaprAiInstrumentationKey;} + {_daprAiConnectionString = If( json?.PropertyT("daprAIConnectionString"), out var __jsonDaprAiConnectionString) ? (string)__jsonDaprAiConnectionString : (string)DaprAiConnectionString;} + {_deploymentError = If( json?.PropertyT("deploymentErrors"), out var __jsonDeploymentErrors) ? (string)__jsonDeploymentErrors : (string)DeploymentError;} + {_defaultDomain = If( json?.PropertyT("defaultDomain"), out var __jsonDefaultDomain) ? (string)__jsonDefaultDomain : (string)DefaultDomain;} + {_staticIP = If( json?.PropertyT("staticIp"), out var __jsonStaticIP) ? (string)__jsonStaticIP : (string)StaticIP;} + {_zoneRedundant = If( json?.PropertyT("zoneRedundant"), out var __jsonZoneRedundant) ? (bool?)__jsonZoneRedundant : ZoneRedundant;} + {_eventStreamEndpoint = If( json?.PropertyT("eventStreamEndpoint"), out var __jsonEventStreamEndpoint) ? (string)__jsonEventStreamEndpoint : (string)EventStreamEndpoint;} + {_workloadProfile = If( json?.PropertyT("workloadProfiles"), out var __jsonWorkloadProfiles) ? If( __jsonWorkloadProfiles as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfile.FromJson(__u) )) ))() : null : WorkloadProfile;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._vnetConfiguration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._vnetConfiguration.ToJson(null,serializationMode) : null, "vnetConfiguration" ,container.Add ); + AddIf( null != this._appLogsConfiguration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._appLogsConfiguration.ToJson(null,serializationMode) : null, "appLogsConfiguration" ,container.Add ); + AddIf( null != this._customDomainConfiguration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._customDomainConfiguration.ToJson(null,serializationMode) : null, "customDomainConfiguration" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != (((object)this._daprAiInstrumentationKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._daprAiInstrumentationKey.ToString()) : null, "daprAIInstrumentationKey" ,container.Add ); + AddIf( null != (((object)this._daprAiConnectionString)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._daprAiConnectionString.ToString()) : null, "daprAIConnectionString" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._deploymentError)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._deploymentError.ToString()) : null, "deploymentErrors" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._defaultDomain)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._defaultDomain.ToString()) : null, "defaultDomain" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._staticIP)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._staticIP.ToString()) : null, "staticIp" ,container.Add ); + } + AddIf( null != this._zoneRedundant ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._zoneRedundant) : null, "zoneRedundant" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._eventStreamEndpoint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._eventStreamEndpoint.ToString()) : null, "eventStreamEndpoint" ,container.Add ); + } + if (null != this._workloadProfile) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._workloadProfile ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("workloadProfiles",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.PowerShell.cs new file mode 100644 index 000000000000..10c1b992b083 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.PowerShell.cs @@ -0,0 +1,266 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Storage resource for managedEnvironment. + [System.ComponentModel.TypeConverter(typeof(ManagedEnvironmentStorageTypeConverter))] + public partial class ManagedEnvironmentStorage + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedEnvironmentStorage(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedEnvironmentStorage(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedEnvironmentStorage(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentStoragePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("AzureFile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFile = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties) content.GetValueForProperty("AzureFile",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFile, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFilePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("AzureFileAccessMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileAccessMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode?) content.GetValueForProperty("AzureFileAccessMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileAccessMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode.CreateFrom); + } + if (content.Contains("AzureFileAccountName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileAccountName = (string) content.GetValueForProperty("AzureFileAccountName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileAccountName, global::System.Convert.ToString); + } + if (content.Contains("AzureFileAccountKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileAccountKey = (string) content.GetValueForProperty("AzureFileAccountKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileAccountKey, global::System.Convert.ToString); + } + if (content.Contains("AzureFileShareName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileShareName = (string) content.GetValueForProperty("AzureFileShareName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileShareName, 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 ManagedEnvironmentStorage(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentStoragePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("AzureFile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFile = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties) content.GetValueForProperty("AzureFile",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFile, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFilePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("AzureFileAccessMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileAccessMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode?) content.GetValueForProperty("AzureFileAccessMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileAccessMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode.CreateFrom); + } + if (content.Contains("AzureFileAccountName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileAccountName = (string) content.GetValueForProperty("AzureFileAccountName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileAccountName, global::System.Convert.ToString); + } + if (content.Contains("AzureFileAccountKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileAccountKey = (string) content.GetValueForProperty("AzureFileAccountKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileAccountKey, global::System.Convert.ToString); + } + if (content.Contains("AzureFileShareName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileShareName = (string) content.GetValueForProperty("AzureFileShareName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal)this).AzureFileShareName, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Storage resource for managedEnvironment. + [System.ComponentModel.TypeConverter(typeof(ManagedEnvironmentStorageTypeConverter))] + public partial interface IManagedEnvironmentStorage + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.TypeConverter.cs new file mode 100644 index 000000000000..945ab47d4359 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedEnvironmentStorageTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedEnvironmentStorage.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedEnvironmentStorage.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedEnvironmentStorage.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.cs new file mode 100644 index 000000000000..1ed4a47b019e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.cs @@ -0,0 +1,184 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Storage resource for managedEnvironment. + public partial class ManagedEnvironmentStorage : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(); + + /// Access mode for storage + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AzureFileAccessMode { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)Property).AzureFileAccessMode; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)Property).AzureFileAccessMode = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode)""); } + + /// Storage account key for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureFileAccountKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)Property).AzureFileAccountKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)Property).AzureFileAccountKey = value ?? null; } + + /// Storage account name for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureFileAccountName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)Property).AzureFileAccountName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)Property).AzureFileAccountName = value ?? null; } + + /// Azure file share name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureFileShareName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)Property).AzureFileShareName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)Property).AzureFileShareName = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; } + + /// Internal Acessors for AzureFile + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal.AzureFile { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)Property).AzureFile; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)Property).AzureFile = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentStorageProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties _property; + + /// Storage properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentStorageProperties()); set => this._property = value; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ManagedEnvironmentStorage() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Storage resource for managedEnvironment. + public partial interface IManagedEnvironmentStorage : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource + { + /// Access mode for storage + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Access mode for storage", + SerializedName = @"accessMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AzureFileAccessMode { get; set; } + /// Storage account key for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage account key for azure file.", + SerializedName = @"accountKey", + PossibleTypes = new [] { typeof(string) })] + string AzureFileAccountKey { get; set; } + /// Storage account name for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage account name for azure file.", + SerializedName = @"accountName", + PossibleTypes = new [] { typeof(string) })] + string AzureFileAccountName { get; set; } + /// Azure file share name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure file share name.", + SerializedName = @"shareName", + PossibleTypes = new [] { typeof(string) })] + string AzureFileShareName { get; set; } + + } + /// Storage resource for managedEnvironment. + internal partial interface IManagedEnvironmentStorageInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal + { + /// Azure file properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties AzureFile { get; set; } + /// Access mode for storage + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AzureFileAccessMode { get; set; } + /// Storage account key for azure file. + string AzureFileAccountKey { get; set; } + /// Storage account name for azure file. + string AzureFileAccountName { get; set; } + /// Azure file share name. + string AzureFileShareName { get; set; } + /// Storage properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.json.cs new file mode 100644 index 000000000000..a2ab13d0e835 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorage.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Storage resource for managedEnvironment. + public partial class ManagedEnvironmentStorage + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ManagedEnvironmentStorage(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedEnvironmentStorage(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentStorageProperties.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.PowerShell.cs new file mode 100644 index 000000000000..56cef7e6c0a0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.PowerShell.cs @@ -0,0 +1,180 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Storage properties + [System.ComponentModel.TypeConverter(typeof(ManagedEnvironmentStoragePropertiesTypeConverter))] + public partial class ManagedEnvironmentStorageProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedEnvironmentStorageProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedEnvironmentStorageProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedEnvironmentStorageProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureFile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFile = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties) content.GetValueForProperty("AzureFile",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFile, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFilePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("AzureFileAccessMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileAccessMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode?) content.GetValueForProperty("AzureFileAccessMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileAccessMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode.CreateFrom); + } + if (content.Contains("AzureFileAccountName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileAccountName = (string) content.GetValueForProperty("AzureFileAccountName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileAccountName, global::System.Convert.ToString); + } + if (content.Contains("AzureFileAccountKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileAccountKey = (string) content.GetValueForProperty("AzureFileAccountKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileAccountKey, global::System.Convert.ToString); + } + if (content.Contains("AzureFileShareName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileShareName = (string) content.GetValueForProperty("AzureFileShareName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileShareName, 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 ManagedEnvironmentStorageProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureFile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFile = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties) content.GetValueForProperty("AzureFile",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFile, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFilePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("AzureFileAccessMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileAccessMode = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode?) content.GetValueForProperty("AzureFileAccessMode",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileAccessMode, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode.CreateFrom); + } + if (content.Contains("AzureFileAccountName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileAccountName = (string) content.GetValueForProperty("AzureFileAccountName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileAccountName, global::System.Convert.ToString); + } + if (content.Contains("AzureFileAccountKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileAccountKey = (string) content.GetValueForProperty("AzureFileAccountKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileAccountKey, global::System.Convert.ToString); + } + if (content.Contains("AzureFileShareName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileShareName = (string) content.GetValueForProperty("AzureFileShareName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal)this).AzureFileShareName, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Storage properties + [System.ComponentModel.TypeConverter(typeof(ManagedEnvironmentStoragePropertiesTypeConverter))] + public partial interface IManagedEnvironmentStorageProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.TypeConverter.cs new file mode 100644 index 000000000000..855472e6a6d6 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.TypeConverter.cs @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedEnvironmentStoragePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedEnvironmentStorageProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedEnvironmentStorageProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedEnvironmentStorageProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.cs new file mode 100644 index 000000000000..68de801a1171 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Storage properties + public partial class ManagedEnvironmentStorageProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties _azureFile; + + /// Azure file properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties AzureFile { get => (this._azureFile = this._azureFile ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFileProperties()); set => this._azureFile = value; } + + /// Access mode for storage + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AzureFileAccessMode { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).AccessMode; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).AccessMode = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode)""); } + + /// Storage account key for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureFileAccountKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).AccountKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).AccountKey = value ?? null; } + + /// Storage account name for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureFileAccountName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).AccountName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).AccountName = value ?? null; } + + /// Azure file share name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureFileShareName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).ShareName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFilePropertiesInternal)AzureFile).ShareName = value ?? null; } + + /// Internal Acessors for AzureFile + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragePropertiesInternal.AzureFile { get => (this._azureFile = this._azureFile ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFileProperties()); set { {_azureFile = value;} } } + + /// Creates an new instance. + public ManagedEnvironmentStorageProperties() + { + + } + } + /// Storage properties + public partial interface IManagedEnvironmentStorageProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Access mode for storage + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Access mode for storage", + SerializedName = @"accessMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AzureFileAccessMode { get; set; } + /// Storage account key for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage account key for azure file.", + SerializedName = @"accountKey", + PossibleTypes = new [] { typeof(string) })] + string AzureFileAccountKey { get; set; } + /// Storage account name for azure file. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage account name for azure file.", + SerializedName = @"accountName", + PossibleTypes = new [] { typeof(string) })] + string AzureFileAccountName { get; set; } + /// Azure file share name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure file share name.", + SerializedName = @"shareName", + PossibleTypes = new [] { typeof(string) })] + string AzureFileShareName { get; set; } + + } + /// Storage properties + internal partial interface IManagedEnvironmentStoragePropertiesInternal + + { + /// Azure file properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureFileProperties AzureFile { get; set; } + /// Access mode for storage + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode? AzureFileAccessMode { get; set; } + /// Storage account key for azure file. + string AzureFileAccountKey { get; set; } + /// Storage account name for azure file. + string AzureFileAccountName { get; set; } + /// Azure file share name. + string AzureFileShareName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.json.cs new file mode 100644 index 000000000000..245a1c3df3d9 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStorageProperties.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Storage properties + public partial class ManagedEnvironmentStorageProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorageProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ManagedEnvironmentStorageProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedEnvironmentStorageProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_azureFile = If( json?.PropertyT("azureFile"), out var __jsonAzureFile) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureFileProperties.FromJson(__jsonAzureFile) : AzureFile;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._azureFile ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._azureFile.ToJson(null,serializationMode) : null, "azureFile" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.PowerShell.cs new file mode 100644 index 000000000000..cf86e10f03fe --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.PowerShell.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Collection of Storage for Environments + [System.ComponentModel.TypeConverter(typeof(ManagedEnvironmentStoragesCollectionTypeConverter))] + public partial class ManagedEnvironmentStoragesCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedEnvironmentStoragesCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedEnvironmentStoragesCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedEnvironmentStoragesCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentStorageTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ManagedEnvironmentStoragesCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentStorageTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of Storage for Environments + [System.ComponentModel.TypeConverter(typeof(ManagedEnvironmentStoragesCollectionTypeConverter))] + public partial interface IManagedEnvironmentStoragesCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.TypeConverter.cs new file mode 100644 index 000000000000..823321a5d0fd --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedEnvironmentStoragesCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedEnvironmentStoragesCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedEnvironmentStoragesCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedEnvironmentStoragesCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.cs new file mode 100644 index 000000000000..587f36792d41 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of Storage for Environments + public partial class ManagedEnvironmentStoragesCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollectionInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage[] _value; + + /// Collection of storage resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ManagedEnvironmentStoragesCollection() + { + + } + } + /// Collection of Storage for Environments + public partial interface IManagedEnvironmentStoragesCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Collection of storage resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of storage resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage[] Value { get; set; } + + } + /// Collection of Storage for Environments + internal partial interface IManagedEnvironmentStoragesCollectionInternal + + { + /// Collection of storage resources. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.json.cs new file mode 100644 index 000000000000..3c1cb158770c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentStoragesCollection.json.cs @@ -0,0 +1,117 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of Storage for Environments + public partial class ManagedEnvironmentStoragesCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ManagedEnvironmentStoragesCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedEnvironmentStoragesCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentStorage.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.PowerShell.cs new file mode 100644 index 000000000000..f711165f025f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Collection of Environments + [System.ComponentModel.TypeConverter(typeof(ManagedEnvironmentsCollectionTypeConverter))] + public partial class ManagedEnvironmentsCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedEnvironmentsCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedEnvironmentsCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedEnvironmentsCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollectionInternal)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 ManagedEnvironmentsCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollectionInternal)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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of Environments + [System.ComponentModel.TypeConverter(typeof(ManagedEnvironmentsCollectionTypeConverter))] + public partial interface IManagedEnvironmentsCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.TypeConverter.cs new file mode 100644 index 000000000000..28431fcdee2e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedEnvironmentsCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedEnvironmentsCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedEnvironmentsCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedEnvironmentsCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.cs new file mode 100644 index 000000000000..b1ad563194ba --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of Environments + public partial class ManagedEnvironmentsCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollectionInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollectionInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment[] _value; + + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ManagedEnvironmentsCollection() + { + + } + } + /// Collection of Environments + public partial interface IManagedEnvironmentsCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to next page of resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment[] Value { get; set; } + + } + /// Collection of Environments + internal partial interface IManagedEnvironmentsCollectionInternal + + { + /// Link to next page of resources. + string NextLink { get; set; } + /// Collection of resources. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.json.cs new file mode 100644 index 000000000000..5eeb04df0e03 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ManagedEnvironmentsCollection.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of Environments + public partial class ManagedEnvironmentsCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ManagedEnvironmentsCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedEnvironmentsCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironment.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/Nonce.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.PowerShell.cs new file mode 100644 index 000000000000..214a7275bab5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the nonce used in the login flow. + [System.ComponentModel.TypeConverter(typeof(NonceTypeConverter))] + public partial class Nonce + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.INonce DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Nonce(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Nonce(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Nonce(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ValidateNonce")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonceInternal)this).ValidateNonce = (bool?) content.GetValueForProperty("ValidateNonce",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonceInternal)this).ValidateNonce, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ExpirationInterval")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonceInternal)this).ExpirationInterval = (string) content.GetValueForProperty("ExpirationInterval",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonceInternal)this).ExpirationInterval, 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 Nonce(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ValidateNonce")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonceInternal)this).ValidateNonce = (bool?) content.GetValueForProperty("ValidateNonce",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonceInternal)this).ValidateNonce, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ExpirationInterval")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonceInternal)this).ExpirationInterval = (string) content.GetValueForProperty("ExpirationInterval",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonceInternal)this).ExpirationInterval, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the nonce used in the login flow. + [System.ComponentModel.TypeConverter(typeof(NonceTypeConverter))] + public partial interface INonce + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.TypeConverter.cs new file mode 100644 index 000000000000..a27ab1e5f633 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class NonceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Nonce.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Nonce.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Nonce.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.cs new file mode 100644 index 000000000000..2f3f9ed09d72 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the nonce used in the login flow. + public partial class Nonce : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonceInternal + { + + /// Backing field for property. + private string _expirationInterval; + + /// The time after the request is made when the nonce should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ExpirationInterval { get => this._expirationInterval; set => this._expirationInterval = value; } + + /// Backing field for property. + private bool? _validateNonce; + + /// + /// false if the nonce should not be validated while completing the login flow; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? ValidateNonce { get => this._validateNonce; set => this._validateNonce = value; } + + /// Creates an new instance. + public Nonce() + { + + } + } + /// The configuration settings of the nonce used in the login flow. + public partial interface INonce : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The time after the request is made when the nonce should expire. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time after the request is made when the nonce should expire.", + SerializedName = @"nonceExpirationInterval", + PossibleTypes = new [] { typeof(string) })] + string ExpirationInterval { get; set; } + /// + /// false if the nonce should not be validated while completing the login flow; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the nonce should not be validated while completing the login flow; otherwise, true.", + SerializedName = @"validateNonce", + PossibleTypes = new [] { typeof(bool) })] + bool? ValidateNonce { get; set; } + + } + /// The configuration settings of the nonce used in the login flow. + internal partial interface INonceInternal + + { + /// The time after the request is made when the nonce should expire. + string ExpirationInterval { get; set; } + /// + /// false if the nonce should not be validated while completing the login flow; otherwise, true. + /// + bool? ValidateNonce { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.json.cs new file mode 100644 index 000000000000..2dec5eee3b87 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Nonce.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the nonce used in the login flow. + public partial class Nonce + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.INonce FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Nonce(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Nonce(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_validateNonce = If( json?.PropertyT("validateNonce"), out var __jsonValidateNonce) ? (bool?)__jsonValidateNonce : ValidateNonce;} + {_expirationInterval = If( json?.PropertyT("nonceExpirationInterval"), out var __jsonNonceExpirationInterval) ? (string)__jsonNonceExpirationInterval : (string)ExpirationInterval;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._validateNonce ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._validateNonce) : null, "validateNonce" ,container.Add ); + AddIf( null != (((object)this._expirationInterval)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._expirationInterval.ToString()) : null, "nonceExpirationInterval" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.PowerShell.cs new file mode 100644 index 000000000000..6feab46338f6 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The authentication client credentials of the custom Open ID Connect provider. + [System.ComponentModel.TypeConverter(typeof(OpenIdConnectClientCredentialTypeConverter))] + public partial class OpenIdConnectClientCredential + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OpenIdConnectClientCredential(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OpenIdConnectClientCredential(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OpenIdConnectClientCredential(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Method")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredentialInternal)this).Method = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod?) content.GetValueForProperty("Method",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredentialInternal)this).Method, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod.CreateFrom); + } + if (content.Contains("ClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredentialInternal)this).ClientSecretSettingName = (string) content.GetValueForProperty("ClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredentialInternal)this).ClientSecretSettingName, 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 OpenIdConnectClientCredential(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Method")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredentialInternal)this).Method = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod?) content.GetValueForProperty("Method",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredentialInternal)this).Method, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod.CreateFrom); + } + if (content.Contains("ClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredentialInternal)this).ClientSecretSettingName = (string) content.GetValueForProperty("ClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredentialInternal)this).ClientSecretSettingName, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The authentication client credentials of the custom Open ID Connect provider. + [System.ComponentModel.TypeConverter(typeof(OpenIdConnectClientCredentialTypeConverter))] + public partial interface IOpenIdConnectClientCredential + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.TypeConverter.cs new file mode 100644 index 000000000000..cd534b12f2fb --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OpenIdConnectClientCredentialTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OpenIdConnectClientCredential.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OpenIdConnectClientCredential.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OpenIdConnectClientCredential.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.cs new file mode 100644 index 000000000000..0844671e7847 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The authentication client credentials of the custom Open ID Connect provider. + public partial class OpenIdConnectClientCredential : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredentialInternal + { + + /// Backing field for property. + private string _clientSecretSettingName; + + /// + /// The app setting that contains the client secret for the custom Open ID Connect provider. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientSecretSettingName { get => this._clientSecretSettingName; set => this._clientSecretSettingName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod? _method; + + /// The method that should be used to authenticate the user. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod? Method { get => this._method; set => this._method = value; } + + /// Creates an new instance. + public OpenIdConnectClientCredential() + { + + } + } + /// The authentication client credentials of the custom Open ID Connect provider. + public partial interface IOpenIdConnectClientCredential : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// The app setting that contains the client secret for the custom Open ID Connect provider. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting that contains the client secret for the custom Open ID Connect provider.", + SerializedName = @"clientSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string ClientSecretSettingName { get; set; } + /// The method that should be used to authenticate the user. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The method that should be used to authenticate the user.", + SerializedName = @"method", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod? Method { get; set; } + + } + /// The authentication client credentials of the custom Open ID Connect provider. + internal partial interface IOpenIdConnectClientCredentialInternal + + { + /// + /// The app setting that contains the client secret for the custom Open ID Connect provider. + /// + string ClientSecretSettingName { get; set; } + /// The method that should be used to authenticate the user. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod? Method { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.json.cs new file mode 100644 index 000000000000..9c331d52d959 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectClientCredential.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The authentication client credentials of the custom Open ID Connect provider. + public partial class OpenIdConnectClientCredential + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new OpenIdConnectClientCredential(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal OpenIdConnectClientCredential(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_method = If( json?.PropertyT("method"), out var __jsonMethod) ? (string)__jsonMethod : (string)Method;} + {_clientSecretSettingName = If( json?.PropertyT("clientSecretSettingName"), out var __jsonClientSecretSettingName) ? (string)__jsonClientSecretSettingName : (string)ClientSecretSettingName;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._method)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._method.ToString()) : null, "method" ,container.Add ); + AddIf( null != (((object)this._clientSecretSettingName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientSecretSettingName.ToString()) : null, "clientSecretSettingName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.PowerShell.cs new file mode 100644 index 000000000000..6cfe7f925c89 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.PowerShell.cs @@ -0,0 +1,180 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The configuration settings of the endpoints used for the custom Open ID Connect provider. + /// + [System.ComponentModel.TypeConverter(typeof(OpenIdConnectConfigTypeConverter))] + public partial class OpenIdConnectConfig + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OpenIdConnectConfig(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OpenIdConnectConfig(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OpenIdConnectConfig(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AuthorizationEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).AuthorizationEndpoint = (string) content.GetValueForProperty("AuthorizationEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).AuthorizationEndpoint, global::System.Convert.ToString); + } + if (content.Contains("TokenEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).TokenEndpoint = (string) content.GetValueForProperty("TokenEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).TokenEndpoint, global::System.Convert.ToString); + } + if (content.Contains("Issuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).Issuer, global::System.Convert.ToString); + } + if (content.Contains("CertificationUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).CertificationUri = (string) content.GetValueForProperty("CertificationUri",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).CertificationUri, global::System.Convert.ToString); + } + if (content.Contains("WellKnownOpenIdConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).WellKnownOpenIdConfiguration = (string) content.GetValueForProperty("WellKnownOpenIdConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).WellKnownOpenIdConfiguration, 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 OpenIdConnectConfig(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AuthorizationEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).AuthorizationEndpoint = (string) content.GetValueForProperty("AuthorizationEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).AuthorizationEndpoint, global::System.Convert.ToString); + } + if (content.Contains("TokenEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).TokenEndpoint = (string) content.GetValueForProperty("TokenEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).TokenEndpoint, global::System.Convert.ToString); + } + if (content.Contains("Issuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).Issuer, global::System.Convert.ToString); + } + if (content.Contains("CertificationUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).CertificationUri = (string) content.GetValueForProperty("CertificationUri",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).CertificationUri, global::System.Convert.ToString); + } + if (content.Contains("WellKnownOpenIdConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).WellKnownOpenIdConfiguration = (string) content.GetValueForProperty("WellKnownOpenIdConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)this).WellKnownOpenIdConfiguration, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the endpoints used for the custom Open ID Connect provider. + [System.ComponentModel.TypeConverter(typeof(OpenIdConnectConfigTypeConverter))] + public partial interface IOpenIdConnectConfig + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.TypeConverter.cs new file mode 100644 index 000000000000..f68d44526e36 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OpenIdConnectConfigTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OpenIdConnectConfig.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OpenIdConnectConfig.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OpenIdConnectConfig.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.cs new file mode 100644 index 000000000000..6bb40e34f61b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the endpoints used for the custom Open ID Connect provider. + /// + public partial class OpenIdConnectConfig : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal + { + + /// Backing field for property. + private string _authorizationEndpoint; + + /// The endpoint to be used to make an authorization request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string AuthorizationEndpoint { get => this._authorizationEndpoint; set => this._authorizationEndpoint = value; } + + /// Backing field for property. + private string _certificationUri; + + /// The endpoint that provides the keys necessary to validate the token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string CertificationUri { get => this._certificationUri; set => this._certificationUri = value; } + + /// Backing field for property. + private string _issuer; + + /// The endpoint that issues the token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Issuer { get => this._issuer; set => this._issuer = value; } + + /// Backing field for property. + private string _tokenEndpoint; + + /// The endpoint to be used to request a token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string TokenEndpoint { get => this._tokenEndpoint; set => this._tokenEndpoint = value; } + + /// Backing field for property. + private string _wellKnownOpenIdConfiguration; + + /// The endpoint that contains all the configuration endpoints for the provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string WellKnownOpenIdConfiguration { get => this._wellKnownOpenIdConfiguration; set => this._wellKnownOpenIdConfiguration = value; } + + /// Creates an new instance. + public OpenIdConnectConfig() + { + + } + } + /// The configuration settings of the endpoints used for the custom Open ID Connect provider. + public partial interface IOpenIdConnectConfig : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The endpoint to be used to make an authorization request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint to be used to make an authorization request.", + SerializedName = @"authorizationEndpoint", + PossibleTypes = new [] { typeof(string) })] + string AuthorizationEndpoint { get; set; } + /// The endpoint that provides the keys necessary to validate the token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint that provides the keys necessary to validate the token.", + SerializedName = @"certificationUri", + PossibleTypes = new [] { typeof(string) })] + string CertificationUri { get; set; } + /// The endpoint that issues the token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint that issues the token.", + SerializedName = @"issuer", + PossibleTypes = new [] { typeof(string) })] + string Issuer { get; set; } + /// The endpoint to be used to request a token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint to be used to request a token.", + SerializedName = @"tokenEndpoint", + PossibleTypes = new [] { typeof(string) })] + string TokenEndpoint { get; set; } + /// The endpoint that contains all the configuration endpoints for the provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint that contains all the configuration endpoints for the provider.", + SerializedName = @"wellKnownOpenIdConfiguration", + PossibleTypes = new [] { typeof(string) })] + string WellKnownOpenIdConfiguration { get; set; } + + } + /// The configuration settings of the endpoints used for the custom Open ID Connect provider. + internal partial interface IOpenIdConnectConfigInternal + + { + /// The endpoint to be used to make an authorization request. + string AuthorizationEndpoint { get; set; } + /// The endpoint that provides the keys necessary to validate the token. + string CertificationUri { get; set; } + /// The endpoint that issues the token. + string Issuer { get; set; } + /// The endpoint to be used to request a token. + string TokenEndpoint { get; set; } + /// The endpoint that contains all the configuration endpoints for the provider. + string WellKnownOpenIdConfiguration { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.json.cs new file mode 100644 index 000000000000..ee1f14c69406 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectConfig.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the endpoints used for the custom Open ID Connect provider. + /// + public partial class OpenIdConnectConfig + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new OpenIdConnectConfig(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal OpenIdConnectConfig(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_authorizationEndpoint = If( json?.PropertyT("authorizationEndpoint"), out var __jsonAuthorizationEndpoint) ? (string)__jsonAuthorizationEndpoint : (string)AuthorizationEndpoint;} + {_tokenEndpoint = If( json?.PropertyT("tokenEndpoint"), out var __jsonTokenEndpoint) ? (string)__jsonTokenEndpoint : (string)TokenEndpoint;} + {_issuer = If( json?.PropertyT("issuer"), out var __jsonIssuer) ? (string)__jsonIssuer : (string)Issuer;} + {_certificationUri = If( json?.PropertyT("certificationUri"), out var __jsonCertificationUri) ? (string)__jsonCertificationUri : (string)CertificationUri;} + {_wellKnownOpenIdConfiguration = If( json?.PropertyT("wellKnownOpenIdConfiguration"), out var __jsonWellKnownOpenIdConfiguration) ? (string)__jsonWellKnownOpenIdConfiguration : (string)WellKnownOpenIdConfiguration;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._authorizationEndpoint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._authorizationEndpoint.ToString()) : null, "authorizationEndpoint" ,container.Add ); + AddIf( null != (((object)this._tokenEndpoint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._tokenEndpoint.ToString()) : null, "tokenEndpoint" ,container.Add ); + AddIf( null != (((object)this._issuer)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._issuer.ToString()) : null, "issuer" ,container.Add ); + AddIf( null != (((object)this._certificationUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._certificationUri.ToString()) : null, "certificationUri" ,container.Add ); + AddIf( null != (((object)this._wellKnownOpenIdConfiguration)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._wellKnownOpenIdConfiguration.ToString()) : null, "wellKnownOpenIdConfiguration" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.PowerShell.cs new file mode 100644 index 000000000000..1cff88296a8e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.PowerShell.cs @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The configuration settings of the login flow of the custom Open ID Connect provider. + /// + [System.ComponentModel.TypeConverter(typeof(OpenIdConnectLoginTypeConverter))] + public partial class OpenIdConnectLogin + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OpenIdConnectLogin(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OpenIdConnectLogin(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OpenIdConnectLogin(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("NameClaimType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLoginInternal)this).NameClaimType = (string) content.GetValueForProperty("NameClaimType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLoginInternal)this).NameClaimType, global::System.Convert.ToString); + } + if (content.Contains("Scope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLoginInternal)this).Scope = (string[]) content.GetValueForProperty("Scope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLoginInternal)this).Scope, __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 OpenIdConnectLogin(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("NameClaimType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLoginInternal)this).NameClaimType = (string) content.GetValueForProperty("NameClaimType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLoginInternal)this).NameClaimType, global::System.Convert.ToString); + } + if (content.Contains("Scope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLoginInternal)this).Scope = (string[]) content.GetValueForProperty("Scope",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLoginInternal)this).Scope, __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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the login flow of the custom Open ID Connect provider. + [System.ComponentModel.TypeConverter(typeof(OpenIdConnectLoginTypeConverter))] + public partial interface IOpenIdConnectLogin + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.TypeConverter.cs new file mode 100644 index 000000000000..66e1d5f6091f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OpenIdConnectLoginTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OpenIdConnectLogin.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OpenIdConnectLogin.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OpenIdConnectLogin.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.cs new file mode 100644 index 000000000000..a22258f1c0d2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.cs @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the login flow of the custom Open ID Connect provider. + /// + public partial class OpenIdConnectLogin : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLoginInternal + { + + /// Backing field for property. + private string _nameClaimType; + + /// The name of the claim that contains the users name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string NameClaimType { get => this._nameClaimType; set => this._nameClaimType = value; } + + /// Backing field for property. + private string[] _scope; + + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string[] Scope { get => this._scope; set => this._scope = value; } + + /// Creates an new instance. + public OpenIdConnectLogin() + { + + } + } + /// The configuration settings of the login flow of the custom Open ID Connect provider. + public partial interface IOpenIdConnectLogin : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The name of the claim that contains the users name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the claim that contains the users name.", + SerializedName = @"nameClaimType", + PossibleTypes = new [] { typeof(string) })] + string NameClaimType { get; set; } + /// A list of the scopes that should be requested while authenticating. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of the scopes that should be requested while authenticating.", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] Scope { get; set; } + + } + /// The configuration settings of the login flow of the custom Open ID Connect provider. + internal partial interface IOpenIdConnectLoginInternal + + { + /// The name of the claim that contains the users name. + string NameClaimType { get; set; } + /// A list of the scopes that should be requested while authenticating. + string[] Scope { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.json.cs new file mode 100644 index 000000000000..918f1d3c48cd --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectLogin.json.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the login flow of the custom Open ID Connect provider. + /// + public partial class OpenIdConnectLogin + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectLogin FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new OpenIdConnectLogin(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal OpenIdConnectLogin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_nameClaimType = If( json?.PropertyT("nameClaimType"), out var __jsonNameClaimType) ? (string)__jsonNameClaimType : (string)NameClaimType;} + {_scope = If( json?.PropertyT("scopes"), out var __jsonScopes) ? If( __jsonScopes as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Scope;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._nameClaimType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._nameClaimType.ToString()) : null, "nameClaimType" ,container.Add ); + if (null != this._scope) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._scope ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("scopes",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.PowerShell.cs new file mode 100644 index 000000000000..519bbceed983 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.PowerShell.cs @@ -0,0 +1,220 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The configuration settings of the app registration for the custom Open ID Connect provider. + /// + [System.ComponentModel.TypeConverter(typeof(OpenIdConnectRegistrationTypeConverter))] + public partial class OpenIdConnectRegistration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OpenIdConnectRegistration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OpenIdConnectRegistration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OpenIdConnectRegistration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientCredential")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientCredential = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential) content.GetValueForProperty("ClientCredential",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientCredential, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectClientCredentialTypeConverter.ConvertFrom); + } + if (content.Contains("OpenIdConnectConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig) content.GetValueForProperty("OpenIdConnectConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectConfigTypeConverter.ConvertFrom); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientCredentialMethod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientCredentialMethod = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod?) content.GetValueForProperty("ClientCredentialMethod",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientCredentialMethod, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod.CreateFrom); + } + if (content.Contains("ClientCredentialClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientCredentialClientSecretSettingName = (string) content.GetValueForProperty("ClientCredentialClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientCredentialClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationAuthorizationEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationAuthorizationEndpoint = (string) content.GetValueForProperty("OpenIdConnectConfigurationAuthorizationEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationAuthorizationEndpoint, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationTokenEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationTokenEndpoint = (string) content.GetValueForProperty("OpenIdConnectConfigurationTokenEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationTokenEndpoint, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationIssuer = (string) content.GetValueForProperty("OpenIdConnectConfigurationIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationIssuer, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationCertificationUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationCertificationUri = (string) content.GetValueForProperty("OpenIdConnectConfigurationCertificationUri",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationCertificationUri, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationWellKnownOpenIdConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationWellKnownOpenIdConfiguration = (string) content.GetValueForProperty("OpenIdConnectConfigurationWellKnownOpenIdConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationWellKnownOpenIdConfiguration, 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 OpenIdConnectRegistration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientCredential")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientCredential = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential) content.GetValueForProperty("ClientCredential",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientCredential, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectClientCredentialTypeConverter.ConvertFrom); + } + if (content.Contains("OpenIdConnectConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig) content.GetValueForProperty("OpenIdConnectConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectConfigTypeConverter.ConvertFrom); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientCredentialMethod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientCredentialMethod = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod?) content.GetValueForProperty("ClientCredentialMethod",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientCredentialMethod, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod.CreateFrom); + } + if (content.Contains("ClientCredentialClientSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientCredentialClientSecretSettingName = (string) content.GetValueForProperty("ClientCredentialClientSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).ClientCredentialClientSecretSettingName, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationAuthorizationEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationAuthorizationEndpoint = (string) content.GetValueForProperty("OpenIdConnectConfigurationAuthorizationEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationAuthorizationEndpoint, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationTokenEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationTokenEndpoint = (string) content.GetValueForProperty("OpenIdConnectConfigurationTokenEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationTokenEndpoint, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationIssuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationIssuer = (string) content.GetValueForProperty("OpenIdConnectConfigurationIssuer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationIssuer, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationCertificationUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationCertificationUri = (string) content.GetValueForProperty("OpenIdConnectConfigurationCertificationUri",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationCertificationUri, global::System.Convert.ToString); + } + if (content.Contains("OpenIdConnectConfigurationWellKnownOpenIdConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationWellKnownOpenIdConfiguration = (string) content.GetValueForProperty("OpenIdConnectConfigurationWellKnownOpenIdConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal)this).OpenIdConnectConfigurationWellKnownOpenIdConfiguration, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configuration settings of the app registration for the custom Open ID Connect provider. + [System.ComponentModel.TypeConverter(typeof(OpenIdConnectRegistrationTypeConverter))] + public partial interface IOpenIdConnectRegistration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.TypeConverter.cs new file mode 100644 index 000000000000..e877fe8cdeca --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OpenIdConnectRegistrationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OpenIdConnectRegistration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OpenIdConnectRegistration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OpenIdConnectRegistration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.cs new file mode 100644 index 000000000000..5bc90fe936d2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.cs @@ -0,0 +1,185 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the app registration for the custom Open ID Connect provider. + /// + public partial class OpenIdConnectRegistration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential _clientCredential; + + /// The authentication credentials of the custom Open ID Connect provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential ClientCredential { get => (this._clientCredential = this._clientCredential ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectClientCredential()); set => this._clientCredential = value; } + + /// + /// The app setting that contains the client secret for the custom Open ID Connect provider. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ClientCredentialClientSecretSettingName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredentialInternal)ClientCredential).ClientSecretSettingName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredentialInternal)ClientCredential).ClientSecretSettingName = value ?? null; } + + /// The method that should be used to authenticate the user. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod? ClientCredentialMethod { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredentialInternal)ClientCredential).Method; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredentialInternal)ClientCredential).Method = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod)""); } + + /// Backing field for property. + private string _clientId; + + /// The client id of the custom Open ID Connect provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientId { get => this._clientId; set => this._clientId = value; } + + /// Internal Acessors for ClientCredential + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal.ClientCredential { get => (this._clientCredential = this._clientCredential ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectClientCredential()); set { {_clientCredential = value;} } } + + /// Internal Acessors for OpenIdConnectConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistrationInternal.OpenIdConnectConfiguration { get => (this._openIdConnectConfiguration = this._openIdConnectConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectConfig()); set { {_openIdConnectConfiguration = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig _openIdConnectConfiguration; + + /// + /// The configuration settings of the endpoints used for the custom Open ID Connect provider. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig OpenIdConnectConfiguration { get => (this._openIdConnectConfiguration = this._openIdConnectConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectConfig()); set => this._openIdConnectConfiguration = value; } + + /// The endpoint to be used to make an authorization request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string OpenIdConnectConfigurationAuthorizationEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)OpenIdConnectConfiguration).AuthorizationEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)OpenIdConnectConfiguration).AuthorizationEndpoint = value ?? null; } + + /// The endpoint that provides the keys necessary to validate the token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string OpenIdConnectConfigurationCertificationUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)OpenIdConnectConfiguration).CertificationUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)OpenIdConnectConfiguration).CertificationUri = value ?? null; } + + /// The endpoint that issues the token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string OpenIdConnectConfigurationIssuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)OpenIdConnectConfiguration).Issuer; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)OpenIdConnectConfiguration).Issuer = value ?? null; } + + /// The endpoint to be used to request a token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string OpenIdConnectConfigurationTokenEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)OpenIdConnectConfiguration).TokenEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)OpenIdConnectConfiguration).TokenEndpoint = value ?? null; } + + /// The endpoint that contains all the configuration endpoints for the provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string OpenIdConnectConfigurationWellKnownOpenIdConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)OpenIdConnectConfiguration).WellKnownOpenIdConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfigInternal)OpenIdConnectConfiguration).WellKnownOpenIdConfiguration = value ?? null; } + + /// Creates an new instance. + public OpenIdConnectRegistration() + { + + } + } + /// The configuration settings of the app registration for the custom Open ID Connect provider. + public partial interface IOpenIdConnectRegistration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// The app setting that contains the client secret for the custom Open ID Connect provider. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting that contains the client secret for the custom Open ID Connect provider.", + SerializedName = @"clientSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string ClientCredentialClientSecretSettingName { get; set; } + /// The method that should be used to authenticate the user. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The method that should be used to authenticate the user.", + SerializedName = @"method", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod? ClientCredentialMethod { get; set; } + /// The client id of the custom Open ID Connect provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The client id of the custom Open ID Connect provider.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string ClientId { get; set; } + /// The endpoint to be used to make an authorization request. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint to be used to make an authorization request.", + SerializedName = @"authorizationEndpoint", + PossibleTypes = new [] { typeof(string) })] + string OpenIdConnectConfigurationAuthorizationEndpoint { get; set; } + /// The endpoint that provides the keys necessary to validate the token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint that provides the keys necessary to validate the token.", + SerializedName = @"certificationUri", + PossibleTypes = new [] { typeof(string) })] + string OpenIdConnectConfigurationCertificationUri { get; set; } + /// The endpoint that issues the token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint that issues the token.", + SerializedName = @"issuer", + PossibleTypes = new [] { typeof(string) })] + string OpenIdConnectConfigurationIssuer { get; set; } + /// The endpoint to be used to request a token. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint to be used to request a token.", + SerializedName = @"tokenEndpoint", + PossibleTypes = new [] { typeof(string) })] + string OpenIdConnectConfigurationTokenEndpoint { get; set; } + /// The endpoint that contains all the configuration endpoints for the provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint that contains all the configuration endpoints for the provider.", + SerializedName = @"wellKnownOpenIdConfiguration", + PossibleTypes = new [] { typeof(string) })] + string OpenIdConnectConfigurationWellKnownOpenIdConfiguration { get; set; } + + } + /// The configuration settings of the app registration for the custom Open ID Connect provider. + internal partial interface IOpenIdConnectRegistrationInternal + + { + /// The authentication credentials of the custom Open ID Connect provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectClientCredential ClientCredential { get; set; } + /// + /// The app setting that contains the client secret for the custom Open ID Connect provider. + /// + string ClientCredentialClientSecretSettingName { get; set; } + /// The method that should be used to authenticate the user. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod? ClientCredentialMethod { get; set; } + /// The client id of the custom Open ID Connect provider. + string ClientId { get; set; } + /// + /// The configuration settings of the endpoints used for the custom Open ID Connect provider. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectConfig OpenIdConnectConfiguration { get; set; } + /// The endpoint to be used to make an authorization request. + string OpenIdConnectConfigurationAuthorizationEndpoint { get; set; } + /// The endpoint that provides the keys necessary to validate the token. + string OpenIdConnectConfigurationCertificationUri { get; set; } + /// The endpoint that issues the token. + string OpenIdConnectConfigurationIssuer { get; set; } + /// The endpoint to be used to request a token. + string OpenIdConnectConfigurationTokenEndpoint { get; set; } + /// The endpoint that contains all the configuration endpoints for the provider. + string OpenIdConnectConfigurationWellKnownOpenIdConfiguration { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.json.cs new file mode 100644 index 000000000000..6d9a5b151a15 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OpenIdConnectRegistration.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The configuration settings of the app registration for the custom Open ID Connect provider. + /// + public partial class OpenIdConnectRegistration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOpenIdConnectRegistration FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new OpenIdConnectRegistration(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal OpenIdConnectRegistration(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_clientCredential = If( json?.PropertyT("clientCredential"), out var __jsonClientCredential) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectClientCredential.FromJson(__jsonClientCredential) : ClientCredential;} + {_openIdConnectConfiguration = If( json?.PropertyT("openIdConnectConfiguration"), out var __jsonOpenIdConnectConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OpenIdConnectConfig.FromJson(__jsonOpenIdConnectConfiguration) : OpenIdConnectConfiguration;} + {_clientId = If( json?.PropertyT("clientId"), out var __jsonClientId) ? (string)__jsonClientId : (string)ClientId;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._clientCredential ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._clientCredential.ToJson(null,serializationMode) : null, "clientCredential" ,container.Add ); + AddIf( null != this._openIdConnectConfiguration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._openIdConnectConfiguration.ToJson(null,serializationMode) : null, "openIdConnectConfiguration" ,container.Add ); + AddIf( null != (((object)this._clientId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientId.ToString()) : null, "clientId" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.PowerShell.cs new file mode 100644 index 000000000000..ca60d3f7d07a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.PowerShell.cs @@ -0,0 +1,202 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OperationDetail(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OperationDetail(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OperationDetail(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Display")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).Display = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay) content.GetValueForProperty("Display",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).Display, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OperationDisplayTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("IsDataAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).IsDataAction = (bool?) content.GetValueForProperty("IsDataAction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).IsDataAction, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Origin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).Origin = (string) content.GetValueForProperty("Origin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).Origin, global::System.Convert.ToString); + } + if (content.Contains("DisplayProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayProvider = (string) content.GetValueForProperty("DisplayProvider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayProvider, global::System.Convert.ToString); + } + if (content.Contains("DisplayResource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayResource = (string) content.GetValueForProperty("DisplayResource",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayResource, global::System.Convert.ToString); + } + if (content.Contains("DisplayOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayOperation = (string) content.GetValueForProperty("DisplayOperation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayOperation, global::System.Convert.ToString); + } + if (content.Contains("DisplayDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayDescription, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OperationDetail(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Display")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).Display = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay) content.GetValueForProperty("Display",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).Display, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OperationDisplayTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("IsDataAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).IsDataAction = (bool?) content.GetValueForProperty("IsDataAction",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).IsDataAction, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Origin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).Origin = (string) content.GetValueForProperty("Origin",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).Origin, global::System.Convert.ToString); + } + if (content.Contains("DisplayProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayProvider = (string) content.GetValueForProperty("DisplayProvider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayProvider, global::System.Convert.ToString); + } + if (content.Contains("DisplayResource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayResource = (string) content.GetValueForProperty("DisplayResource",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayResource, global::System.Convert.ToString); + } + if (content.Contains("DisplayOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayOperation = (string) content.GetValueForProperty("DisplayOperation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayOperation, global::System.Convert.ToString); + } + if (content.Contains("DisplayDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayDescription, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/OperationDetail.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.TypeConverter.cs new file mode 100644 index 000000000000..62b524e7eed4 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OperationDetailTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OperationDetail.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OperationDetail.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OperationDetail.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.cs new file mode 100644 index 000000000000..73723f0a8537 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.cs @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Operation detail payload + public partial class OperationDetail : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay _display; + + /// Display of the operation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay Display { get => (this._display = this._display ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OperationDisplay()); set => this._display = value; } + + /// Localized friendly description for the operation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DisplayDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)Display).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)Display).Description = value ?? null; } + + /// Localized friendly name for the operation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DisplayOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)Display).Operation; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)Display).Operation = value ?? null; } + + /// Resource provider of the operation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DisplayProvider { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)Display).Provider; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)Display).Provider = value ?? null; } + + /// Resource of the operation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string DisplayResource { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)Display).Resource; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)Display).Resource = value ?? null; } + + /// Backing field for property. + private bool? _isDataAction; + + /// Indicates whether the operation is a data action + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? IsDataAction { get => this._isDataAction; set => this._isDataAction = value; } + + /// Internal Acessors for Display + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetailInternal.Display { get => (this._display = this._display ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.OperationDisplay()); set { {_display = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the operation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Origin { get => this._origin; set => this._origin = value; } + + /// Creates an new instance. + public OperationDetail() + { + + } + } + /// Operation detail payload + public partial interface IOperationDetail : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Localized friendly description for the operation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Origin of the operation", + SerializedName = @"origin", + PossibleTypes = new [] { typeof(string) })] + string Origin { get; set; } + + } + /// Operation detail payload + internal partial interface IOperationDetailInternal + + { + /// Display of the operation + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay Display { get; set; } + /// Localized friendly description for the operation + string DisplayDescription { get; set; } + /// Localized friendly name for the operation + string DisplayOperation { get; set; } + /// Resource provider of the operation + string DisplayProvider { get; set; } + /// Resource of the operation + string DisplayResource { get; set; } + /// Indicates whether the operation is a data action + bool? IsDataAction { get; set; } + /// Name of the operation + string Name { get; set; } + /// Origin of the operation + string Origin { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.json.cs new file mode 100644 index 000000000000..2988f46a4f73 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDetail.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new OperationDetail(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal OperationDetail(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.OperationDisplay.FromJson(__jsonDisplay) : Display;} + {_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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._display ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._display.ToJson(null,serializationMode) : null, "display" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != this._isDataAction ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._isDataAction) : null, "isDataAction" ,container.Add ); + AddIf( null != (((object)this._origin)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/OperationDisplay.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDisplay.PowerShell.cs new file mode 100644 index 000000000000..18ec6cc39559 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDisplay.PowerShell.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OperationDisplay(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OperationDisplay(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OperationDisplay(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Provider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Provider, global::System.Convert.ToString); + } + if (content.Contains("Resource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Resource = (string) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Resource, global::System.Convert.ToString); + } + if (content.Contains("Operation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Operation = (string) content.GetValueForProperty("Operation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Operation, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Description, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OperationDisplay(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Provider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Provider, global::System.Convert.ToString); + } + if (content.Contains("Resource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Resource = (string) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Resource, global::System.Convert.ToString); + } + if (content.Contains("Operation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Operation = (string) content.GetValueForProperty("Operation",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Operation, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal)this).Description, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/OperationDisplay.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDisplay.TypeConverter.cs new file mode 100644 index 000000000000..e18f9e8aca25 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDisplay.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OperationDisplayTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OperationDisplay.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OperationDisplay.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OperationDisplay.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDisplay.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDisplay.cs new file mode 100644 index 000000000000..a47e44de861e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDisplay.cs @@ -0,0 +1,102 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Operation display payload + public partial class OperationDisplay : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplayInternal + { + + /// Backing field for property. + private string _description; + + /// Localized friendly description for the operation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Localized friendly description for the operation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/OperationDisplay.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDisplay.json.cs new file mode 100644 index 000000000000..5e93503ad335 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/OperationDisplay.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDisplay FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new OperationDisplay(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal OperationDisplay(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._provider.ToString()) : null, "provider" ,container.Add ); + AddIf( null != (((object)this._resource)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._resource.ToString()) : null, "resource" ,container.Add ); + AddIf( null != (((object)this._operation)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._operation.ToString()) : null, "operation" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/QueueScaleRule.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.PowerShell.cs new file mode 100644 index 000000000000..b091d532e4d4 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App container Azure Queue based scaling rule. + [System.ComponentModel.TypeConverter(typeof(QueueScaleRuleTypeConverter))] + public partial class QueueScaleRule + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new QueueScaleRule(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new QueueScaleRule(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal QueueScaleRule(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("QueueName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)this).QueueName = (string) content.GetValueForProperty("QueueName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)this).QueueName, global::System.Convert.ToString); + } + if (content.Contains("QueueLength")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)this).QueueLength = (int?) content.GetValueForProperty("QueueLength",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)this).QueueLength, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Auth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)this).Auth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("Auth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)this).Auth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal QueueScaleRule(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("QueueName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)this).QueueName = (string) content.GetValueForProperty("QueueName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)this).QueueName, global::System.Convert.ToString); + } + if (content.Contains("QueueLength")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)this).QueueLength = (int?) content.GetValueForProperty("QueueLength",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)this).QueueLength, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Auth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)this).Auth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("Auth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)this).Auth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App container Azure Queue based scaling rule. + [System.ComponentModel.TypeConverter(typeof(QueueScaleRuleTypeConverter))] + public partial interface IQueueScaleRule + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.TypeConverter.cs new file mode 100644 index 000000000000..d8fe6122ae3f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class QueueScaleRuleTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return QueueScaleRule.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return QueueScaleRule.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return QueueScaleRule.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.cs new file mode 100644 index 000000000000..016725167cce --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container Azure Queue based scaling rule. + public partial class QueueScaleRule : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] _auth; + + /// Authentication secrets for the queue scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] Auth { get => this._auth; set => this._auth = value; } + + /// Backing field for property. + private int? _queueLength; + + /// Queue length. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? QueueLength { get => this._queueLength; set => this._queueLength = value; } + + /// Backing field for property. + private string _queueName; + + /// Queue name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string QueueName { get => this._queueName; set => this._queueName = value; } + + /// Creates an new instance. + public QueueScaleRule() + { + + } + } + /// Container App container Azure Queue based scaling rule. + public partial interface IQueueScaleRule : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Authentication secrets for the queue scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Authentication secrets for the queue scale rule.", + SerializedName = @"auth", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] Auth { get; set; } + /// Queue length. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Queue length.", + SerializedName = @"queueLength", + PossibleTypes = new [] { typeof(int) })] + int? QueueLength { get; set; } + /// Queue name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Queue name.", + SerializedName = @"queueName", + PossibleTypes = new [] { typeof(string) })] + string QueueName { get; set; } + + } + /// Container App container Azure Queue based scaling rule. + internal partial interface IQueueScaleRuleInternal + + { + /// Authentication secrets for the queue scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] Auth { get; set; } + /// Queue length. + int? QueueLength { get; set; } + /// Queue name. + string QueueName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.json.cs new file mode 100644 index 000000000000..d50804765460 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/QueueScaleRule.json.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container Azure Queue based scaling rule. + public partial class QueueScaleRule + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new QueueScaleRule(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal QueueScaleRule(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_queueName = If( json?.PropertyT("queueName"), out var __jsonQueueName) ? (string)__jsonQueueName : (string)QueueName;} + {_queueLength = If( json?.PropertyT("queueLength"), out var __jsonQueueLength) ? (int?)__jsonQueueLength : QueueLength;} + {_auth = If( json?.PropertyT("auth"), out var __jsonAuth) ? If( __jsonAuth as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuth.FromJson(__u) )) ))() : null : Auth;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._queueName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._queueName.ToString()) : null, "queueName" ,container.Add ); + AddIf( null != this._queueLength ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._queueLength) : null, "queueLength" ,container.Add ); + if (null != this._auth) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._auth ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("auth",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.PowerShell.cs new file mode 100644 index 000000000000..bef8b836ac77 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.PowerShell.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App Private Registry + [System.ComponentModel.TypeConverter(typeof(RegistryCredentialsTypeConverter))] + public partial class RegistryCredentials + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new RegistryCredentials(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new RegistryCredentials(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal RegistryCredentials(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Server")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).Server = (string) content.GetValueForProperty("Server",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).Server, global::System.Convert.ToString); + } + if (content.Contains("Username")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).Username, global::System.Convert.ToString); + } + if (content.Contains("PasswordSecretRef")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).PasswordSecretRef = (string) content.GetValueForProperty("PasswordSecretRef",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).PasswordSecretRef, global::System.Convert.ToString); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).Identity = (string) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).Identity, 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 RegistryCredentials(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Server")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).Server = (string) content.GetValueForProperty("Server",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).Server, global::System.Convert.ToString); + } + if (content.Contains("Username")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).Username, global::System.Convert.ToString); + } + if (content.Contains("PasswordSecretRef")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).PasswordSecretRef = (string) content.GetValueForProperty("PasswordSecretRef",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).PasswordSecretRef, global::System.Convert.ToString); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).Identity = (string) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal)this).Identity, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App Private Registry + [System.ComponentModel.TypeConverter(typeof(RegistryCredentialsTypeConverter))] + public partial interface IRegistryCredentials + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.TypeConverter.cs new file mode 100644 index 000000000000..75fe424ac60b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class RegistryCredentialsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return RegistryCredentials.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return RegistryCredentials.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return RegistryCredentials.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.cs new file mode 100644 index 000000000000..7c51691a52d8 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Private Registry + public partial class RegistryCredentials : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentialsInternal + { + + /// Backing field for property. + private string _identity; + + /// + /// A Managed Identity to use to authenticate with Azure Container Registry. For user-assigned identities, use the full user-assigned + /// identity Resource ID. For system-assigned identities, use 'system' + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Identity { get => this._identity; set => this._identity = value; } + + /// Backing field for property. + private string _passwordSecretRef; + + /// The name of the Secret that contains the registry login password + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string PasswordSecretRef { get => this._passwordSecretRef; set => this._passwordSecretRef = value; } + + /// Backing field for property. + private string _server; + + /// Container Registry Server + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Server { get => this._server; set => this._server = value; } + + /// Backing field for property. + private string _username; + + /// Container Registry Username + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Username { get => this._username; set => this._username = value; } + + /// Creates an new instance. + public RegistryCredentials() + { + + } + } + /// Container App Private Registry + public partial interface IRegistryCredentials : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// A Managed Identity to use to authenticate with Azure Container Registry. For user-assigned identities, use the full user-assigned + /// identity Resource ID. For system-assigned identities, use 'system' + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A Managed Identity to use to authenticate with Azure Container Registry. For user-assigned identities, use the full user-assigned identity Resource ID. For system-assigned identities, use 'system'", + SerializedName = @"identity", + PossibleTypes = new [] { typeof(string) })] + string Identity { get; set; } + /// The name of the Secret that contains the registry login password + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the Secret that contains the registry login password", + SerializedName = @"passwordSecretRef", + PossibleTypes = new [] { typeof(string) })] + string PasswordSecretRef { get; set; } + /// Container Registry Server + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Container Registry Server", + SerializedName = @"server", + PossibleTypes = new [] { typeof(string) })] + string Server { get; set; } + /// Container Registry Username + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Container Registry Username", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + string Username { get; set; } + + } + /// Container App Private Registry + internal partial interface IRegistryCredentialsInternal + + { + /// + /// A Managed Identity to use to authenticate with Azure Container Registry. For user-assigned identities, use the full user-assigned + /// identity Resource ID. For system-assigned identities, use 'system' + /// + string Identity { get; set; } + /// The name of the Secret that contains the registry login password + string PasswordSecretRef { get; set; } + /// Container Registry Server + string Server { get; set; } + /// Container Registry Username + string Username { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.json.cs new file mode 100644 index 000000000000..454a01879072 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryCredentials.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Private Registry + public partial class RegistryCredentials + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new RegistryCredentials(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal RegistryCredentials(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_server = If( json?.PropertyT("server"), out var __jsonServer) ? (string)__jsonServer : (string)Server;} + {_username = If( json?.PropertyT("username"), out var __jsonUsername) ? (string)__jsonUsername : (string)Username;} + {_passwordSecretRef = If( json?.PropertyT("passwordSecretRef"), out var __jsonPasswordSecretRef) ? (string)__jsonPasswordSecretRef : (string)PasswordSecretRef;} + {_identity = If( json?.PropertyT("identity"), out var __jsonIdentity) ? (string)__jsonIdentity : (string)Identity;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._server)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._server.ToString()) : null, "server" ,container.Add ); + AddIf( null != (((object)this._username)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._username.ToString()) : null, "username" ,container.Add ); + AddIf( null != (((object)this._passwordSecretRef)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._passwordSecretRef.ToString()) : null, "passwordSecretRef" ,container.Add ); + AddIf( null != (((object)this._identity)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._identity.ToString()) : null, "identity" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.PowerShell.cs new file mode 100644 index 000000000000..33b79f1015ea --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App registry information. + [System.ComponentModel.TypeConverter(typeof(RegistryInfoTypeConverter))] + public partial class RegistryInfo + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new RegistryInfo(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new RegistryInfo(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal RegistryInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RegistryUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)this).RegistryUrl = (string) content.GetValueForProperty("RegistryUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)this).RegistryUrl, global::System.Convert.ToString); + } + if (content.Contains("RegistryUserName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)this).RegistryUserName = (string) content.GetValueForProperty("RegistryUserName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)this).RegistryUserName, global::System.Convert.ToString); + } + if (content.Contains("RegistryPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)this).RegistryPassword = (string) content.GetValueForProperty("RegistryPassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)this).RegistryPassword, 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 RegistryInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RegistryUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)this).RegistryUrl = (string) content.GetValueForProperty("RegistryUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)this).RegistryUrl, global::System.Convert.ToString); + } + if (content.Contains("RegistryUserName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)this).RegistryUserName = (string) content.GetValueForProperty("RegistryUserName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)this).RegistryUserName, global::System.Convert.ToString); + } + if (content.Contains("RegistryPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)this).RegistryPassword = (string) content.GetValueForProperty("RegistryPassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal)this).RegistryPassword, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App registry information. + [System.ComponentModel.TypeConverter(typeof(RegistryInfoTypeConverter))] + public partial interface IRegistryInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.TypeConverter.cs new file mode 100644 index 000000000000..e3c249852d77 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class RegistryInfoTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return RegistryInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return RegistryInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return RegistryInfo.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.cs new file mode 100644 index 000000000000..736da87f9e0a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App registry information. + public partial class RegistryInfo : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfoInternal + { + + /// Backing field for property. + private string _registryPassword; + + /// registry secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string RegistryPassword { get => this._registryPassword; set => this._registryPassword = value; } + + /// Backing field for property. + private string _registryUrl; + + /// registry server Url. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string RegistryUrl { get => this._registryUrl; set => this._registryUrl = value; } + + /// Backing field for property. + private string _registryUserName; + + /// registry username. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string RegistryUserName { get => this._registryUserName; set => this._registryUserName = value; } + + /// Creates an new instance. + public RegistryInfo() + { + + } + } + /// Container App registry information. + public partial interface IRegistryInfo : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// registry secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry secret.", + SerializedName = @"registryPassword", + PossibleTypes = new [] { typeof(string) })] + string RegistryPassword { get; set; } + /// registry server Url. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry server Url.", + SerializedName = @"registryUrl", + PossibleTypes = new [] { typeof(string) })] + string RegistryUrl { get; set; } + /// registry username. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry username.", + SerializedName = @"registryUserName", + PossibleTypes = new [] { typeof(string) })] + string RegistryUserName { get; set; } + + } + /// Container App registry information. + internal partial interface IRegistryInfoInternal + + { + /// registry secret. + string RegistryPassword { get; set; } + /// registry server Url. + string RegistryUrl { get; set; } + /// registry username. + string RegistryUserName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.json.cs new file mode 100644 index 000000000000..0391d1debd05 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RegistryInfo.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App registry information. + public partial class RegistryInfo + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new RegistryInfo(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal RegistryInfo(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_registryUrl = If( json?.PropertyT("registryUrl"), out var __jsonRegistryUrl) ? (string)__jsonRegistryUrl : (string)RegistryUrl;} + {_registryUserName = If( json?.PropertyT("registryUserName"), out var __jsonRegistryUserName) ? (string)__jsonRegistryUserName : (string)RegistryUserName;} + {_registryPassword = If( json?.PropertyT("registryPassword"), out var __jsonRegistryPassword) ? (string)__jsonRegistryPassword : (string)RegistryPassword;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._registryUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._registryUrl.ToString()) : null, "registryUrl" ,container.Add ); + AddIf( null != (((object)this._registryUserName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._registryUserName.ToString()) : null, "registryUserName" ,container.Add ); + AddIf( null != (((object)this._registryPassword)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._registryPassword.ToString()) : null, "registryPassword" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Replica.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Replica.PowerShell.cs new file mode 100644 index 000000000000..13c2890901a0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Replica.PowerShell.cs @@ -0,0 +1,240 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App Revision Replica. + [System.ComponentModel.TypeConverter(typeof(ReplicaTypeConverter))] + public partial class Replica + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IReplica DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Replica(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Replica(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Replica(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("CreatedTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Container")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal)this).Container = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer[]) content.GetValueForProperty("Container",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal)this).Container, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaContainerTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Replica(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("CreatedTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Container")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal)this).Container = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer[]) content.GetValueForProperty("Container",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal)this).Container, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaContainerTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App Revision Replica. + [System.ComponentModel.TypeConverter(typeof(ReplicaTypeConverter))] + public partial interface IReplica + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Replica.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Replica.TypeConverter.cs new file mode 100644 index 000000000000..2c3a87a86a2f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Replica.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ReplicaTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Replica.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Replica.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Replica.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Replica.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Replica.cs new file mode 100644 index 000000000000..81e41980aa69 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Replica.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Revision Replica. + public partial class Replica : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(); + + /// The containers collection under a replica. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer[] Container { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal)Property).Container; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal)Property).Container = value ?? null /* arrayOf */; } + + /// Timestamp describing when the pod was created by controller + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public global::System.DateTime? CreatedTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal)Property).CreatedTime; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; } + + /// Internal Acessors for CreatedTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal.CreatedTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal)Property).CreatedTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal)Property).CreatedTime = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties _property; + + /// Replica resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaProperties()); set => this._property = value; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public Replica() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Container App Revision Replica. + public partial interface IReplica : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource + { + /// The containers collection under a replica. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The containers collection under a replica.", + SerializedName = @"containers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer[] Container { get; set; } + /// Timestamp describing when the pod was created by controller + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Timestamp describing when the pod was created by controller", + SerializedName = @"createdTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CreatedTime { get; } + + } + /// Container App Revision Replica. + internal partial interface IReplicaInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal + { + /// The containers collection under a replica. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer[] Container { get; set; } + /// Timestamp describing when the pod was created by controller + global::System.DateTime? CreatedTime { get; set; } + /// Replica resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Replica.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Replica.json.cs new file mode 100644 index 000000000000..711e9d39b71a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Replica.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Revision Replica. + public partial class Replica + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Replica(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Replica(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaProperties.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ReplicaCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.PowerShell.cs new file mode 100644 index 000000000000..55fb382dd0b2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App Revision Replicas collection ARM resource. + [System.ComponentModel.TypeConverter(typeof(ReplicaCollectionTypeConverter))] + public partial class ReplicaCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ReplicaCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ReplicaCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ReplicaCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ReplicaCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App Revision Replicas collection ARM resource. + [System.ComponentModel.TypeConverter(typeof(ReplicaCollectionTypeConverter))] + public partial interface IReplicaCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.TypeConverter.cs new file mode 100644 index 000000000000..cb0d82fe86de --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ReplicaCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ReplicaCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ReplicaCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ReplicaCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.cs new file mode 100644 index 000000000000..e136e9ea6337 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Revision Replicas collection ARM resource. + public partial class ReplicaCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollectionInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica[] _value; + + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ReplicaCollection() + { + + } + } + /// Container App Revision Replicas collection ARM resource. + public partial interface IReplicaCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica[] Value { get; set; } + + } + /// Container App Revision Replicas collection ARM resource. + internal partial interface IReplicaCollectionInternal + + { + /// Collection of resources. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.json.cs new file mode 100644 index 000000000000..05b4977830b5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaCollection.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Revision Replicas collection ARM resource. + public partial class ReplicaCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ReplicaCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ReplicaCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IReplica) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Replica.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ReplicaContainer.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.PowerShell.cs new file mode 100644 index 000000000000..f7424da80770 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.PowerShell.cs @@ -0,0 +1,194 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container object under Container App Revision Replica. + [System.ComponentModel.TypeConverter(typeof(ReplicaContainerTypeConverter))] + public partial class ReplicaContainer + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ReplicaContainer(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ReplicaContainer(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ReplicaContainer(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("ContainerId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).ContainerId = (string) content.GetValueForProperty("ContainerId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).ContainerId, global::System.Convert.ToString); + } + if (content.Contains("Ready")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).Ready = (bool?) content.GetValueForProperty("Ready",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).Ready, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Started")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).Started = (bool?) content.GetValueForProperty("Started",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).Started, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RestartCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).RestartCount = (int?) content.GetValueForProperty("RestartCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).RestartCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LogStreamEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).LogStreamEndpoint = (string) content.GetValueForProperty("LogStreamEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).LogStreamEndpoint, global::System.Convert.ToString); + } + if (content.Contains("ExecEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).ExecEndpoint = (string) content.GetValueForProperty("ExecEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).ExecEndpoint, 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 ReplicaContainer(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("ContainerId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).ContainerId = (string) content.GetValueForProperty("ContainerId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).ContainerId, global::System.Convert.ToString); + } + if (content.Contains("Ready")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).Ready = (bool?) content.GetValueForProperty("Ready",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).Ready, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Started")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).Started = (bool?) content.GetValueForProperty("Started",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).Started, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RestartCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).RestartCount = (int?) content.GetValueForProperty("RestartCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).RestartCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LogStreamEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).LogStreamEndpoint = (string) content.GetValueForProperty("LogStreamEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).LogStreamEndpoint, global::System.Convert.ToString); + } + if (content.Contains("ExecEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).ExecEndpoint = (string) content.GetValueForProperty("ExecEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal)this).ExecEndpoint, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container object under Container App Revision Replica. + [System.ComponentModel.TypeConverter(typeof(ReplicaContainerTypeConverter))] + public partial interface IReplicaContainer + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.TypeConverter.cs new file mode 100644 index 000000000000..11eee6599289 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ReplicaContainerTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ReplicaContainer.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ReplicaContainer.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ReplicaContainer.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.cs new file mode 100644 index 000000000000..bc8379082755 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.cs @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container object under Container App Revision Replica. + public partial class ReplicaContainer : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal + { + + /// Backing field for property. + private string _containerId; + + /// The Id of the Container + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ContainerId { get => this._containerId; set => this._containerId = value; } + + /// Backing field for property. + private string _execEndpoint; + + /// Container exec endpoint + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ExecEndpoint { get => this._execEndpoint; } + + /// Backing field for property. + private string _logStreamEndpoint; + + /// Log Stream endpoint + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string LogStreamEndpoint { get => this._logStreamEndpoint; } + + /// Internal Acessors for ExecEndpoint + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal.ExecEndpoint { get => this._execEndpoint; set { {_execEndpoint = value;} } } + + /// Internal Acessors for LogStreamEndpoint + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainerInternal.LogStreamEndpoint { get => this._logStreamEndpoint; set { {_logStreamEndpoint = value;} } } + + /// Backing field for property. + private string _name; + + /// The Name of the Container + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private bool? _ready; + + /// The container ready status + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Ready { get => this._ready; set => this._ready = value; } + + /// Backing field for property. + private int? _restartCount; + + /// The container restart count + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? RestartCount { get => this._restartCount; set => this._restartCount = value; } + + /// Backing field for property. + private bool? _started; + + /// The container start status + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Started { get => this._started; set => this._started = value; } + + /// Creates an new instance. + public ReplicaContainer() + { + + } + } + /// Container object under Container App Revision Replica. + public partial interface IReplicaContainer : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The Id of the Container + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Id of the Container", + SerializedName = @"containerId", + PossibleTypes = new [] { typeof(string) })] + string ContainerId { get; set; } + /// Container exec endpoint + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Container exec endpoint", + SerializedName = @"execEndpoint", + PossibleTypes = new [] { typeof(string) })] + string ExecEndpoint { get; } + /// Log Stream endpoint + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Log Stream endpoint", + SerializedName = @"logStreamEndpoint", + PossibleTypes = new [] { typeof(string) })] + string LogStreamEndpoint { get; } + /// The Name of the Container + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Name of the Container", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// The container ready status + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The container ready status", + SerializedName = @"ready", + PossibleTypes = new [] { typeof(bool) })] + bool? Ready { get; set; } + /// The container restart count + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The container restart count", + SerializedName = @"restartCount", + PossibleTypes = new [] { typeof(int) })] + int? RestartCount { get; set; } + /// The container start status + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The container start status", + SerializedName = @"started", + PossibleTypes = new [] { typeof(bool) })] + bool? Started { get; set; } + + } + /// Container object under Container App Revision Replica. + internal partial interface IReplicaContainerInternal + + { + /// The Id of the Container + string ContainerId { get; set; } + /// Container exec endpoint + string ExecEndpoint { get; set; } + /// Log Stream endpoint + string LogStreamEndpoint { get; set; } + /// The Name of the Container + string Name { get; set; } + /// The container ready status + bool? Ready { get; set; } + /// The container restart count + int? RestartCount { get; set; } + /// The container start status + bool? Started { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.json.cs new file mode 100644 index 000000000000..aef7227cdd67 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaContainer.json.cs @@ -0,0 +1,126 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container object under Container App Revision Replica. + public partial class ReplicaContainer + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ReplicaContainer(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ReplicaContainer(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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;} + {_containerId = If( json?.PropertyT("containerId"), out var __jsonContainerId) ? (string)__jsonContainerId : (string)ContainerId;} + {_ready = If( json?.PropertyT("ready"), out var __jsonReady) ? (bool?)__jsonReady : Ready;} + {_started = If( json?.PropertyT("started"), out var __jsonStarted) ? (bool?)__jsonStarted : Started;} + {_restartCount = If( json?.PropertyT("restartCount"), out var __jsonRestartCount) ? (int?)__jsonRestartCount : RestartCount;} + {_logStreamEndpoint = If( json?.PropertyT("logStreamEndpoint"), out var __jsonLogStreamEndpoint) ? (string)__jsonLogStreamEndpoint : (string)LogStreamEndpoint;} + {_execEndpoint = If( json?.PropertyT("execEndpoint"), out var __jsonExecEndpoint) ? (string)__jsonExecEndpoint : (string)ExecEndpoint;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._containerId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._containerId.ToString()) : null, "containerId" ,container.Add ); + AddIf( null != this._ready ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._ready) : null, "ready" ,container.Add ); + AddIf( null != this._started ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._started) : null, "started" ,container.Add ); + AddIf( null != this._restartCount ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._restartCount) : null, "restartCount" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._logStreamEndpoint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._logStreamEndpoint.ToString()) : null, "logStreamEndpoint" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._execEndpoint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._execEndpoint.ToString()) : null, "execEndpoint" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.PowerShell.cs new file mode 100644 index 000000000000..b0ab8a741403 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Replica resource specific properties + [System.ComponentModel.TypeConverter(typeof(ReplicaPropertiesTypeConverter))] + public partial class ReplicaProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ReplicaProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ReplicaProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ReplicaProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CreatedTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Container")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal)this).Container = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer[]) content.GetValueForProperty("Container",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal)this).Container, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaContainerTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ReplicaProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CreatedTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Container")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal)this).Container = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer[]) content.GetValueForProperty("Container",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal)this).Container, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaContainerTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Replica resource specific properties + [System.ComponentModel.TypeConverter(typeof(ReplicaPropertiesTypeConverter))] + public partial interface IReplicaProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.TypeConverter.cs new file mode 100644 index 000000000000..700600872b90 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ReplicaPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ReplicaProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ReplicaProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ReplicaProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.cs new file mode 100644 index 000000000000..cd5aefdd3cfa --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Replica resource specific properties + public partial class ReplicaProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer[] _container; + + /// The containers collection under a replica. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer[] Container { get => this._container; set => this._container = value; } + + /// Backing field for property. + private global::System.DateTime? _createdTime; + + /// Timestamp describing when the pod was created by controller + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public global::System.DateTime? CreatedTime { get => this._createdTime; } + + /// Internal Acessors for CreatedTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaPropertiesInternal.CreatedTime { get => this._createdTime; set { {_createdTime = value;} } } + + /// Creates an new instance. + public ReplicaProperties() + { + + } + } + /// Replica resource specific properties + public partial interface IReplicaProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The containers collection under a replica. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The containers collection under a replica.", + SerializedName = @"containers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer[] Container { get; set; } + /// Timestamp describing when the pod was created by controller + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Timestamp describing when the pod was created by controller", + SerializedName = @"createdTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CreatedTime { get; } + + } + /// Replica resource specific properties + internal partial interface IReplicaPropertiesInternal + + { + /// The containers collection under a replica. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer[] Container { get; set; } + /// Timestamp describing when the pod was created by controller + global::System.DateTime? CreatedTime { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.json.cs new file mode 100644 index 000000000000..267d8bc76c26 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ReplicaProperties.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Replica resource specific properties + public partial class ReplicaProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ReplicaProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ReplicaProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_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;} + {_container = If( json?.PropertyT("containers"), out var __jsonContainers) ? If( __jsonContainers as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IReplicaContainer) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ReplicaContainer.FromJson(__u) )) ))() : null : Container;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._createdTime ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._createdTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "createdTime" ,container.Add ); + } + if (null != this._container) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._container ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("containers",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Revision.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Revision.PowerShell.cs new file mode 100644 index 000000000000..fab262194b1c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Revision.PowerShell.cs @@ -0,0 +1,368 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App Revision. + [System.ComponentModel.TypeConverter(typeof(RevisionTypeConverter))] + public partial class Revision + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IRevision DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Revision(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Revision(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Revision(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RevisionPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Template")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Template = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate) content.GetValueForProperty("Template",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Template, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TemplateTypeConverter.ConvertFrom); + } + if (content.Contains("CreatedTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("LastActiveTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).LastActiveTime = (global::System.DateTime?) content.GetValueForProperty("LastActiveTime",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).LastActiveTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Fqdn, global::System.Convert.ToString); + } + if (content.Contains("Active")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Active = (bool?) content.GetValueForProperty("Active",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Active, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Replica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Replica = (int?) content.GetValueForProperty("Replica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Replica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("TrafficWeight")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TrafficWeight = (int?) content.GetValueForProperty("TrafficWeight",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TrafficWeight, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ProvisioningError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ProvisioningError = (string) content.GetValueForProperty("ProvisioningError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ProvisioningError, global::System.Convert.ToString); + } + if (content.Contains("HealthState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).HealthState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState?) content.GetValueForProperty("HealthState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).HealthState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState.CreateFrom); + } + if (content.Contains("TemplateScale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateScale = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale) content.GetValueForProperty("TemplateScale",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateScale, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleTypeConverter.ConvertFrom); + } + if (content.Contains("TemplateRevisionSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateRevisionSuffix = (string) content.GetValueForProperty("TemplateRevisionSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateRevisionSuffix, global::System.Convert.ToString); + } + if (content.Contains("TemplateInitContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateInitContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[]) content.GetValueForProperty("TemplateInitContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateInitContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[]) content.GetValueForProperty("TemplateContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateVolume")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateVolume = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[]) content.GetValueForProperty("TemplateVolume",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateVolume, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeTypeConverter.ConvertFrom)); + } + if (content.Contains("ScaleMinReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ScaleMinReplica = (int?) content.GetValueForProperty("ScaleMinReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ScaleMinReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleMaxReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ScaleMaxReplica = (int?) content.GetValueForProperty("ScaleMaxReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ScaleMaxReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ScaleRule = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]) content.GetValueForProperty("ScaleRule",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ScaleRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Revision(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RevisionPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Template")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Template = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate) content.GetValueForProperty("Template",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Template, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TemplateTypeConverter.ConvertFrom); + } + if (content.Contains("CreatedTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("LastActiveTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).LastActiveTime = (global::System.DateTime?) content.GetValueForProperty("LastActiveTime",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).LastActiveTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Fqdn, global::System.Convert.ToString); + } + if (content.Contains("Active")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Active = (bool?) content.GetValueForProperty("Active",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Active, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Replica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Replica = (int?) content.GetValueForProperty("Replica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).Replica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("TrafficWeight")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TrafficWeight = (int?) content.GetValueForProperty("TrafficWeight",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TrafficWeight, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ProvisioningError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ProvisioningError = (string) content.GetValueForProperty("ProvisioningError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ProvisioningError, global::System.Convert.ToString); + } + if (content.Contains("HealthState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).HealthState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState?) content.GetValueForProperty("HealthState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).HealthState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState.CreateFrom); + } + if (content.Contains("TemplateScale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateScale = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale) content.GetValueForProperty("TemplateScale",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateScale, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleTypeConverter.ConvertFrom); + } + if (content.Contains("TemplateRevisionSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateRevisionSuffix = (string) content.GetValueForProperty("TemplateRevisionSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateRevisionSuffix, global::System.Convert.ToString); + } + if (content.Contains("TemplateInitContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateInitContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[]) content.GetValueForProperty("TemplateInitContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateInitContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[]) content.GetValueForProperty("TemplateContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateVolume")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateVolume = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[]) content.GetValueForProperty("TemplateVolume",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).TemplateVolume, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeTypeConverter.ConvertFrom)); + } + if (content.Contains("ScaleMinReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ScaleMinReplica = (int?) content.GetValueForProperty("ScaleMinReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ScaleMinReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleMaxReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ScaleMaxReplica = (int?) content.GetValueForProperty("ScaleMaxReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ScaleMaxReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ScaleRule = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]) content.GetValueForProperty("ScaleRule",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal)this).ScaleRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App Revision. + [System.ComponentModel.TypeConverter(typeof(RevisionTypeConverter))] + public partial interface IRevision + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Revision.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Revision.TypeConverter.cs new file mode 100644 index 000000000000..8a4c091615e5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Revision.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class RevisionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Revision.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Revision.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Revision.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Revision.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Revision.cs new file mode 100644 index 000000000000..3d98087b96e7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Revision.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Revision. + public partial class Revision : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(); + + /// Boolean describing if the Revision is Active + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public bool? Active { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).Active; } + + /// + /// Timestamp describing when the revision was created + /// by controller + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public global::System.DateTime? CreatedTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).CreatedTime; } + + /// Fully qualified domain name of the revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Fqdn { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).Fqdn; } + + /// Current health State of the revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState? HealthState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).HealthState; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; } + + /// + /// Timestamp describing when the revision was last active. Only meaningful when revision is inactive + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public global::System.DateTime? LastActiveTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).LastActiveTime; } + + /// Internal Acessors for Active + bool? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal.Active { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).Active; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).Active = value; } + + /// Internal Acessors for CreatedTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal.CreatedTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).CreatedTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).CreatedTime = value; } + + /// Internal Acessors for Fqdn + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal.Fqdn { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).Fqdn; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).Fqdn = value; } + + /// Internal Acessors for HealthState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal.HealthState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).HealthState; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).HealthState = value; } + + /// Internal Acessors for LastActiveTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal.LastActiveTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).LastActiveTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).LastActiveTime = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RevisionProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningError + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal.ProvisioningError { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).ProvisioningError; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).ProvisioningError = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Replica + int? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal.Replica { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).Replica; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).Replica = value; } + + /// Internal Acessors for Template + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal.Template { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).Template; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).Template = value; } + + /// Internal Acessors for TemplateScale + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal.TemplateScale { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).TemplateScale; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).TemplateScale = value; } + + /// Internal Acessors for TrafficWeight + int? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionInternal.TrafficWeight { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).TrafficWeight; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).TrafficWeight = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties _property; + + /// Revision resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RevisionProperties()); set => this._property = value; } + + /// Optional Field - Platform Error Message + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string ProvisioningError { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).ProvisioningError; } + + /// Current provisioning State of the revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).ProvisioningState; } + + /// Number of pods currently running for this revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? Replica { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).Replica; } + + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? ScaleMaxReplica { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).ScaleMaxReplica; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).ScaleMaxReplica = value ?? default(int); } + + /// Optional. Minimum number of container replicas. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? ScaleMinReplica { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).ScaleMinReplica; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).ScaleMinReplica = value ?? default(int); } + + /// Scaling rules. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).ScaleRule; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).ScaleRule = value ?? null /* arrayOf */; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// List of container definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).TemplateContainer; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).TemplateContainer = value ?? null /* arrayOf */; } + + /// List of specialized containers that run before app containers. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).TemplateInitContainer; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).TemplateInitContainer = value ?? null /* arrayOf */; } + + /// User friendly suffix that is appended to the revision name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string TemplateRevisionSuffix { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).TemplateRevisionSuffix; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).TemplateRevisionSuffix = value ?? null; } + + /// List of volume definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).TemplateVolume; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).TemplateVolume = value ?? null /* arrayOf */; } + + /// Traffic weight assigned to this revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? TrafficWeight { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)Property).TrafficWeight; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public Revision() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Container App Revision. + public partial interface IRevision : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource + { + /// Boolean describing if the Revision is Active + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Boolean describing if the Revision is Active", + SerializedName = @"active", + PossibleTypes = new [] { typeof(bool) })] + bool? Active { get; } + /// + /// Timestamp describing when the revision was created + /// by controller + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Timestamp describing when the revision was created + by controller", + SerializedName = @"createdTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CreatedTime { get; } + /// Fully qualified domain name of the revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Fully qualified domain name of the revision", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + string Fqdn { get; } + /// Current health State of the revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Current health State of the revision", + SerializedName = @"healthState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState? HealthState { get; } + /// + /// Timestamp describing when the revision was last active. Only meaningful when revision is inactive + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Timestamp describing when the revision was last active. Only meaningful when revision is inactive", + SerializedName = @"lastActiveTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastActiveTime { get; } + /// Optional Field - Platform Error Message + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Optional Field - Platform Error Message", + SerializedName = @"provisioningError", + PossibleTypes = new [] { typeof(string) })] + string ProvisioningError { get; } + /// Current provisioning State of the revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Current provisioning State of the revision", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState? ProvisioningState { get; } + /// Number of pods currently running for this revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Number of pods currently running for this revision", + SerializedName = @"replicas", + PossibleTypes = new [] { typeof(int) })] + int? Replica { get; } + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Maximum number of container replicas. Defaults to 10 if not set.", + SerializedName = @"maxReplicas", + PossibleTypes = new [] { typeof(int) })] + int? ScaleMaxReplica { get; set; } + /// Optional. Minimum number of container replicas. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Minimum number of container replicas.", + SerializedName = @"minReplicas", + PossibleTypes = new [] { typeof(int) })] + int? ScaleMinReplica { get; set; } + /// Scaling rules. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Scaling rules.", + SerializedName = @"rules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get; set; } + /// List of container definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of container definitions for the Container App.", + SerializedName = @"containers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get; set; } + /// List of specialized containers that run before app containers. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of specialized containers that run before app containers.", + SerializedName = @"initContainers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get; set; } + /// User friendly suffix that is appended to the revision name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly suffix that is appended to the revision name", + SerializedName = @"revisionSuffix", + PossibleTypes = new [] { typeof(string) })] + string TemplateRevisionSuffix { get; set; } + /// List of volume definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of volume definitions for the Container App.", + SerializedName = @"volumes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get; set; } + /// Traffic weight assigned to this revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Traffic weight assigned to this revision", + SerializedName = @"trafficWeight", + PossibleTypes = new [] { typeof(int) })] + int? TrafficWeight { get; } + + } + /// Container App Revision. + internal partial interface IRevisionInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal + { + /// Boolean describing if the Revision is Active + bool? Active { get; set; } + /// + /// Timestamp describing when the revision was created + /// by controller + /// + global::System.DateTime? CreatedTime { get; set; } + /// Fully qualified domain name of the revision + string Fqdn { get; set; } + /// Current health State of the revision + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState? HealthState { get; set; } + /// + /// Timestamp describing when the revision was last active. Only meaningful when revision is inactive + /// + global::System.DateTime? LastActiveTime { get; set; } + /// Revision resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties Property { get; set; } + /// Optional Field - Platform Error Message + string ProvisioningError { get; set; } + /// Current provisioning State of the revision + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState? ProvisioningState { get; set; } + /// Number of pods currently running for this revision + int? Replica { get; set; } + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + int? ScaleMaxReplica { get; set; } + /// Optional. Minimum number of container replicas. + int? ScaleMinReplica { get; set; } + /// Scaling rules. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get; set; } + /// + /// Container App Revision Template with all possible settings and the + /// defaults if user did not provide them. The defaults are populated + /// as they were at the creation time + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate Template { get; set; } + /// List of container definitions for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get; set; } + /// List of specialized containers that run before app containers. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get; set; } + /// User friendly suffix that is appended to the revision name + string TemplateRevisionSuffix { get; set; } + /// Scaling properties for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale TemplateScale { get; set; } + /// List of volume definitions for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get; set; } + /// Traffic weight assigned to this revision + int? TrafficWeight { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Revision.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Revision.json.cs new file mode 100644 index 000000000000..fd61c3646528 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Revision.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Revision. + public partial class Revision + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Revision(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Revision(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RevisionProperties.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/RevisionCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.PowerShell.cs new file mode 100644 index 000000000000..fab5942c3f9c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App Revisions collection ARM resource. + [System.ComponentModel.TypeConverter(typeof(RevisionCollectionTypeConverter))] + public partial class RevisionCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new RevisionCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new RevisionCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal RevisionCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RevisionTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollectionInternal)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 RevisionCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RevisionTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollectionInternal)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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App Revisions collection ARM resource. + [System.ComponentModel.TypeConverter(typeof(RevisionCollectionTypeConverter))] + public partial interface IRevisionCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.TypeConverter.cs new file mode 100644 index 000000000000..7888c9c757c1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class RevisionCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return RevisionCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return RevisionCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return RevisionCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.cs new file mode 100644 index 000000000000..0dfba9812c70 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Revisions collection ARM resource. + public partial class RevisionCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollectionInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollectionInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision[] _value; + + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public RevisionCollection() + { + + } + } + /// Container App Revisions collection ARM resource. + public partial interface IRevisionCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to next page of resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision[] Value { get; set; } + + } + /// Container App Revisions collection ARM resource. + internal partial interface IRevisionCollectionInternal + + { + /// Link to next page of resources. + string NextLink { get; set; } + /// Collection of resources. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.json.cs new file mode 100644 index 000000000000..af2599eb53cf --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionCollection.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Revisions collection ARM resource. + public partial class RevisionCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new RevisionCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal RevisionCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IRevision) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Revision.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/RevisionProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.PowerShell.cs new file mode 100644 index 000000000000..21e2058a411e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.PowerShell.cs @@ -0,0 +1,282 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Revision resource specific properties + [System.ComponentModel.TypeConverter(typeof(RevisionPropertiesTypeConverter))] + public partial class RevisionProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new RevisionProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new RevisionProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal RevisionProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Template")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Template = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate) content.GetValueForProperty("Template",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Template, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TemplateTypeConverter.ConvertFrom); + } + if (content.Contains("CreatedTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("LastActiveTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).LastActiveTime = (global::System.DateTime?) content.GetValueForProperty("LastActiveTime",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).LastActiveTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Fqdn, global::System.Convert.ToString); + } + if (content.Contains("Active")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Active = (bool?) content.GetValueForProperty("Active",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Active, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Replica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Replica = (int?) content.GetValueForProperty("Replica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Replica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("TrafficWeight")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TrafficWeight = (int?) content.GetValueForProperty("TrafficWeight",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TrafficWeight, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ProvisioningError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ProvisioningError = (string) content.GetValueForProperty("ProvisioningError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ProvisioningError, global::System.Convert.ToString); + } + if (content.Contains("HealthState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).HealthState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState?) content.GetValueForProperty("HealthState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).HealthState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState.CreateFrom); + } + if (content.Contains("TemplateScale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateScale = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale) content.GetValueForProperty("TemplateScale",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateScale, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleTypeConverter.ConvertFrom); + } + if (content.Contains("TemplateRevisionSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateRevisionSuffix = (string) content.GetValueForProperty("TemplateRevisionSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateRevisionSuffix, global::System.Convert.ToString); + } + if (content.Contains("TemplateInitContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateInitContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[]) content.GetValueForProperty("TemplateInitContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateInitContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[]) content.GetValueForProperty("TemplateContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateVolume")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateVolume = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[]) content.GetValueForProperty("TemplateVolume",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateVolume, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeTypeConverter.ConvertFrom)); + } + if (content.Contains("ScaleMinReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ScaleMinReplica = (int?) content.GetValueForProperty("ScaleMinReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ScaleMinReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleMaxReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ScaleMaxReplica = (int?) content.GetValueForProperty("ScaleMaxReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ScaleMaxReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ScaleRule = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]) content.GetValueForProperty("ScaleRule",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ScaleRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal RevisionProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Template")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Template = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate) content.GetValueForProperty("Template",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Template, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TemplateTypeConverter.ConvertFrom); + } + if (content.Contains("CreatedTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("LastActiveTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).LastActiveTime = (global::System.DateTime?) content.GetValueForProperty("LastActiveTime",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).LastActiveTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Fqdn, global::System.Convert.ToString); + } + if (content.Contains("Active")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Active = (bool?) content.GetValueForProperty("Active",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Active, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Replica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Replica = (int?) content.GetValueForProperty("Replica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).Replica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("TrafficWeight")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TrafficWeight = (int?) content.GetValueForProperty("TrafficWeight",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TrafficWeight, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ProvisioningError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ProvisioningError = (string) content.GetValueForProperty("ProvisioningError",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ProvisioningError, global::System.Convert.ToString); + } + if (content.Contains("HealthState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).HealthState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState?) content.GetValueForProperty("HealthState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).HealthState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState.CreateFrom); + } + if (content.Contains("TemplateScale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateScale = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale) content.GetValueForProperty("TemplateScale",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateScale, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleTypeConverter.ConvertFrom); + } + if (content.Contains("TemplateRevisionSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateRevisionSuffix = (string) content.GetValueForProperty("TemplateRevisionSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateRevisionSuffix, global::System.Convert.ToString); + } + if (content.Contains("TemplateInitContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateInitContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[]) content.GetValueForProperty("TemplateInitContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateInitContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[]) content.GetValueForProperty("TemplateContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("TemplateVolume")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateVolume = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[]) content.GetValueForProperty("TemplateVolume",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).TemplateVolume, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeTypeConverter.ConvertFrom)); + } + if (content.Contains("ScaleMinReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ScaleMinReplica = (int?) content.GetValueForProperty("ScaleMinReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ScaleMinReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleMaxReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ScaleMaxReplica = (int?) content.GetValueForProperty("ScaleMaxReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ScaleMaxReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ScaleRule = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]) content.GetValueForProperty("ScaleRule",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal)this).ScaleRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Revision resource specific properties + [System.ComponentModel.TypeConverter(typeof(RevisionPropertiesTypeConverter))] + public partial interface IRevisionProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.TypeConverter.cs new file mode 100644 index 000000000000..f22d27dff529 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class RevisionPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return RevisionProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return RevisionProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return RevisionProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.cs new file mode 100644 index 000000000000..ad84ed7efd99 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.cs @@ -0,0 +1,353 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Revision resource specific properties + public partial class RevisionProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal + { + + /// Backing field for property. + private bool? _active; + + /// Boolean describing if the Revision is Active + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Active { get => this._active; } + + /// Backing field for property. + private global::System.DateTime? _createdTime; + + /// + /// Timestamp describing when the revision was created + /// by controller + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public global::System.DateTime? CreatedTime { get => this._createdTime; } + + /// Backing field for property. + private string _fqdn; + + /// Fully qualified domain name of the revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Fqdn { get => this._fqdn; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState? _healthState; + + /// Current health State of the revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState? HealthState { get => this._healthState; } + + /// Backing field for property. + private global::System.DateTime? _lastActiveTime; + + /// + /// Timestamp describing when the revision was last active. Only meaningful when revision is inactive + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public global::System.DateTime? LastActiveTime { get => this._lastActiveTime; } + + /// Internal Acessors for Active + bool? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal.Active { get => this._active; set { {_active = value;} } } + + /// Internal Acessors for CreatedTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal.CreatedTime { get => this._createdTime; set { {_createdTime = value;} } } + + /// Internal Acessors for Fqdn + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal.Fqdn { get => this._fqdn; set { {_fqdn = value;} } } + + /// Internal Acessors for HealthState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal.HealthState { get => this._healthState; set { {_healthState = value;} } } + + /// Internal Acessors for LastActiveTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal.LastActiveTime { get => this._lastActiveTime; set { {_lastActiveTime = value;} } } + + /// Internal Acessors for ProvisioningError + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal.ProvisioningError { get => this._provisioningError; set { {_provisioningError = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for Replica + int? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal.Replica { get => this._replica; set { {_replica = value;} } } + + /// Internal Acessors for Template + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal.Template { get => (this._template = this._template ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Template()); set { {_template = value;} } } + + /// Internal Acessors for TemplateScale + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal.TemplateScale { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).Scale; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).Scale = value; } + + /// Internal Acessors for TrafficWeight + int? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionPropertiesInternal.TrafficWeight { get => this._trafficWeight; set { {_trafficWeight = value;} } } + + /// Backing field for property. + private string _provisioningError; + + /// Optional Field - Platform Error Message + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ProvisioningError { get => this._provisioningError; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState? _provisioningState; + + /// Current provisioning State of the revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private int? _replica; + + /// Number of pods currently running for this revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? Replica { get => this._replica; } + + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? ScaleMaxReplica { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).ScaleMaxReplica; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).ScaleMaxReplica = value ?? default(int); } + + /// Optional. Minimum number of container replicas. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? ScaleMinReplica { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).ScaleMinReplica; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).ScaleMinReplica = value ?? default(int); } + + /// Scaling rules. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).ScaleRule; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).ScaleRule = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate _template; + + /// + /// Container App Revision Template with all possible settings and the + /// defaults if user did not provide them. The defaults are populated + /// as they were at the creation time + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate Template { get => (this._template = this._template ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Template()); } + + /// List of container definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).Container; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).Container = value ?? null /* arrayOf */; } + + /// List of specialized containers that run before app containers. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).InitContainer; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).InitContainer = value ?? null /* arrayOf */; } + + /// User friendly suffix that is appended to the revision name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string TemplateRevisionSuffix { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).RevisionSuffix; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).RevisionSuffix = value ?? null; } + + /// List of volume definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).Volume; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)Template).Volume = value ?? null /* arrayOf */; } + + /// Backing field for property. + private int? _trafficWeight; + + /// Traffic weight assigned to this revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? TrafficWeight { get => this._trafficWeight; } + + /// Creates an new instance. + public RevisionProperties() + { + + } + } + /// Revision resource specific properties + public partial interface IRevisionProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Boolean describing if the Revision is Active + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Boolean describing if the Revision is Active", + SerializedName = @"active", + PossibleTypes = new [] { typeof(bool) })] + bool? Active { get; } + /// + /// Timestamp describing when the revision was created + /// by controller + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Timestamp describing when the revision was created + by controller", + SerializedName = @"createdTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CreatedTime { get; } + /// Fully qualified domain name of the revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Fully qualified domain name of the revision", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + string Fqdn { get; } + /// Current health State of the revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Current health State of the revision", + SerializedName = @"healthState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState? HealthState { get; } + /// + /// Timestamp describing when the revision was last active. Only meaningful when revision is inactive + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Timestamp describing when the revision was last active. Only meaningful when revision is inactive", + SerializedName = @"lastActiveTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastActiveTime { get; } + /// Optional Field - Platform Error Message + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Optional Field - Platform Error Message", + SerializedName = @"provisioningError", + PossibleTypes = new [] { typeof(string) })] + string ProvisioningError { get; } + /// Current provisioning State of the revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Current provisioning State of the revision", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState? ProvisioningState { get; } + /// Number of pods currently running for this revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Number of pods currently running for this revision", + SerializedName = @"replicas", + PossibleTypes = new [] { typeof(int) })] + int? Replica { get; } + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Maximum number of container replicas. Defaults to 10 if not set.", + SerializedName = @"maxReplicas", + PossibleTypes = new [] { typeof(int) })] + int? ScaleMaxReplica { get; set; } + /// Optional. Minimum number of container replicas. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Minimum number of container replicas.", + SerializedName = @"minReplicas", + PossibleTypes = new [] { typeof(int) })] + int? ScaleMinReplica { get; set; } + /// Scaling rules. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Scaling rules.", + SerializedName = @"rules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get; set; } + /// List of container definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of container definitions for the Container App.", + SerializedName = @"containers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get; set; } + /// List of specialized containers that run before app containers. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of specialized containers that run before app containers.", + SerializedName = @"initContainers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get; set; } + /// User friendly suffix that is appended to the revision name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly suffix that is appended to the revision name", + SerializedName = @"revisionSuffix", + PossibleTypes = new [] { typeof(string) })] + string TemplateRevisionSuffix { get; set; } + /// List of volume definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of volume definitions for the Container App.", + SerializedName = @"volumes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get; set; } + /// Traffic weight assigned to this revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Traffic weight assigned to this revision", + SerializedName = @"trafficWeight", + PossibleTypes = new [] { typeof(int) })] + int? TrafficWeight { get; } + + } + /// Revision resource specific properties + internal partial interface IRevisionPropertiesInternal + + { + /// Boolean describing if the Revision is Active + bool? Active { get; set; } + /// + /// Timestamp describing when the revision was created + /// by controller + /// + global::System.DateTime? CreatedTime { get; set; } + /// Fully qualified domain name of the revision + string Fqdn { get; set; } + /// Current health State of the revision + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState? HealthState { get; set; } + /// + /// Timestamp describing when the revision was last active. Only meaningful when revision is inactive + /// + global::System.DateTime? LastActiveTime { get; set; } + /// Optional Field - Platform Error Message + string ProvisioningError { get; set; } + /// Current provisioning State of the revision + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState? ProvisioningState { get; set; } + /// Number of pods currently running for this revision + int? Replica { get; set; } + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + int? ScaleMaxReplica { get; set; } + /// Optional. Minimum number of container replicas. + int? ScaleMinReplica { get; set; } + /// Scaling rules. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get; set; } + /// + /// Container App Revision Template with all possible settings and the + /// defaults if user did not provide them. The defaults are populated + /// as they were at the creation time + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate Template { get; set; } + /// List of container definitions for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get; set; } + /// List of specialized containers that run before app containers. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get; set; } + /// User friendly suffix that is appended to the revision name + string TemplateRevisionSuffix { get; set; } + /// Scaling properties for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale TemplateScale { get; set; } + /// List of volume definitions for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get; set; } + /// Traffic weight assigned to this revision + int? TrafficWeight { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.json.cs new file mode 100644 index 000000000000..9e49d0a05fa0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/RevisionProperties.json.cs @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Revision resource specific properties + public partial class RevisionProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new RevisionProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal RevisionProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_template = If( json?.PropertyT("template"), out var __jsonTemplate) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Template.FromJson(__jsonTemplate) : Template;} + {_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;} + {_lastActiveTime = If( json?.PropertyT("lastActiveTime"), out var __jsonLastActiveTime) ? global::System.DateTime.TryParse((string)__jsonLastActiveTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonLastActiveTimeValue) ? __jsonLastActiveTimeValue : LastActiveTime : LastActiveTime;} + {_fqdn = If( json?.PropertyT("fqdn"), out var __jsonFqdn) ? (string)__jsonFqdn : (string)Fqdn;} + {_active = If( json?.PropertyT("active"), out var __jsonActive) ? (bool?)__jsonActive : Active;} + {_replica = If( json?.PropertyT("replicas"), out var __jsonReplicas) ? (int?)__jsonReplicas : Replica;} + {_trafficWeight = If( json?.PropertyT("trafficWeight"), out var __jsonTrafficWeight) ? (int?)__jsonTrafficWeight : TrafficWeight;} + {_provisioningError = If( json?.PropertyT("provisioningError"), out var __jsonProvisioningError) ? (string)__jsonProvisioningError : (string)ProvisioningError;} + {_healthState = If( json?.PropertyT("healthState"), out var __jsonHealthState) ? (string)__jsonHealthState : (string)HealthState;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._template ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._template.ToJson(null,serializationMode) : null, "template" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._createdTime ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._lastActiveTime ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._lastActiveTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "lastActiveTime" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._fqdn)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._fqdn.ToString()) : null, "fqdn" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._active ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._active) : null, "active" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._replica ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._replica) : null, "replicas" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._trafficWeight ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._trafficWeight) : null, "trafficWeight" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningError)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._provisioningError.ToString()) : null, "provisioningError" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._healthState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._healthState.ToString()) : null, "healthState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/Scale.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Scale.PowerShell.cs new file mode 100644 index 000000000000..d22e860f98ec --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Scale.PowerShell.cs @@ -0,0 +1,160 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App scaling configurations. + [System.ComponentModel.TypeConverter(typeof(ScaleTypeConverter))] + public partial class Scale + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IScale DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Scale(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Scale(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Scale(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("MinReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)this).MinReplica = (int?) content.GetValueForProperty("MinReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)this).MinReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MaxReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)this).MaxReplica = (int?) content.GetValueForProperty("MaxReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)this).MaxReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Rule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)this).Rule = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]) content.GetValueForProperty("Rule",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)this).Rule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Scale(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("MinReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)this).MinReplica = (int?) content.GetValueForProperty("MinReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)this).MinReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MaxReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)this).MaxReplica = (int?) content.GetValueForProperty("MaxReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)this).MaxReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Rule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)this).Rule = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]) content.GetValueForProperty("Rule",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)this).Rule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App scaling configurations. + [System.ComponentModel.TypeConverter(typeof(ScaleTypeConverter))] + public partial interface IScale + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Scale.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Scale.TypeConverter.cs new file mode 100644 index 000000000000..1b58c554c896 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Scale.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScaleTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Scale.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Scale.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Scale.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Scale.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Scale.cs new file mode 100644 index 000000000000..a4f9e39a0aae --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Scale.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App scaling configurations. + public partial class Scale : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal + { + + /// Backing field for property. + private int? _maxReplica; + + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? MaxReplica { get => this._maxReplica; set => this._maxReplica = value; } + + /// Backing field for property. + private int? _minReplica; + + /// Optional. Minimum number of container replicas. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? MinReplica { get => this._minReplica; set => this._minReplica = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] _rule; + + /// Scaling rules. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] Rule { get => this._rule; set => this._rule = value; } + + /// Creates an new instance. + public Scale() + { + + } + } + /// Container App scaling configurations. + public partial interface IScale : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Maximum number of container replicas. Defaults to 10 if not set.", + SerializedName = @"maxReplicas", + PossibleTypes = new [] { typeof(int) })] + int? MaxReplica { get; set; } + /// Optional. Minimum number of container replicas. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Minimum number of container replicas.", + SerializedName = @"minReplicas", + PossibleTypes = new [] { typeof(int) })] + int? MinReplica { get; set; } + /// Scaling rules. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Scaling rules.", + SerializedName = @"rules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] Rule { get; set; } + + } + /// Container App scaling configurations. + internal partial interface IScaleInternal + + { + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + int? MaxReplica { get; set; } + /// Optional. Minimum number of container replicas. + int? MinReplica { get; set; } + /// Scaling rules. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] Rule { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Scale.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Scale.json.cs new file mode 100644 index 000000000000..4ec476fed102 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Scale.json.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App scaling configurations. + public partial class Scale + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Scale(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Scale(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_minReplica = If( json?.PropertyT("minReplicas"), out var __jsonMinReplicas) ? (int?)__jsonMinReplicas : MinReplica;} + {_maxReplica = If( json?.PropertyT("maxReplicas"), out var __jsonMaxReplicas) ? (int?)__jsonMaxReplicas : MaxReplica;} + {_rule = If( json?.PropertyT("rules"), out var __jsonRules) ? If( __jsonRules as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IScaleRule) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRule.FromJson(__u) )) ))() : null : Rule;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._minReplica ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._minReplica) : null, "minReplicas" ,container.Add ); + AddIf( null != this._maxReplica ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._maxReplica) : null, "maxReplicas" ,container.Add ); + if (null != this._rule) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._rule ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("rules",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.PowerShell.cs new file mode 100644 index 000000000000..f1778d0baf8d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.PowerShell.cs @@ -0,0 +1,256 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App container scaling rule. + [System.ComponentModel.TypeConverter(typeof(ScaleRuleTypeConverter))] + public partial class ScaleRule + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IScaleRule DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ScaleRule(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ScaleRule(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ScaleRule(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureQueue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueue = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule) content.GetValueForProperty("AzureQueue",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueue, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.QueueScaleRuleTypeConverter.ConvertFrom); + } + if (content.Contains("Custom")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Custom = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule) content.GetValueForProperty("Custom",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Custom, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRuleTypeConverter.ConvertFrom); + } + if (content.Contains("Http")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Http = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule) content.GetValueForProperty("Http",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Http, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpScaleRuleTypeConverter.ConvertFrom); + } + if (content.Contains("Tcp")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Tcp = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule) content.GetValueForProperty("Tcp",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Tcp, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TcpScaleRuleTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("AzureQueueName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueueName = (string) content.GetValueForProperty("AzureQueueName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueueName, global::System.Convert.ToString); + } + if (content.Contains("AzureQueueLength")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueueLength = (int?) content.GetValueForProperty("AzureQueueLength",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueueLength, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("AzureQueueAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueueAuth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("AzureQueueAuth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueueAuth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.ConvertFrom)); + } + if (content.Contains("CustomType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).CustomType = (string) content.GetValueForProperty("CustomType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).CustomType, global::System.Convert.ToString); + } + if (content.Contains("CustomMetadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).CustomMetadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata) content.GetValueForProperty("CustomMetadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).CustomMetadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRuleMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("CustomAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).CustomAuth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("CustomAuth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).CustomAuth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.ConvertFrom)); + } + if (content.Contains("HttpMetadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).HttpMetadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata) content.GetValueForProperty("HttpMetadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).HttpMetadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpScaleRuleMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("HttpAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).HttpAuth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("HttpAuth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).HttpAuth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.ConvertFrom)); + } + if (content.Contains("TcpMetadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).TcpMetadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata) content.GetValueForProperty("TcpMetadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).TcpMetadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TcpScaleRuleMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("TcpAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).TcpAuth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("TcpAuth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).TcpAuth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ScaleRule(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureQueue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueue = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule) content.GetValueForProperty("AzureQueue",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueue, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.QueueScaleRuleTypeConverter.ConvertFrom); + } + if (content.Contains("Custom")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Custom = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule) content.GetValueForProperty("Custom",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Custom, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRuleTypeConverter.ConvertFrom); + } + if (content.Contains("Http")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Http = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule) content.GetValueForProperty("Http",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Http, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpScaleRuleTypeConverter.ConvertFrom); + } + if (content.Contains("Tcp")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Tcp = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule) content.GetValueForProperty("Tcp",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Tcp, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TcpScaleRuleTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("AzureQueueName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueueName = (string) content.GetValueForProperty("AzureQueueName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueueName, global::System.Convert.ToString); + } + if (content.Contains("AzureQueueLength")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueueLength = (int?) content.GetValueForProperty("AzureQueueLength",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueueLength, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("AzureQueueAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueueAuth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("AzureQueueAuth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).AzureQueueAuth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.ConvertFrom)); + } + if (content.Contains("CustomType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).CustomType = (string) content.GetValueForProperty("CustomType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).CustomType, global::System.Convert.ToString); + } + if (content.Contains("CustomMetadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).CustomMetadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata) content.GetValueForProperty("CustomMetadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).CustomMetadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRuleMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("CustomAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).CustomAuth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("CustomAuth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).CustomAuth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.ConvertFrom)); + } + if (content.Contains("HttpMetadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).HttpMetadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata) content.GetValueForProperty("HttpMetadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).HttpMetadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpScaleRuleMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("HttpAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).HttpAuth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("HttpAuth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).HttpAuth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.ConvertFrom)); + } + if (content.Contains("TcpMetadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).TcpMetadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata) content.GetValueForProperty("TcpMetadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).TcpMetadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TcpScaleRuleMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("TcpAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).TcpAuth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("TcpAuth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal)this).TcpAuth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App container scaling rule. + [System.ComponentModel.TypeConverter(typeof(ScaleRuleTypeConverter))] + public partial interface IScaleRule + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.TypeConverter.cs new file mode 100644 index 000000000000..b091d786a2ce --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScaleRuleTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ScaleRule.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ScaleRule.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ScaleRule.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.cs new file mode 100644 index 000000000000..1a08553df516 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.cs @@ -0,0 +1,249 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container scaling rule. + public partial class ScaleRule : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule _azureQueue; + + /// Azure Queue based scaling. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule AzureQueue { get => (this._azureQueue = this._azureQueue ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.QueueScaleRule()); set => this._azureQueue = value; } + + /// Authentication secrets for the queue scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] AzureQueueAuth { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)AzureQueue).Auth; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)AzureQueue).Auth = value ?? null /* arrayOf */; } + + /// Queue length. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? AzureQueueLength { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)AzureQueue).QueueLength; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)AzureQueue).QueueLength = value ?? default(int); } + + /// Queue name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureQueueName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)AzureQueue).QueueName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRuleInternal)AzureQueue).QueueName = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule _custom; + + /// Custom scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule Custom { get => (this._custom = this._custom ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRule()); set => this._custom = value; } + + /// Authentication secrets for the custom scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] CustomAuth { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)Custom).Auth; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)Custom).Auth = value ?? null /* arrayOf */; } + + /// Metadata properties to describe custom scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata CustomMetadata { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)Custom).Metadata; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)Custom).Metadata = value ?? null /* model class */; } + + /// + /// Type of the custom scale rule + /// eg: azure-servicebus, redis etc. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string CustomType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)Custom).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleInternal)Custom).Type = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule _http; + + /// HTTP requests based scaling. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule Http { get => (this._http = this._http ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpScaleRule()); set => this._http = value; } + + /// Authentication secrets for the custom scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] HttpAuth { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleInternal)Http).Auth; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleInternal)Http).Auth = value ?? null /* arrayOf */; } + + /// Metadata properties to describe http scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata HttpMetadata { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleInternal)Http).Metadata; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleInternal)Http).Metadata = value ?? null /* model class */; } + + /// Internal Acessors for AzureQueue + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal.AzureQueue { get => (this._azureQueue = this._azureQueue ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.QueueScaleRule()); set { {_azureQueue = value;} } } + + /// Internal Acessors for Custom + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal.Custom { get => (this._custom = this._custom ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRule()); set { {_custom = value;} } } + + /// Internal Acessors for Http + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal.Http { get => (this._http = this._http ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpScaleRule()); set { {_http = value;} } } + + /// Internal Acessors for Tcp + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleInternal.Tcp { get => (this._tcp = this._tcp ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TcpScaleRule()); set { {_tcp = value;} } } + + /// Backing field for property. + private string _name; + + /// Scale Rule Name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule _tcp; + + /// Tcp requests based scaling. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule Tcp { get => (this._tcp = this._tcp ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TcpScaleRule()); set => this._tcp = value; } + + /// Authentication secrets for the tcp scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] TcpAuth { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleInternal)Tcp).Auth; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleInternal)Tcp).Auth = value ?? null /* arrayOf */; } + + /// Metadata properties to describe tcp scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata TcpMetadata { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleInternal)Tcp).Metadata; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleInternal)Tcp).Metadata = value ?? null /* model class */; } + + /// Creates an new instance. + public ScaleRule() + { + + } + } + /// Container App container scaling rule. + public partial interface IScaleRule : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Authentication secrets for the queue scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Authentication secrets for the queue scale rule.", + SerializedName = @"auth", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] AzureQueueAuth { get; set; } + /// Queue length. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Queue length.", + SerializedName = @"queueLength", + PossibleTypes = new [] { typeof(int) })] + int? AzureQueueLength { get; set; } + /// Queue name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Queue name.", + SerializedName = @"queueName", + PossibleTypes = new [] { typeof(string) })] + string AzureQueueName { get; set; } + /// Authentication secrets for the custom scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Authentication secrets for the custom scale rule.", + SerializedName = @"auth", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] CustomAuth { get; set; } + /// Metadata properties to describe custom scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Metadata properties to describe custom scale rule.", + SerializedName = @"metadata", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata CustomMetadata { get; set; } + /// + /// Type of the custom scale rule + /// eg: azure-servicebus, redis etc. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the custom scale rule + eg: azure-servicebus, redis etc.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string CustomType { get; set; } + /// Authentication secrets for the custom scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Authentication secrets for the custom scale rule.", + SerializedName = @"auth", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] HttpAuth { get; set; } + /// Metadata properties to describe http scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Metadata properties to describe http scale rule.", + SerializedName = @"metadata", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata HttpMetadata { get; set; } + /// Scale Rule Name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Scale Rule Name", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Authentication secrets for the tcp scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Authentication secrets for the tcp scale rule.", + SerializedName = @"auth", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] TcpAuth { get; set; } + /// Metadata properties to describe tcp scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Metadata properties to describe tcp scale rule.", + SerializedName = @"metadata", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata TcpMetadata { get; set; } + + } + /// Container App container scaling rule. + internal partial interface IScaleRuleInternal + + { + /// Azure Queue based scaling. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IQueueScaleRule AzureQueue { get; set; } + /// Authentication secrets for the queue scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] AzureQueueAuth { get; set; } + /// Queue length. + int? AzureQueueLength { get; set; } + /// Queue name. + string AzureQueueName { get; set; } + /// Custom scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRule Custom { get; set; } + /// Authentication secrets for the custom scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] CustomAuth { get; set; } + /// Metadata properties to describe custom scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomScaleRuleMetadata CustomMetadata { get; set; } + /// + /// Type of the custom scale rule + /// eg: azure-servicebus, redis etc. + /// + string CustomType { get; set; } + /// HTTP requests based scaling. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRule Http { get; set; } + /// Authentication secrets for the custom scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] HttpAuth { get; set; } + /// Metadata properties to describe http scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IHttpScaleRuleMetadata HttpMetadata { get; set; } + /// Scale Rule Name + string Name { get; set; } + /// Tcp requests based scaling. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule Tcp { get; set; } + /// Authentication secrets for the tcp scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] TcpAuth { get; set; } + /// Metadata properties to describe tcp scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata TcpMetadata { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.json.cs new file mode 100644 index 000000000000..aa872d3f9f3a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRule.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container scaling rule. + public partial class ScaleRule + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ScaleRule(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ScaleRule(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_azureQueue = If( json?.PropertyT("azureQueue"), out var __jsonAzureQueue) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.QueueScaleRule.FromJson(__jsonAzureQueue) : AzureQueue;} + {_custom = If( json?.PropertyT("custom"), out var __jsonCustom) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CustomScaleRule.FromJson(__jsonCustom) : Custom;} + {_http = If( json?.PropertyT("http"), out var __jsonHttp) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.HttpScaleRule.FromJson(__jsonHttp) : Http;} + {_tcp = If( json?.PropertyT("tcp"), out var __jsonTcp) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TcpScaleRule.FromJson(__jsonTcp) : Tcp;} + {_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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._azureQueue ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._azureQueue.ToJson(null,serializationMode) : null, "azureQueue" ,container.Add ); + AddIf( null != this._custom ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._custom.ToJson(null,serializationMode) : null, "custom" ,container.Add ); + AddIf( null != this._http ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._http.ToJson(null,serializationMode) : null, "http" ,container.Add ); + AddIf( null != this._tcp ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._tcp.ToJson(null,serializationMode) : null, "tcp" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.PowerShell.cs new file mode 100644 index 000000000000..b74a12005387 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Auth Secrets for Container App Scale Rule + [System.ComponentModel.TypeConverter(typeof(ScaleRuleAuthTypeConverter))] + public partial class ScaleRuleAuth + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ScaleRuleAuth(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ScaleRuleAuth(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ScaleRuleAuth(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SecretRef")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuthInternal)this).SecretRef = (string) content.GetValueForProperty("SecretRef",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuthInternal)this).SecretRef, global::System.Convert.ToString); + } + if (content.Contains("TriggerParameter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuthInternal)this).TriggerParameter = (string) content.GetValueForProperty("TriggerParameter",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuthInternal)this).TriggerParameter, 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 ScaleRuleAuth(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SecretRef")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuthInternal)this).SecretRef = (string) content.GetValueForProperty("SecretRef",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuthInternal)this).SecretRef, global::System.Convert.ToString); + } + if (content.Contains("TriggerParameter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuthInternal)this).TriggerParameter = (string) content.GetValueForProperty("TriggerParameter",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuthInternal)this).TriggerParameter, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Auth Secrets for Container App Scale Rule + [System.ComponentModel.TypeConverter(typeof(ScaleRuleAuthTypeConverter))] + public partial interface IScaleRuleAuth + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.TypeConverter.cs new file mode 100644 index 000000000000..43cf5f451c57 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScaleRuleAuthTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ScaleRuleAuth.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ScaleRuleAuth.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ScaleRuleAuth.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.cs new file mode 100644 index 000000000000..c2a6762dfc9d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Auth Secrets for Container App Scale Rule + public partial class ScaleRuleAuth : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuthInternal + { + + /// Backing field for property. + private string _secretRef; + + /// Name of the Container App secret from which to pull the auth params. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string SecretRef { get => this._secretRef; set => this._secretRef = value; } + + /// Backing field for property. + private string _triggerParameter; + + /// Trigger Parameter that uses the secret + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string TriggerParameter { get => this._triggerParameter; set => this._triggerParameter = value; } + + /// Creates an new instance. + public ScaleRuleAuth() + { + + } + } + /// Auth Secrets for Container App Scale Rule + public partial interface IScaleRuleAuth : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Name of the Container App secret from which to pull the auth params. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Container App secret from which to pull the auth params.", + SerializedName = @"secretRef", + PossibleTypes = new [] { typeof(string) })] + string SecretRef { get; set; } + /// Trigger Parameter that uses the secret + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Trigger Parameter that uses the secret", + SerializedName = @"triggerParameter", + PossibleTypes = new [] { typeof(string) })] + string TriggerParameter { get; set; } + + } + /// Auth Secrets for Container App Scale Rule + internal partial interface IScaleRuleAuthInternal + + { + /// Name of the Container App secret from which to pull the auth params. + string SecretRef { get; set; } + /// Trigger Parameter that uses the secret + string TriggerParameter { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.json.cs new file mode 100644 index 000000000000..a5a9edd3d9f1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/ScaleRuleAuth.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Auth Secrets for Container App Scale Rule + public partial class ScaleRuleAuth + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ScaleRuleAuth(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ScaleRuleAuth(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_secretRef = If( json?.PropertyT("secretRef"), out var __jsonSecretRef) ? (string)__jsonSecretRef : (string)SecretRef;} + {_triggerParameter = If( json?.PropertyT("triggerParameter"), out var __jsonTriggerParameter) ? (string)__jsonTriggerParameter : (string)TriggerParameter;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._secretRef)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._secretRef.ToString()) : null, "secretRef" ,container.Add ); + AddIf( null != (((object)this._triggerParameter)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._triggerParameter.ToString()) : null, "triggerParameter" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Secret.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Secret.PowerShell.cs new file mode 100644 index 000000000000..9fdb78632da8 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Secret.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Secret definition. + [System.ComponentModel.TypeConverter(typeof(SecretTypeConverter))] + public partial class Secret + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ISecret DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Secret(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Secret(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Secret(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretInternal)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 Secret(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretInternal)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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Secret definition. + [System.ComponentModel.TypeConverter(typeof(SecretTypeConverter))] + public partial interface ISecret + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Secret.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Secret.TypeConverter.cs new file mode 100644 index 000000000000..42463855fe75 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Secret.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SecretTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Secret.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Secret.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Secret.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Secret.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Secret.cs new file mode 100644 index 000000000000..ab573eb4d8d5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Secret.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Secret definition. + public partial class Secret : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretInternal + { + + /// Backing field for property. + private string _name; + + /// Secret Name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _value; + + /// Secret Value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public Secret() + { + + } + } + /// Secret definition. + public partial interface ISecret : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Secret Name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Secret Name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Secret Value. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Secret Value.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(string) })] + string Value { get; set; } + + } + /// Secret definition. + internal partial interface ISecretInternal + + { + /// Secret Name. + string Name { get; set; } + /// Secret Value. + string Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Secret.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Secret.json.cs new file mode 100644 index 000000000000..06a594339129 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Secret.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Secret definition. + public partial class Secret + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Secret(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Secret(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._value)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/SecretsCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.PowerShell.cs new file mode 100644 index 000000000000..e3f9bcfa3c54 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App Secrets Collection ARM resource. + [System.ComponentModel.TypeConverter(typeof(SecretsCollectionTypeConverter))] + public partial class SecretsCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SecretsCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SecretsCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SecretsCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppSecretTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SecretsCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppSecretTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App Secrets Collection ARM resource. + [System.ComponentModel.TypeConverter(typeof(SecretsCollectionTypeConverter))] + public partial interface ISecretsCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.TypeConverter.cs new file mode 100644 index 000000000000..37cb4aaf1dfc --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SecretsCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SecretsCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SecretsCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SecretsCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.cs new file mode 100644 index 000000000000..0fe7f1229035 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Secrets Collection ARM resource. + public partial class SecretsCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollectionInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret[] _value; + + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public SecretsCollection() + { + + } + } + /// Container App Secrets Collection ARM resource. + public partial interface ISecretsCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret[] Value { get; set; } + + } + /// Container App Secrets Collection ARM resource. + internal partial interface ISecretsCollectionInternal + + { + /// Collection of resources. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.json.cs new file mode 100644 index 000000000000..53e431da5263 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SecretsCollection.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App Secrets Collection ARM resource. + public partial class SecretsCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new SecretsCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal SecretsCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerAppSecret.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/SourceControl.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.PowerShell.cs new file mode 100644 index 000000000000..734ea2356b0e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.PowerShell.cs @@ -0,0 +1,378 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App SourceControl. + [System.ComponentModel.TypeConverter(typeof(SourceControlTypeConverter))] + public partial class SourceControl + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ISourceControl DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SourceControl(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SourceControl(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SourceControl(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControlPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration) content.GetValueForProperty("GithubActionConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GithubActionConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("OperationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).OperationState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState?) content.GetValueForProperty("OperationState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).OperationState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState.CreateFrom); + } + if (content.Contains("RepoUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RepoUrl = (string) content.GetValueForProperty("RepoUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RepoUrl, global::System.Convert.ToString); + } + if (content.Contains("Branch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).Branch = (string) content.GetValueForProperty("Branch",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).Branch, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationRegistryInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationRegistryInfo = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo) content.GetValueForProperty("GithubActionConfigurationRegistryInfo",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationRegistryInfo, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryInfoTypeConverter.ConvertFrom); + } + if (content.Contains("GithubActionConfigurationAzureCredentials")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationAzureCredentials = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials) content.GetValueForProperty("GithubActionConfigurationAzureCredentials",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationAzureCredentials, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureCredentialsTypeConverter.ConvertFrom); + } + if (content.Contains("GithubActionConfigurationContextPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationContextPath = (string) content.GetValueForProperty("GithubActionConfigurationContextPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationContextPath, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationImage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationImage = (string) content.GetValueForProperty("GithubActionConfigurationImage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationImage, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationPublishType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationPublishType = (string) content.GetValueForProperty("GithubActionConfigurationPublishType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationPublishType, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationOS")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationOS = (string) content.GetValueForProperty("GithubActionConfigurationOS",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationOS, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationRuntimeStack")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationRuntimeStack = (string) content.GetValueForProperty("GithubActionConfigurationRuntimeStack",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationRuntimeStack, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationRuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationRuntimeVersion = (string) content.GetValueForProperty("GithubActionConfigurationRuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationRuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RegistryInfoRegistryUrl = (string) content.GetValueForProperty("RegistryInfoRegistryUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RegistryInfoRegistryUrl, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RegistryInfoRegistryPassword = (string) content.GetValueForProperty("RegistryInfoRegistryPassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RegistryInfoRegistryPassword, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsClientId = (string) content.GetValueForProperty("AzureCredentialsClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsClientId, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsClientSecret = (string) content.GetValueForProperty("AzureCredentialsClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsClientSecret, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsTenantId = (string) content.GetValueForProperty("AzureCredentialsTenantId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsTenantId, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsSubscriptionId = (string) content.GetValueForProperty("AzureCredentialsSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryUserName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RegistryInfoRegistryUserName = (string) content.GetValueForProperty("RegistryInfoRegistryUserName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RegistryInfoRegistryUserName, 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 SourceControl(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControlPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration) content.GetValueForProperty("GithubActionConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GithubActionConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("OperationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).OperationState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState?) content.GetValueForProperty("OperationState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).OperationState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState.CreateFrom); + } + if (content.Contains("RepoUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RepoUrl = (string) content.GetValueForProperty("RepoUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RepoUrl, global::System.Convert.ToString); + } + if (content.Contains("Branch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).Branch = (string) content.GetValueForProperty("Branch",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).Branch, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationRegistryInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationRegistryInfo = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo) content.GetValueForProperty("GithubActionConfigurationRegistryInfo",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationRegistryInfo, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryInfoTypeConverter.ConvertFrom); + } + if (content.Contains("GithubActionConfigurationAzureCredentials")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationAzureCredentials = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials) content.GetValueForProperty("GithubActionConfigurationAzureCredentials",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationAzureCredentials, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureCredentialsTypeConverter.ConvertFrom); + } + if (content.Contains("GithubActionConfigurationContextPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationContextPath = (string) content.GetValueForProperty("GithubActionConfigurationContextPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationContextPath, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationImage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationImage = (string) content.GetValueForProperty("GithubActionConfigurationImage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationImage, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationPublishType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationPublishType = (string) content.GetValueForProperty("GithubActionConfigurationPublishType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationPublishType, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationOS")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationOS = (string) content.GetValueForProperty("GithubActionConfigurationOS",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationOS, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationRuntimeStack")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationRuntimeStack = (string) content.GetValueForProperty("GithubActionConfigurationRuntimeStack",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationRuntimeStack, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationRuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationRuntimeVersion = (string) content.GetValueForProperty("GithubActionConfigurationRuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).GithubActionConfigurationRuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RegistryInfoRegistryUrl = (string) content.GetValueForProperty("RegistryInfoRegistryUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RegistryInfoRegistryUrl, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RegistryInfoRegistryPassword = (string) content.GetValueForProperty("RegistryInfoRegistryPassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RegistryInfoRegistryPassword, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsClientId = (string) content.GetValueForProperty("AzureCredentialsClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsClientId, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsClientSecret = (string) content.GetValueForProperty("AzureCredentialsClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsClientSecret, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsTenantId = (string) content.GetValueForProperty("AzureCredentialsTenantId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsTenantId, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsSubscriptionId = (string) content.GetValueForProperty("AzureCredentialsSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).AzureCredentialsSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryUserName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RegistryInfoRegistryUserName = (string) content.GetValueForProperty("RegistryInfoRegistryUserName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal)this).RegistryInfoRegistryUserName, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App SourceControl. + [System.ComponentModel.TypeConverter(typeof(SourceControlTypeConverter))] + public partial interface ISourceControl + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.TypeConverter.cs new file mode 100644 index 000000000000..b0ad185c2ef8 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SourceControlTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SourceControl.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SourceControl.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SourceControl.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.cs new file mode 100644 index 000000000000..b26aff4fb7b1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.cs @@ -0,0 +1,369 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App SourceControl. + public partial class SourceControl : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(); + + /// Client Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureCredentialsClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).AzureCredentialsClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).AzureCredentialsClientId = value ?? null; } + + /// Client Secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureCredentialsClientSecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).AzureCredentialsClientSecret; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).AzureCredentialsClientSecret = value ?? null; } + + /// Subscription Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureCredentialsSubscriptionId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).AzureCredentialsSubscriptionId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).AzureCredentialsSubscriptionId = value ?? null; } + + /// Tenant Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureCredentialsTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).AzureCredentialsTenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).AzureCredentialsTenantId = value ?? null; } + + /// The branch which will trigger the auto deployment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Branch { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).Branch; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).Branch = value ?? null; } + + /// Context path + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GithubActionConfigurationContextPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationContextPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationContextPath = value ?? null; } + + /// Image name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GithubActionConfigurationImage { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationImage; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationImage = value ?? null; } + + /// Operation system + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GithubActionConfigurationOS { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationOS; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationOS = value ?? null; } + + /// Code or Image + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GithubActionConfigurationPublishType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationPublishType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationPublishType = value ?? null; } + + /// Runtime stack + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GithubActionConfigurationRuntimeStack { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationRuntimeStack; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationRuntimeStack = value ?? null; } + + /// Runtime version + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GithubActionConfigurationRuntimeVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationRuntimeVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationRuntimeVersion = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; } + + /// Internal Acessors for GithubActionConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal.GithubActionConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfiguration = value; } + + /// Internal Acessors for GithubActionConfigurationAzureCredentials + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal.GithubActionConfigurationAzureCredentials { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationAzureCredentials; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationAzureCredentials = value; } + + /// Internal Acessors for GithubActionConfigurationRegistryInfo + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal.GithubActionConfigurationRegistryInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationRegistryInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).GithubActionConfigurationRegistryInfo = value; } + + /// Internal Acessors for OperationState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal.OperationState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).OperationState; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).OperationState = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControlProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; } + + /// Current provisioning State of the operation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState? OperationState { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).OperationState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties _property; + + /// SourceControl resource specific properties + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControlProperties()); set => this._property = value; } + + /// registry secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistryInfoRegistryPassword { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).RegistryInfoRegistryPassword; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).RegistryInfoRegistryPassword = value ?? null; } + + /// registry server Url. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistryInfoRegistryUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).RegistryInfoRegistryUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).RegistryInfoRegistryUrl = value ?? null; } + + /// registry username. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistryInfoRegistryUserName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).RegistryInfoRegistryUserName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).RegistryInfoRegistryUserName = value ?? null; } + + /// The repo url which will be integrated to ContainerApp. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RepoUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).RepoUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)Property).RepoUrl = value ?? null; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public SourceControl() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Container App SourceControl. + public partial interface ISourceControl : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource + { + /// Client Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Client Id.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string AzureCredentialsClientId { get; set; } + /// Client Secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Client Secret.", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + string AzureCredentialsClientSecret { get; set; } + /// Subscription Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Subscription Id.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + string AzureCredentialsSubscriptionId { get; set; } + /// Tenant Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tenant Id.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string AzureCredentialsTenantId { get; set; } + /// The branch which will trigger the auto deployment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The branch which will trigger the auto deployment", + SerializedName = @"branch", + PossibleTypes = new [] { typeof(string) })] + string Branch { get; set; } + /// Context path + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Context path", + SerializedName = @"contextPath", + PossibleTypes = new [] { typeof(string) })] + string GithubActionConfigurationContextPath { get; set; } + /// Image name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Image name", + SerializedName = @"image", + PossibleTypes = new [] { typeof(string) })] + string GithubActionConfigurationImage { get; set; } + /// Operation system + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Operation system", + SerializedName = @"os", + PossibleTypes = new [] { typeof(string) })] + string GithubActionConfigurationOS { get; set; } + /// Code or Image + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Code or Image", + SerializedName = @"publishType", + PossibleTypes = new [] { typeof(string) })] + string GithubActionConfigurationPublishType { get; set; } + /// Runtime stack + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime stack", + SerializedName = @"runtimeStack", + PossibleTypes = new [] { typeof(string) })] + string GithubActionConfigurationRuntimeStack { get; set; } + /// Runtime version + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime version", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(string) })] + string GithubActionConfigurationRuntimeVersion { get; set; } + /// Current provisioning State of the operation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Current provisioning State of the operation", + SerializedName = @"operationState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState? OperationState { get; } + /// registry secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry secret.", + SerializedName = @"registryPassword", + PossibleTypes = new [] { typeof(string) })] + string RegistryInfoRegistryPassword { get; set; } + /// registry server Url. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry server Url.", + SerializedName = @"registryUrl", + PossibleTypes = new [] { typeof(string) })] + string RegistryInfoRegistryUrl { get; set; } + /// registry username. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry username.", + SerializedName = @"registryUserName", + PossibleTypes = new [] { typeof(string) })] + string RegistryInfoRegistryUserName { get; set; } + /// The repo url which will be integrated to ContainerApp. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The repo url which will be integrated to ContainerApp.", + SerializedName = @"repoUrl", + PossibleTypes = new [] { typeof(string) })] + string RepoUrl { get; set; } + + } + /// Container App SourceControl. + internal partial interface ISourceControlInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal + { + /// Client Id. + string AzureCredentialsClientId { get; set; } + /// Client Secret. + string AzureCredentialsClientSecret { get; set; } + /// Subscription Id. + string AzureCredentialsSubscriptionId { get; set; } + /// Tenant Id. + string AzureCredentialsTenantId { get; set; } + /// The branch which will trigger the auto deployment + string Branch { get; set; } + /// + /// Container App Revision Template with all possible settings and the + /// defaults if user did not provide them. The defaults are populated + /// as they were at the creation time + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration GithubActionConfiguration { get; set; } + /// AzureCredentials configurations. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials GithubActionConfigurationAzureCredentials { get; set; } + /// Context path + string GithubActionConfigurationContextPath { get; set; } + /// Image name + string GithubActionConfigurationImage { get; set; } + /// Operation system + string GithubActionConfigurationOS { get; set; } + /// Code or Image + string GithubActionConfigurationPublishType { get; set; } + /// Registry configurations. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo GithubActionConfigurationRegistryInfo { get; set; } + /// Runtime stack + string GithubActionConfigurationRuntimeStack { get; set; } + /// Runtime version + string GithubActionConfigurationRuntimeVersion { get; set; } + /// Current provisioning State of the operation + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState? OperationState { get; set; } + /// SourceControl resource specific properties + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties Property { get; set; } + /// registry secret. + string RegistryInfoRegistryPassword { get; set; } + /// registry server Url. + string RegistryInfoRegistryUrl { get; set; } + /// registry username. + string RegistryInfoRegistryUserName { get; set; } + /// The repo url which will be integrated to ContainerApp. + string RepoUrl { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.json.cs new file mode 100644 index 000000000000..24f4b7d9c526 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControl.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App SourceControl. + public partial class SourceControl + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new SourceControl(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal SourceControl(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControlProperties.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/SourceControlCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.PowerShell.cs new file mode 100644 index 000000000000..b7652038406e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// SourceControl collection ARM resource. + [System.ComponentModel.TypeConverter(typeof(SourceControlCollectionTypeConverter))] + public partial class SourceControlCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SourceControlCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SourceControlCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SourceControlCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControlTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollectionInternal)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 SourceControlCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControlTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollectionInternal)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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// SourceControl collection ARM resource. + [System.ComponentModel.TypeConverter(typeof(SourceControlCollectionTypeConverter))] + public partial interface ISourceControlCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.TypeConverter.cs new file mode 100644 index 000000000000..77c9520be7dd --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SourceControlCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SourceControlCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SourceControlCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SourceControlCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.cs new file mode 100644 index 000000000000..ace18c249697 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// SourceControl collection ARM resource. + public partial class SourceControlCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollectionInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollectionInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl[] _value; + + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public SourceControlCollection() + { + + } + } + /// SourceControl collection ARM resource. + public partial interface ISourceControlCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to next page of resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl[] Value { get; set; } + + } + /// SourceControl collection ARM resource. + internal partial interface ISourceControlCollectionInternal + + { + /// Link to next page of resources. + string NextLink { get; set; } + /// Collection of resources. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.json.cs new file mode 100644 index 000000000000..8eee7bf45457 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlCollection.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// SourceControl collection ARM resource. + public partial class SourceControlCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new SourceControlCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal SourceControlCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.ISourceControl) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControl.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api20221101Preview/SourceControlProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.PowerShell.cs new file mode 100644 index 000000000000..1173fe0fd98e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.PowerShell.cs @@ -0,0 +1,290 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// SourceControl resource specific properties + [System.ComponentModel.TypeConverter(typeof(SourceControlPropertiesTypeConverter))] + public partial class SourceControlProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SourceControlProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SourceControlProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SourceControlProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("GithubActionConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration) content.GetValueForProperty("GithubActionConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GithubActionConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("OperationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).OperationState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState?) content.GetValueForProperty("OperationState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).OperationState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState.CreateFrom); + } + if (content.Contains("RepoUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RepoUrl = (string) content.GetValueForProperty("RepoUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RepoUrl, global::System.Convert.ToString); + } + if (content.Contains("Branch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).Branch = (string) content.GetValueForProperty("Branch",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).Branch, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationRegistryInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationRegistryInfo = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo) content.GetValueForProperty("GithubActionConfigurationRegistryInfo",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationRegistryInfo, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryInfoTypeConverter.ConvertFrom); + } + if (content.Contains("GithubActionConfigurationAzureCredentials")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationAzureCredentials = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials) content.GetValueForProperty("GithubActionConfigurationAzureCredentials",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationAzureCredentials, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureCredentialsTypeConverter.ConvertFrom); + } + if (content.Contains("GithubActionConfigurationContextPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationContextPath = (string) content.GetValueForProperty("GithubActionConfigurationContextPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationContextPath, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationImage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationImage = (string) content.GetValueForProperty("GithubActionConfigurationImage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationImage, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationPublishType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationPublishType = (string) content.GetValueForProperty("GithubActionConfigurationPublishType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationPublishType, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationOS")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationOS = (string) content.GetValueForProperty("GithubActionConfigurationOS",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationOS, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationRuntimeStack")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationRuntimeStack = (string) content.GetValueForProperty("GithubActionConfigurationRuntimeStack",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationRuntimeStack, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationRuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationRuntimeVersion = (string) content.GetValueForProperty("GithubActionConfigurationRuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationRuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RegistryInfoRegistryUrl = (string) content.GetValueForProperty("RegistryInfoRegistryUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RegistryInfoRegistryUrl, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RegistryInfoRegistryPassword = (string) content.GetValueForProperty("RegistryInfoRegistryPassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RegistryInfoRegistryPassword, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsClientId = (string) content.GetValueForProperty("AzureCredentialsClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsClientId, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsClientSecret = (string) content.GetValueForProperty("AzureCredentialsClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsClientSecret, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsTenantId = (string) content.GetValueForProperty("AzureCredentialsTenantId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsTenantId, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsSubscriptionId = (string) content.GetValueForProperty("AzureCredentialsSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryUserName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RegistryInfoRegistryUserName = (string) content.GetValueForProperty("RegistryInfoRegistryUserName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RegistryInfoRegistryUserName, 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 SourceControlProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("GithubActionConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration) content.GetValueForProperty("GithubActionConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfiguration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GithubActionConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("OperationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).OperationState = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState?) content.GetValueForProperty("OperationState",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).OperationState, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState.CreateFrom); + } + if (content.Contains("RepoUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RepoUrl = (string) content.GetValueForProperty("RepoUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RepoUrl, global::System.Convert.ToString); + } + if (content.Contains("Branch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).Branch = (string) content.GetValueForProperty("Branch",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).Branch, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationRegistryInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationRegistryInfo = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo) content.GetValueForProperty("GithubActionConfigurationRegistryInfo",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationRegistryInfo, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.RegistryInfoTypeConverter.ConvertFrom); + } + if (content.Contains("GithubActionConfigurationAzureCredentials")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationAzureCredentials = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials) content.GetValueForProperty("GithubActionConfigurationAzureCredentials",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationAzureCredentials, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AzureCredentialsTypeConverter.ConvertFrom); + } + if (content.Contains("GithubActionConfigurationContextPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationContextPath = (string) content.GetValueForProperty("GithubActionConfigurationContextPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationContextPath, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationImage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationImage = (string) content.GetValueForProperty("GithubActionConfigurationImage",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationImage, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationPublishType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationPublishType = (string) content.GetValueForProperty("GithubActionConfigurationPublishType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationPublishType, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationOS")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationOS = (string) content.GetValueForProperty("GithubActionConfigurationOS",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationOS, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationRuntimeStack")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationRuntimeStack = (string) content.GetValueForProperty("GithubActionConfigurationRuntimeStack",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationRuntimeStack, global::System.Convert.ToString); + } + if (content.Contains("GithubActionConfigurationRuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationRuntimeVersion = (string) content.GetValueForProperty("GithubActionConfigurationRuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).GithubActionConfigurationRuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RegistryInfoRegistryUrl = (string) content.GetValueForProperty("RegistryInfoRegistryUrl",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RegistryInfoRegistryUrl, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RegistryInfoRegistryPassword = (string) content.GetValueForProperty("RegistryInfoRegistryPassword",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RegistryInfoRegistryPassword, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsClientId = (string) content.GetValueForProperty("AzureCredentialsClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsClientId, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsClientSecret = (string) content.GetValueForProperty("AzureCredentialsClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsClientSecret, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsTenantId = (string) content.GetValueForProperty("AzureCredentialsTenantId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsTenantId, global::System.Convert.ToString); + } + if (content.Contains("AzureCredentialsSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsSubscriptionId = (string) content.GetValueForProperty("AzureCredentialsSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).AzureCredentialsSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("RegistryInfoRegistryUserName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RegistryInfoRegistryUserName = (string) content.GetValueForProperty("RegistryInfoRegistryUserName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal)this).RegistryInfoRegistryUserName, 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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// SourceControl resource specific properties + [System.ComponentModel.TypeConverter(typeof(SourceControlPropertiesTypeConverter))] + public partial interface ISourceControlProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.TypeConverter.cs new file mode 100644 index 000000000000..5116a48fddee --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SourceControlPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SourceControlProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SourceControlProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SourceControlProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.cs new file mode 100644 index 000000000000..a3aa6f3b20c6 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.cs @@ -0,0 +1,300 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// SourceControl resource specific properties + public partial class SourceControlProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal + { + + /// Client Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureCredentialsClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).AzureCredentialsClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).AzureCredentialsClientId = value ?? null; } + + /// Client Secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureCredentialsClientSecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).AzureCredentialsClientSecret; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).AzureCredentialsClientSecret = value ?? null; } + + /// Subscription Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureCredentialsSubscriptionId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).AzureCredentialsSubscriptionId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).AzureCredentialsSubscriptionId = value ?? null; } + + /// Tenant Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string AzureCredentialsTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).AzureCredentialsTenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).AzureCredentialsTenantId = value ?? null; } + + /// Backing field for property. + private string _branch; + + /// The branch which will trigger the auto deployment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Branch { get => this._branch; set => this._branch = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration _githubActionConfiguration; + + /// + /// Container App Revision Template with all possible settings and the + /// defaults if user did not provide them. The defaults are populated + /// as they were at the creation time + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration GithubActionConfiguration { get => (this._githubActionConfiguration = this._githubActionConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GithubActionConfiguration()); set => this._githubActionConfiguration = value; } + + /// Context path + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GithubActionConfigurationContextPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).ContextPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).ContextPath = value ?? null; } + + /// Image name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GithubActionConfigurationImage { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).Image; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).Image = value ?? null; } + + /// Operation system + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GithubActionConfigurationOS { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).OS; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).OS = value ?? null; } + + /// Code or Image + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GithubActionConfigurationPublishType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).PublishType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).PublishType = value ?? null; } + + /// Runtime stack + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GithubActionConfigurationRuntimeStack { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).RuntimeStack; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).RuntimeStack = value ?? null; } + + /// Runtime version + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string GithubActionConfigurationRuntimeVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).RuntimeVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).RuntimeVersion = value ?? null; } + + /// Internal Acessors for GithubActionConfiguration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal.GithubActionConfiguration { get => (this._githubActionConfiguration = this._githubActionConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GithubActionConfiguration()); set { {_githubActionConfiguration = value;} } } + + /// Internal Acessors for GithubActionConfigurationAzureCredentials + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal.GithubActionConfigurationAzureCredentials { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).AzureCredentials; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).AzureCredentials = value; } + + /// Internal Acessors for GithubActionConfigurationRegistryInfo + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal.GithubActionConfigurationRegistryInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).RegistryInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).RegistryInfo = value; } + + /// Internal Acessors for OperationState + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlPropertiesInternal.OperationState { get => this._operationState; set { {_operationState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState? _operationState; + + /// Current provisioning State of the operation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState? OperationState { get => this._operationState; } + + /// registry secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistryInfoRegistryPassword { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).RegistryInfoRegistryPassword; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).RegistryInfoRegistryPassword = value ?? null; } + + /// registry server Url. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistryInfoRegistryUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).RegistryInfoRegistryUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).RegistryInfoRegistryUrl = value ?? null; } + + /// registry username. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistryInfoRegistryUserName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).RegistryInfoRegistryUserName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfigurationInternal)GithubActionConfiguration).RegistryInfoRegistryUserName = value ?? null; } + + /// Backing field for property. + private string _repoUrl; + + /// The repo url which will be integrated to ContainerApp. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string RepoUrl { get => this._repoUrl; set => this._repoUrl = value; } + + /// Creates an new instance. + public SourceControlProperties() + { + + } + } + /// SourceControl resource specific properties + public partial interface ISourceControlProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Client Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Client Id.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string AzureCredentialsClientId { get; set; } + /// Client Secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Client Secret.", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + string AzureCredentialsClientSecret { get; set; } + /// Subscription Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Subscription Id.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + string AzureCredentialsSubscriptionId { get; set; } + /// Tenant Id. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tenant Id.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string AzureCredentialsTenantId { get; set; } + /// The branch which will trigger the auto deployment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The branch which will trigger the auto deployment", + SerializedName = @"branch", + PossibleTypes = new [] { typeof(string) })] + string Branch { get; set; } + /// Context path + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Context path", + SerializedName = @"contextPath", + PossibleTypes = new [] { typeof(string) })] + string GithubActionConfigurationContextPath { get; set; } + /// Image name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Image name", + SerializedName = @"image", + PossibleTypes = new [] { typeof(string) })] + string GithubActionConfigurationImage { get; set; } + /// Operation system + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Operation system", + SerializedName = @"os", + PossibleTypes = new [] { typeof(string) })] + string GithubActionConfigurationOS { get; set; } + /// Code or Image + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Code or Image", + SerializedName = @"publishType", + PossibleTypes = new [] { typeof(string) })] + string GithubActionConfigurationPublishType { get; set; } + /// Runtime stack + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime stack", + SerializedName = @"runtimeStack", + PossibleTypes = new [] { typeof(string) })] + string GithubActionConfigurationRuntimeStack { get; set; } + /// Runtime version + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime version", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(string) })] + string GithubActionConfigurationRuntimeVersion { get; set; } + /// Current provisioning State of the operation + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Current provisioning State of the operation", + SerializedName = @"operationState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState? OperationState { get; } + /// registry secret. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry secret.", + SerializedName = @"registryPassword", + PossibleTypes = new [] { typeof(string) })] + string RegistryInfoRegistryPassword { get; set; } + /// registry server Url. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry server Url.", + SerializedName = @"registryUrl", + PossibleTypes = new [] { typeof(string) })] + string RegistryInfoRegistryUrl { get; set; } + /// registry username. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry username.", + SerializedName = @"registryUserName", + PossibleTypes = new [] { typeof(string) })] + string RegistryInfoRegistryUserName { get; set; } + /// The repo url which will be integrated to ContainerApp. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The repo url which will be integrated to ContainerApp.", + SerializedName = @"repoUrl", + PossibleTypes = new [] { typeof(string) })] + string RepoUrl { get; set; } + + } + /// SourceControl resource specific properties + internal partial interface ISourceControlPropertiesInternal + + { + /// Client Id. + string AzureCredentialsClientId { get; set; } + /// Client Secret. + string AzureCredentialsClientSecret { get; set; } + /// Subscription Id. + string AzureCredentialsSubscriptionId { get; set; } + /// Tenant Id. + string AzureCredentialsTenantId { get; set; } + /// The branch which will trigger the auto deployment + string Branch { get; set; } + /// + /// Container App Revision Template with all possible settings and the + /// defaults if user did not provide them. The defaults are populated + /// as they were at the creation time + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IGithubActionConfiguration GithubActionConfiguration { get; set; } + /// AzureCredentials configurations. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAzureCredentials GithubActionConfigurationAzureCredentials { get; set; } + /// Context path + string GithubActionConfigurationContextPath { get; set; } + /// Image name + string GithubActionConfigurationImage { get; set; } + /// Operation system + string GithubActionConfigurationOS { get; set; } + /// Code or Image + string GithubActionConfigurationPublishType { get; set; } + /// Registry configurations. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryInfo GithubActionConfigurationRegistryInfo { get; set; } + /// Runtime stack + string GithubActionConfigurationRuntimeStack { get; set; } + /// Runtime version + string GithubActionConfigurationRuntimeVersion { get; set; } + /// Current provisioning State of the operation + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState? OperationState { get; set; } + /// registry secret. + string RegistryInfoRegistryPassword { get; set; } + /// registry server Url. + string RegistryInfoRegistryUrl { get; set; } + /// registry username. + string RegistryInfoRegistryUserName { get; set; } + /// The repo url which will be integrated to ContainerApp. + string RepoUrl { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.json.cs new file mode 100644 index 000000000000..558dd297f817 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/SourceControlProperties.json.cs @@ -0,0 +1,117 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// SourceControl resource specific properties + public partial class SourceControlProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new SourceControlProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal SourceControlProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_githubActionConfiguration = If( json?.PropertyT("githubActionConfiguration"), out var __jsonGithubActionConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.GithubActionConfiguration.FromJson(__jsonGithubActionConfiguration) : GithubActionConfiguration;} + {_operationState = If( json?.PropertyT("operationState"), out var __jsonOperationState) ? (string)__jsonOperationState : (string)OperationState;} + {_repoUrl = If( json?.PropertyT("repoUrl"), out var __jsonRepoUrl) ? (string)__jsonRepoUrl : (string)RepoUrl;} + {_branch = If( json?.PropertyT("branch"), out var __jsonBranch) ? (string)__jsonBranch : (string)Branch;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._githubActionConfiguration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._githubActionConfiguration.ToJson(null,serializationMode) : null, "githubActionConfiguration" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._operationState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._operationState.ToString()) : null, "operationState" ,container.Add ); + } + AddIf( null != (((object)this._repoUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._repoUrl.ToString()) : null, "repoUrl" ,container.Add ); + AddIf( null != (((object)this._branch)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._branch.ToString()) : null, "branch" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.PowerShell.cs new file mode 100644 index 000000000000..7b4948363ff7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Container App container Tcp scaling rule. + [System.ComponentModel.TypeConverter(typeof(TcpScaleRuleTypeConverter))] + public partial class TcpScaleRule + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TcpScaleRule(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TcpScaleRule(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TcpScaleRule(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Metadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleInternal)this).Metadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata) content.GetValueForProperty("Metadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleInternal)this).Metadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TcpScaleRuleMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("Auth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleInternal)this).Auth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("Auth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleInternal)this).Auth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TcpScaleRule(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Metadata")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleInternal)this).Metadata = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata) content.GetValueForProperty("Metadata",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleInternal)this).Metadata, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TcpScaleRuleMetadataTypeConverter.ConvertFrom); + } + if (content.Contains("Auth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleInternal)this).Auth = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[]) content.GetValueForProperty("Auth",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleInternal)this).Auth, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuthTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App container Tcp scaling rule. + [System.ComponentModel.TypeConverter(typeof(TcpScaleRuleTypeConverter))] + public partial interface ITcpScaleRule + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.TypeConverter.cs new file mode 100644 index 000000000000..13a6dbd6de34 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TcpScaleRuleTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TcpScaleRule.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TcpScaleRule.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TcpScaleRule.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.cs new file mode 100644 index 000000000000..b395f1ad52eb --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container Tcp scaling rule. + public partial class TcpScaleRule : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] _auth; + + /// Authentication secrets for the tcp scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] Auth { get => this._auth; set => this._auth = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata _metadata; + + /// Metadata properties to describe tcp scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata Metadata { get => (this._metadata = this._metadata ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TcpScaleRuleMetadata()); set => this._metadata = value; } + + /// Creates an new instance. + public TcpScaleRule() + { + + } + } + /// Container App container Tcp scaling rule. + public partial interface ITcpScaleRule : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Authentication secrets for the tcp scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Authentication secrets for the tcp scale rule.", + SerializedName = @"auth", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] Auth { get; set; } + /// Metadata properties to describe tcp scale rule. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Metadata properties to describe tcp scale rule.", + SerializedName = @"metadata", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata Metadata { get; set; } + + } + /// Container App container Tcp scaling rule. + internal partial interface ITcpScaleRuleInternal + + { + /// Authentication secrets for the tcp scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth[] Auth { get; set; } + /// Metadata properties to describe tcp scale rule. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata Metadata { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.json.cs new file mode 100644 index 000000000000..3b84aef23090 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRule.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Container App container Tcp scaling rule. + public partial class TcpScaleRule + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRule FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new TcpScaleRule(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal TcpScaleRule(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_metadata = If( json?.PropertyT("metadata"), out var __jsonMetadata) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TcpScaleRuleMetadata.FromJson(__jsonMetadata) : Metadata;} + {_auth = If( json?.PropertyT("auth"), out var __jsonAuth) ? If( __jsonAuth as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IScaleRuleAuth) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleAuth.FromJson(__u) )) ))() : null : Auth;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._metadata ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._metadata.ToJson(null,serializationMode) : null, "metadata" ,container.Add ); + if (null != this._auth) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._auth ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("auth",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.PowerShell.cs new file mode 100644 index 000000000000..ef183fb027ca --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Metadata properties to describe tcp scale rule. + [System.ComponentModel.TypeConverter(typeof(TcpScaleRuleMetadataTypeConverter))] + public partial class TcpScaleRuleMetadata + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TcpScaleRuleMetadata(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TcpScaleRuleMetadata(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TcpScaleRuleMetadata(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 TcpScaleRuleMetadata(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Metadata properties to describe tcp scale rule. + [System.ComponentModel.TypeConverter(typeof(TcpScaleRuleMetadataTypeConverter))] + public partial interface ITcpScaleRuleMetadata + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.TypeConverter.cs new file mode 100644 index 000000000000..281c6d1872c5 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TcpScaleRuleMetadataTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TcpScaleRuleMetadata.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TcpScaleRuleMetadata.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TcpScaleRuleMetadata.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.cs new file mode 100644 index 000000000000..da96a3a07f20 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.cs @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Metadata properties to describe tcp scale rule. + public partial class TcpScaleRuleMetadata : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadataInternal + { + + /// Creates an new instance. + public TcpScaleRuleMetadata() + { + + } + } + /// Metadata properties to describe tcp scale rule. + public partial interface ITcpScaleRuleMetadata : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + + } + /// Metadata properties to describe tcp scale rule. + internal partial interface ITcpScaleRuleMetadataInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.dictionary.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.dictionary.cs new file mode 100644 index 000000000000..52dade18fa00 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + public partial class TcpScaleRuleMetadata : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.TcpScaleRuleMetadata source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.json.cs new file mode 100644 index 000000000000..634a4312d167 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TcpScaleRuleMetadata.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Metadata properties to describe tcp scale rule. + public partial class TcpScaleRuleMetadata + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITcpScaleRuleMetadata FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new TcpScaleRuleMetadata(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal TcpScaleRuleMetadata(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Template.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Template.PowerShell.cs new file mode 100644 index 000000000000..2fbdd091ced7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Template.PowerShell.cs @@ -0,0 +1,206 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// Container App versioned application definition. + /// Defines the desired state of an immutable revision. + /// Any changes to this section Will result in a new revision being created + /// + [System.ComponentModel.TypeConverter(typeof(TemplateTypeConverter))] + public partial class Template + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ITemplate DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Template(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Template(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Template(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Scale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).Scale = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale) content.GetValueForProperty("Scale",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).Scale, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleTypeConverter.ConvertFrom); + } + if (content.Contains("RevisionSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).RevisionSuffix = (string) content.GetValueForProperty("RevisionSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).RevisionSuffix, global::System.Convert.ToString); + } + if (content.Contains("InitContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).InitContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[]) content.GetValueForProperty("InitContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).InitContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("Container")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).Container = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[]) content.GetValueForProperty("Container",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).Container, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("Volume")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).Volume = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[]) content.GetValueForProperty("Volume",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).Volume, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeTypeConverter.ConvertFrom)); + } + if (content.Contains("ScaleMinReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).ScaleMinReplica = (int?) content.GetValueForProperty("ScaleMinReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).ScaleMinReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleMaxReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).ScaleMaxReplica = (int?) content.GetValueForProperty("ScaleMaxReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).ScaleMaxReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).ScaleRule = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]) content.GetValueForProperty("ScaleRule",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).ScaleRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Template(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Scale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).Scale = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale) content.GetValueForProperty("Scale",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).Scale, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleTypeConverter.ConvertFrom); + } + if (content.Contains("RevisionSuffix")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).RevisionSuffix = (string) content.GetValueForProperty("RevisionSuffix",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).RevisionSuffix, global::System.Convert.ToString); + } + if (content.Contains("InitContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).InitContainer = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[]) content.GetValueForProperty("InitContainer",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).InitContainer, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("Container")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).Container = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[]) content.GetValueForProperty("Container",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).Container, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerTypeConverter.ConvertFrom)); + } + if (content.Contains("Volume")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).Volume = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[]) content.GetValueForProperty("Volume",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).Volume, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.VolumeTypeConverter.ConvertFrom)); + } + if (content.Contains("ScaleMinReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).ScaleMinReplica = (int?) content.GetValueForProperty("ScaleMinReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).ScaleMinReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleMaxReplica")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).ScaleMaxReplica = (int?) content.GetValueForProperty("ScaleMaxReplica",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).ScaleMaxReplica, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).ScaleRule = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[]) content.GetValueForProperty("ScaleRule",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal)this).ScaleRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ScaleRuleTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container App versioned application definition. + /// Defines the desired state of an immutable revision. + /// Any changes to this section Will result in a new revision being created + [System.ComponentModel.TypeConverter(typeof(TemplateTypeConverter))] + public partial interface ITemplate + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Template.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Template.TypeConverter.cs new file mode 100644 index 000000000000..fb371ff2f524 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Template.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TemplateTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Template.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Template.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Template.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Template.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Template.cs new file mode 100644 index 000000000000..d5e303939322 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Template.cs @@ -0,0 +1,164 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Container App versioned application definition. + /// Defines the desired state of an immutable revision. + /// Any changes to this section Will result in a new revision being created + /// + public partial class Template : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] _container; + + /// List of container definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] Container { get => this._container; set => this._container = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] _initContainer; + + /// List of specialized containers that run before app containers. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] InitContainer { get => this._initContainer; set => this._initContainer = value; } + + /// Internal Acessors for Scale + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplateInternal.Scale { get => (this._scale = this._scale ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Scale()); set { {_scale = value;} } } + + /// Backing field for property. + private string _revisionSuffix; + + /// User friendly suffix that is appended to the revision name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string RevisionSuffix { get => this._revisionSuffix; set => this._revisionSuffix = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale _scale; + + /// Scaling properties for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale Scale { get => (this._scale = this._scale ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Scale()); set => this._scale = value; } + + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? ScaleMaxReplica { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)Scale).MaxReplica; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)Scale).MaxReplica = value ?? default(int); } + + /// Optional. Minimum number of container replicas. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? ScaleMinReplica { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)Scale).MinReplica; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)Scale).MinReplica = value ?? default(int); } + + /// Scaling rules. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)Scale).Rule; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleInternal)Scale).Rule = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] _volume; + + /// List of volume definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] Volume { get => this._volume; set => this._volume = value; } + + /// Creates an new instance. + public Template() + { + + } + } + /// Container App versioned application definition. + /// Defines the desired state of an immutable revision. + /// Any changes to this section Will result in a new revision being created + public partial interface ITemplate : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// List of container definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of container definitions for the Container App.", + SerializedName = @"containers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] Container { get; set; } + /// List of specialized containers that run before app containers. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of specialized containers that run before app containers.", + SerializedName = @"initContainers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] InitContainer { get; set; } + /// User friendly suffix that is appended to the revision name + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly suffix that is appended to the revision name", + SerializedName = @"revisionSuffix", + PossibleTypes = new [] { typeof(string) })] + string RevisionSuffix { get; set; } + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Maximum number of container replicas. Defaults to 10 if not set.", + SerializedName = @"maxReplicas", + PossibleTypes = new [] { typeof(int) })] + int? ScaleMaxReplica { get; set; } + /// Optional. Minimum number of container replicas. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Minimum number of container replicas.", + SerializedName = @"minReplicas", + PossibleTypes = new [] { typeof(int) })] + int? ScaleMinReplica { get; set; } + /// Scaling rules. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Scaling rules.", + SerializedName = @"rules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get; set; } + /// List of volume definitions for the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of volume definitions for the Container App.", + SerializedName = @"volumes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] Volume { get; set; } + + } + /// Container App versioned application definition. + /// Defines the desired state of an immutable revision. + /// Any changes to this section Will result in a new revision being created + internal partial interface ITemplateInternal + + { + /// List of container definitions for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] Container { get; set; } + /// List of specialized containers that run before app containers. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] InitContainer { get; set; } + /// User friendly suffix that is appended to the revision name + string RevisionSuffix { get; set; } + /// Scaling properties for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScale Scale { get; set; } + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + int? ScaleMaxReplica { get; set; } + /// Optional. Minimum number of container replicas. + int? ScaleMinReplica { get; set; } + /// Scaling rules. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get; set; } + /// List of volume definitions for the Container App. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] Volume { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Template.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Template.json.cs new file mode 100644 index 000000000000..e7998eef8829 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Template.json.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Container App versioned application definition. + /// Defines the desired state of an immutable revision. + /// Any changes to this section Will result in a new revision being created + /// + public partial class Template + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITemplate FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Template(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Template(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_scale = If( json?.PropertyT("scale"), out var __jsonScale) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Scale.FromJson(__jsonScale) : Scale;} + {_revisionSuffix = If( json?.PropertyT("revisionSuffix"), out var __jsonRevisionSuffix) ? (string)__jsonRevisionSuffix : (string)RevisionSuffix;} + {_initContainer = If( json?.PropertyT("initContainers"), out var __jsonInitContainers) ? If( __jsonInitContainers as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.BaseContainer.FromJson(__u) )) ))() : null : InitContainer;} + {_container = If( json?.PropertyT("containers"), out var __jsonContainers) ? If( __jsonContainers as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IContainer) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Container.FromJson(__p) )) ))() : null : Container;} + {_volume = If( json?.PropertyT("volumes"), out var __jsonVolumes) ? If( __jsonVolumes as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IVolume) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Volume.FromJson(__k) )) ))() : null : Volume;} + 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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._scale ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._scale.ToJson(null,serializationMode) : null, "scale" ,container.Add ); + AddIf( null != (((object)this._revisionSuffix)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._revisionSuffix.ToString()) : null, "revisionSuffix" ,container.Add ); + if (null != this._initContainer) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._initContainer ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("initContainers",__w); + } + if (null != this._container) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._container ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("containers",__r); + } + if (null != this._volume) + { + var __m = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __n in this._volume ) + { + AddIf(__n?.ToJson(null, serializationMode) ,__m.Add); + } + container.Add("volumes",__m); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.PowerShell.cs new file mode 100644 index 000000000000..2414eb20ab8f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.PowerShell.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Traffic weight assigned to a revision + [System.ComponentModel.TypeConverter(typeof(TrafficWeightTypeConverter))] + public partial class TrafficWeight + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TrafficWeight(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TrafficWeight(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TrafficWeight(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RevisionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).RevisionName = (string) content.GetValueForProperty("RevisionName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).RevisionName, global::System.Convert.ToString); + } + if (content.Contains("Weight")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).Weight = (int?) content.GetValueForProperty("Weight",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).Weight, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LatestRevision")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).LatestRevision = (bool?) content.GetValueForProperty("LatestRevision",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).LatestRevision, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Label")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).Label = (string) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).Label, 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 TrafficWeight(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RevisionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).RevisionName = (string) content.GetValueForProperty("RevisionName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).RevisionName, global::System.Convert.ToString); + } + if (content.Contains("Weight")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).Weight = (int?) content.GetValueForProperty("Weight",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).Weight, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LatestRevision")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).LatestRevision = (bool?) content.GetValueForProperty("LatestRevision",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).LatestRevision, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Label")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).Label = (string) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal)this).Label, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Traffic weight assigned to a revision + [System.ComponentModel.TypeConverter(typeof(TrafficWeightTypeConverter))] + public partial interface ITrafficWeight + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.TypeConverter.cs new file mode 100644 index 000000000000..09c7c8791642 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TrafficWeightTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TrafficWeight.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TrafficWeight.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TrafficWeight.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.cs new file mode 100644 index 000000000000..8cd297cc3630 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.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.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Traffic weight assigned to a revision + public partial class TrafficWeight : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeightInternal + { + + /// Backing field for property. + private string _label; + + /// Associates a traffic label with a revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Label { get => this._label; set => this._label = value; } + + /// Backing field for property. + private bool? _latestRevision; + + /// Indicates that the traffic weight belongs to a latest stable revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? LatestRevision { get => this._latestRevision; set => this._latestRevision = value; } + + /// Backing field for property. + private string _revisionName; + + /// Name of a revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string RevisionName { get => this._revisionName; set => this._revisionName = value; } + + /// Backing field for property. + private int? _weight; + + /// Traffic weight assigned to a revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? Weight { get => this._weight; set => this._weight = value; } + + /// Creates an new instance. + public TrafficWeight() + { + + } + } + /// Traffic weight assigned to a revision + public partial interface ITrafficWeight : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Associates a traffic label with a revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Associates a traffic label with a revision", + SerializedName = @"label", + PossibleTypes = new [] { typeof(string) })] + string Label { get; set; } + /// Indicates that the traffic weight belongs to a latest stable revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates that the traffic weight belongs to a latest stable revision", + SerializedName = @"latestRevision", + PossibleTypes = new [] { typeof(bool) })] + bool? LatestRevision { get; set; } + /// Name of a revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a revision", + SerializedName = @"revisionName", + PossibleTypes = new [] { typeof(string) })] + string RevisionName { get; set; } + /// Traffic weight assigned to a revision + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Traffic weight assigned to a revision", + SerializedName = @"weight", + PossibleTypes = new [] { typeof(int) })] + int? Weight { get; set; } + + } + /// Traffic weight assigned to a revision + internal partial interface ITrafficWeightInternal + + { + /// Associates a traffic label with a revision + string Label { get; set; } + /// Indicates that the traffic weight belongs to a latest stable revision + bool? LatestRevision { get; set; } + /// Name of a revision + string RevisionName { get; set; } + /// Traffic weight assigned to a revision + int? Weight { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.json.cs new file mode 100644 index 000000000000..fc953d183b6a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TrafficWeight.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Traffic weight assigned to a revision + public partial class TrafficWeight + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new TrafficWeight(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._revisionName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._revisionName.ToString()) : null, "revisionName" ,container.Add ); + AddIf( null != this._weight ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._weight) : null, "weight" ,container.Add ); + AddIf( null != this._latestRevision ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._latestRevision) : null, "latestRevision" ,container.Add ); + AddIf( null != (((object)this._label)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._label.ToString()) : null, "label" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal TrafficWeight(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_revisionName = If( json?.PropertyT("revisionName"), out var __jsonRevisionName) ? (string)__jsonRevisionName : (string)RevisionName;} + {_weight = If( json?.PropertyT("weight"), out var __jsonWeight) ? (int?)__jsonWeight : Weight;} + {_latestRevision = If( json?.PropertyT("latestRevision"), out var __jsonLatestRevision) ? (bool?)__jsonLatestRevision : LatestRevision;} + {_label = If( json?.PropertyT("label"), out var __jsonLabel) ? (string)__jsonLabel : (string)Label;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.PowerShell.cs new file mode 100644 index 000000000000..d2552dfeb266 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.PowerShell.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the Twitter provider. + [System.ComponentModel.TypeConverter(typeof(TwitterTypeConverter))] + public partial class Twitter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ITwitter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Twitter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Twitter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Twitter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TwitterRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RegistrationConsumerKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).RegistrationConsumerKey = (string) content.GetValueForProperty("RegistrationConsumerKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).RegistrationConsumerKey, global::System.Convert.ToString); + } + if (content.Contains("RegistrationConsumerSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).RegistrationConsumerSecretSettingName = (string) content.GetValueForProperty("RegistrationConsumerSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).RegistrationConsumerSecretSettingName, 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 Twitter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Registration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).Registration = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration) content.GetValueForProperty("Registration",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).Registration, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TwitterRegistrationTypeConverter.ConvertFrom); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RegistrationConsumerKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).RegistrationConsumerKey = (string) content.GetValueForProperty("RegistrationConsumerKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).RegistrationConsumerKey, global::System.Convert.ToString); + } + if (content.Contains("RegistrationConsumerSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).RegistrationConsumerSecretSettingName = (string) content.GetValueForProperty("RegistrationConsumerSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal)this).RegistrationConsumerSecretSettingName, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// The configuration settings of the Twitter provider. + [System.ComponentModel.TypeConverter(typeof(TwitterTypeConverter))] + public partial interface ITwitter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.TypeConverter.cs new file mode 100644 index 000000000000..f6df5f09a7e9 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TwitterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Twitter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Twitter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Twitter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.cs new file mode 100644 index 000000000000..c8f3ba745209 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Twitter provider. + public partial class Twitter : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitter, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal + { + + /// Backing field for property. + private bool? _enabled; + + /// + /// false if the Twitter provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Enabled { get => this._enabled; set => this._enabled = value; } + + /// Internal Acessors for Registration + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterInternal.Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TwitterRegistration()); set { {_registration = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration _registration; + + /// The configuration settings of the app registration for the Twitter provider. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration Registration { get => (this._registration = this._registration ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TwitterRegistration()); set => this._registration = value; } + + /// + /// The OAuth 1.0a consumer key of the Twitter application used for sign-in. + /// This setting is required for enabling Twitter Sign-In. + /// Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationConsumerKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistrationInternal)Registration).ConsumerKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistrationInternal)Registration).ConsumerKey = value ?? null; } + + /// + /// The app setting name that contains the OAuth 1.0a consumer secret of the Twitter + /// application used for sign-in. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string RegistrationConsumerSecretSettingName { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistrationInternal)Registration).ConsumerSecretSettingName; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistrationInternal)Registration).ConsumerSecretSettingName = value ?? null; } + + /// Creates an new instance. + public Twitter() + { + + } + } + /// The configuration settings of the Twitter provider. + public partial interface ITwitter : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// false if the Twitter provider should not be enabled despite the set registration; otherwise, true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the Twitter provider should not be enabled despite the set registration; otherwise, true.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? Enabled { get; set; } + /// + /// The OAuth 1.0a consumer key of the Twitter application used for sign-in. + /// This setting is required for enabling Twitter Sign-In. + /// Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The OAuth 1.0a consumer key of the Twitter application used for sign-in. + This setting is required for enabling Twitter Sign-In. + Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in", + SerializedName = @"consumerKey", + PossibleTypes = new [] { typeof(string) })] + string RegistrationConsumerKey { get; set; } + /// + /// The app setting name that contains the OAuth 1.0a consumer secret of the Twitter + /// application used for sign-in. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter + application used for sign-in.", + SerializedName = @"consumerSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string RegistrationConsumerSecretSettingName { get; set; } + + } + /// The configuration settings of the Twitter provider. + internal partial interface ITwitterInternal + + { + /// + /// false if the Twitter provider should not be enabled despite the set registration; otherwise, true. + /// + bool? Enabled { get; set; } + /// The configuration settings of the app registration for the Twitter provider. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration Registration { get; set; } + /// + /// The OAuth 1.0a consumer key of the Twitter application used for sign-in. + /// This setting is required for enabling Twitter Sign-In. + /// Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in + /// + string RegistrationConsumerKey { get; set; } + /// + /// The app setting name that contains the OAuth 1.0a consumer secret of the Twitter + /// application used for sign-in. + /// + string RegistrationConsumerSecretSettingName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.json.cs new file mode 100644 index 000000000000..aeb960743682 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Twitter.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the Twitter provider. + public partial class Twitter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitter FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Twitter(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._registration ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._registration.ToJson(null,serializationMode) : null, "registration" ,container.Add ); + AddIf( null != this._enabled ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._enabled) : null, "enabled" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Twitter(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_registration = If( json?.PropertyT("registration"), out var __jsonRegistration) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.TwitterRegistration.FromJson(__jsonRegistration) : Registration;} + {_enabled = If( json?.PropertyT("enabled"), out var __jsonEnabled) ? (bool?)__jsonEnabled : Enabled;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.PowerShell.cs new file mode 100644 index 000000000000..0ace3768e4d7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The configuration settings of the app registration for the Twitter provider. + [System.ComponentModel.TypeConverter(typeof(TwitterRegistrationTypeConverter))] + public partial class TwitterRegistration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TwitterRegistration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TwitterRegistration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TwitterRegistration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ConsumerKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistrationInternal)this).ConsumerKey = (string) content.GetValueForProperty("ConsumerKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistrationInternal)this).ConsumerKey, global::System.Convert.ToString); + } + if (content.Contains("ConsumerSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistrationInternal)this).ConsumerSecretSettingName = (string) content.GetValueForProperty("ConsumerSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistrationInternal)this).ConsumerSecretSettingName, 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 TwitterRegistration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ConsumerKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistrationInternal)this).ConsumerKey = (string) content.GetValueForProperty("ConsumerKey",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistrationInternal)this).ConsumerKey, global::System.Convert.ToString); + } + if (content.Contains("ConsumerSecretSettingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistrationInternal)this).ConsumerSecretSettingName = (string) content.GetValueForProperty("ConsumerSecretSettingName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistrationInternal)this).ConsumerSecretSettingName, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// The configuration settings of the app registration for the Twitter provider. + [System.ComponentModel.TypeConverter(typeof(TwitterRegistrationTypeConverter))] + public partial interface ITwitterRegistration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.TypeConverter.cs new file mode 100644 index 000000000000..778413692174 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TwitterRegistrationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TwitterRegistration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TwitterRegistration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TwitterRegistration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.cs new file mode 100644 index 000000000000..9011935e21d6 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.cs @@ -0,0 +1,92 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the app registration for the Twitter provider. + public partial class TwitterRegistration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistrationInternal + { + + /// Backing field for property. + private string _consumerKey; + + /// + /// The OAuth 1.0a consumer key of the Twitter application used for sign-in. + /// This setting is required for enabling Twitter Sign-In. + /// Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ConsumerKey { get => this._consumerKey; set => this._consumerKey = value; } + + /// Backing field for property. + private string _consumerSecretSettingName; + + /// + /// The app setting name that contains the OAuth 1.0a consumer secret of the Twitter + /// application used for sign-in. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ConsumerSecretSettingName { get => this._consumerSecretSettingName; set => this._consumerSecretSettingName = value; } + + /// Creates an new instance. + public TwitterRegistration() + { + + } + } + /// The configuration settings of the app registration for the Twitter provider. + public partial interface ITwitterRegistration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// The OAuth 1.0a consumer key of the Twitter application used for sign-in. + /// This setting is required for enabling Twitter Sign-In. + /// Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The OAuth 1.0a consumer key of the Twitter application used for sign-in. + This setting is required for enabling Twitter Sign-In. + Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in", + SerializedName = @"consumerKey", + PossibleTypes = new [] { typeof(string) })] + string ConsumerKey { get; set; } + /// + /// The app setting name that contains the OAuth 1.0a consumer secret of the Twitter + /// application used for sign-in. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter + application used for sign-in.", + SerializedName = @"consumerSecretSettingName", + PossibleTypes = new [] { typeof(string) })] + string ConsumerSecretSettingName { get; set; } + + } + /// The configuration settings of the app registration for the Twitter provider. + internal partial interface ITwitterRegistrationInternal + + { + /// + /// The OAuth 1.0a consumer key of the Twitter application used for sign-in. + /// This setting is required for enabling Twitter Sign-In. + /// Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in + /// + string ConsumerKey { get; set; } + /// + /// The app setting name that contains the OAuth 1.0a consumer secret of the Twitter + /// application used for sign-in. + /// + string ConsumerSecretSettingName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.json.cs new file mode 100644 index 000000000000..43aa51632155 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/TwitterRegistration.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The configuration settings of the app registration for the Twitter provider. + public partial class TwitterRegistration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITwitterRegistration FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new TwitterRegistration(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._consumerKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._consumerKey.ToString()) : null, "consumerKey" ,container.Add ); + AddIf( null != (((object)this._consumerSecretSettingName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._consumerSecretSettingName.ToString()) : null, "consumerSecretSettingName" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal TwitterRegistration(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_consumerKey = If( json?.PropertyT("consumerKey"), out var __jsonConsumerKey) ? (string)__jsonConsumerKey : (string)ConsumerKey;} + {_consumerSecretSettingName = If( json?.PropertyT("consumerSecretSettingName"), out var __jsonConsumerSecretSettingName) ? (string)__jsonConsumerSecretSettingName : (string)ConsumerSecretSettingName;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.PowerShell.cs new file mode 100644 index 000000000000..cacef5954fe1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.PowerShell.cs @@ -0,0 +1,210 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Configuration properties for apps environment to join a Virtual Network + [System.ComponentModel.TypeConverter(typeof(VnetConfigurationTypeConverter))] + public partial class VnetConfiguration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new VnetConfiguration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new VnetConfiguration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal VnetConfiguration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OutboundSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).OutboundSetting = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings) content.GetValueForProperty("OutboundSetting",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).OutboundSetting, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentOutboundSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("Internal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).Internal = (bool?) content.GetValueForProperty("Internal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).Internal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("InfrastructureSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).InfrastructureSubnetId = (string) content.GetValueForProperty("InfrastructureSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).InfrastructureSubnetId, global::System.Convert.ToString); + } + if (content.Contains("RuntimeSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).RuntimeSubnetId = (string) content.GetValueForProperty("RuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).RuntimeSubnetId, global::System.Convert.ToString); + } + if (content.Contains("DockerBridgeCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).DockerBridgeCidr = (string) content.GetValueForProperty("DockerBridgeCidr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).DockerBridgeCidr, global::System.Convert.ToString); + } + if (content.Contains("PlatformReservedCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).PlatformReservedCidr = (string) content.GetValueForProperty("PlatformReservedCidr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).PlatformReservedCidr, global::System.Convert.ToString); + } + if (content.Contains("PlatformReservedDnsIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).PlatformReservedDnsIP = (string) content.GetValueForProperty("PlatformReservedDnsIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).PlatformReservedDnsIP, global::System.Convert.ToString); + } + if (content.Contains("OutboundSettingOutBoundType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).OutboundSettingOutBoundType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType?) content.GetValueForProperty("OutboundSettingOutBoundType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).OutboundSettingOutBoundType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType.CreateFrom); + } + if (content.Contains("OutboundSettingVirtualNetworkApplianceIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).OutboundSettingVirtualNetworkApplianceIP = (string) content.GetValueForProperty("OutboundSettingVirtualNetworkApplianceIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).OutboundSettingVirtualNetworkApplianceIP, 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 VnetConfiguration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OutboundSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).OutboundSetting = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings) content.GetValueForProperty("OutboundSetting",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).OutboundSetting, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentOutboundSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("Internal")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).Internal = (bool?) content.GetValueForProperty("Internal",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).Internal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("InfrastructureSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).InfrastructureSubnetId = (string) content.GetValueForProperty("InfrastructureSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).InfrastructureSubnetId, global::System.Convert.ToString); + } + if (content.Contains("RuntimeSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).RuntimeSubnetId = (string) content.GetValueForProperty("RuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).RuntimeSubnetId, global::System.Convert.ToString); + } + if (content.Contains("DockerBridgeCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).DockerBridgeCidr = (string) content.GetValueForProperty("DockerBridgeCidr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).DockerBridgeCidr, global::System.Convert.ToString); + } + if (content.Contains("PlatformReservedCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).PlatformReservedCidr = (string) content.GetValueForProperty("PlatformReservedCidr",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).PlatformReservedCidr, global::System.Convert.ToString); + } + if (content.Contains("PlatformReservedDnsIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).PlatformReservedDnsIP = (string) content.GetValueForProperty("PlatformReservedDnsIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).PlatformReservedDnsIP, global::System.Convert.ToString); + } + if (content.Contains("OutboundSettingOutBoundType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).OutboundSettingOutBoundType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType?) content.GetValueForProperty("OutboundSettingOutBoundType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).OutboundSettingOutBoundType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType.CreateFrom); + } + if (content.Contains("OutboundSettingVirtualNetworkApplianceIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).OutboundSettingVirtualNetworkApplianceIP = (string) content.GetValueForProperty("OutboundSettingVirtualNetworkApplianceIP",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal)this).OutboundSettingVirtualNetworkApplianceIP, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Configuration properties for apps environment to join a Virtual Network + [System.ComponentModel.TypeConverter(typeof(VnetConfigurationTypeConverter))] + public partial interface IVnetConfiguration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.TypeConverter.cs new file mode 100644 index 000000000000..327108ed548a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class VnetConfigurationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return VnetConfiguration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return VnetConfiguration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return VnetConfiguration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.cs new file mode 100644 index 000000000000..112e2e068807 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.cs @@ -0,0 +1,224 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Configuration properties for apps environment to join a Virtual Network + public partial class VnetConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal + { + + /// Backing field for property. + private string _dockerBridgeCidr; + + /// + /// CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string DockerBridgeCidr { get => this._dockerBridgeCidr; set => this._dockerBridgeCidr = value; } + + /// Backing field for property. + private string _infrastructureSubnetId; + + /// + /// Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + /// Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string InfrastructureSubnetId { get => this._infrastructureSubnetId; set => this._infrastructureSubnetId = value; } + + /// Backing field for property. + private bool? _internal; + + /// + /// Boolean indicating the environment only has an internal load balancer. These environments do not have a public static + /// IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? Internal { get => this._internal; set => this._internal = value; } + + /// Internal Acessors for OutboundSetting + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfigurationInternal.OutboundSetting { get => (this._outboundSetting = this._outboundSetting ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentOutboundSettings()); set { {_outboundSetting = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings _outboundSetting; + + /// Configuration used to control the Environment Egress outbound traffic + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings OutboundSetting { get => (this._outboundSetting = this._outboundSetting ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentOutboundSettings()); set => this._outboundSetting = value; } + + /// Outbound type for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType? OutboundSettingOutBoundType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettingsInternal)OutboundSetting).OutBoundType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettingsInternal)OutboundSetting).OutBoundType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType)""); } + + /// Virtual Appliance IP used as the Egress controller for the Environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string OutboundSettingVirtualNetworkApplianceIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettingsInternal)OutboundSetting).VirtualNetworkApplianceIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettingsInternal)OutboundSetting).VirtualNetworkApplianceIP = value ?? null; } + + /// Backing field for property. + private string _platformReservedCidr; + + /// + /// IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any + /// other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string PlatformReservedCidr { get => this._platformReservedCidr; set => this._platformReservedCidr = value; } + + /// Backing field for property. + private string _platformReservedDnsIP; + + /// + /// An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string PlatformReservedDnsIP { get => this._platformReservedDnsIP; set => this._platformReservedDnsIP = value; } + + /// Backing field for property. + private string _runtimeSubnetId; + + /// + /// Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet + /// defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string RuntimeSubnetId { get => this._runtimeSubnetId; set => this._runtimeSubnetId = value; } + + /// Creates an new instance. + public VnetConfiguration() + { + + } + } + /// Configuration properties for apps environment to join a Virtual Network + public partial interface IVnetConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges.", + SerializedName = @"dockerBridgeCidr", + PossibleTypes = new [] { typeof(string) })] + string DockerBridgeCidr { get; set; } + /// + /// Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + /// Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. Must not overlap with any other provided IP ranges.", + SerializedName = @"infrastructureSubnetId", + PossibleTypes = new [] { typeof(string) })] + string InfrastructureSubnetId { get; set; } + /// + /// Boolean indicating the environment only has an internal load balancer. These environments do not have a public static + /// IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean indicating the environment only has an internal load balancer. These environments do not have a public static IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property", + SerializedName = @"internal", + PossibleTypes = new [] { typeof(bool) })] + bool? Internal { get; set; } + /// Outbound type for the cluster + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Outbound type for the cluster", + SerializedName = @"outBoundType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType? OutboundSettingOutBoundType { get; set; } + /// Virtual Appliance IP used as the Egress controller for the Environment + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Virtual Appliance IP used as the Egress controller for the Environment", + SerializedName = @"virtualNetworkApplianceIp", + PossibleTypes = new [] { typeof(string) })] + string OutboundSettingVirtualNetworkApplianceIP { get; set; } + /// + /// IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any + /// other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any other provided IP ranges.", + SerializedName = @"platformReservedCidr", + PossibleTypes = new [] { typeof(string) })] + string PlatformReservedCidr { get; set; } + /// + /// An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @" An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server.", + SerializedName = @"platformReservedDnsIP", + PossibleTypes = new [] { typeof(string) })] + string PlatformReservedDnsIP { get; set; } + /// + /// Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet + /// defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges.", + SerializedName = @"runtimeSubnetId", + PossibleTypes = new [] { typeof(string) })] + string RuntimeSubnetId { get; set; } + + } + /// Configuration properties for apps environment to join a Virtual Network + internal partial interface IVnetConfigurationInternal + + { + /// + /// CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges. + /// + string DockerBridgeCidr { get; set; } + /// + /// Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + /// Must not overlap with any other provided IP ranges. + /// + string InfrastructureSubnetId { get; set; } + /// + /// Boolean indicating the environment only has an internal load balancer. These environments do not have a public static + /// IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + /// + bool? Internal { get; set; } + /// Configuration used to control the Environment Egress outbound traffic + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentOutboundSettings OutboundSetting { get; set; } + /// Outbound type for the cluster + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType? OutboundSettingOutBoundType { get; set; } + /// Virtual Appliance IP used as the Egress controller for the Environment + string OutboundSettingVirtualNetworkApplianceIP { get; set; } + /// + /// IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any + /// other provided IP ranges. + /// + string PlatformReservedCidr { get; set; } + /// + /// An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + /// + string PlatformReservedDnsIP { get; set; } + /// + /// Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet + /// defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges. + /// + string RuntimeSubnetId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.json.cs new file mode 100644 index 000000000000..0ba72e151edc --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/VnetConfiguration.json.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Configuration properties for apps environment to join a Virtual Network + public partial class VnetConfiguration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVnetConfiguration FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new VnetConfiguration(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._outboundSetting ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._outboundSetting.ToJson(null,serializationMode) : null, "outboundSettings" ,container.Add ); + AddIf( null != this._internal ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._internal) : null, "internal" ,container.Add ); + AddIf( null != (((object)this._infrastructureSubnetId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._infrastructureSubnetId.ToString()) : null, "infrastructureSubnetId" ,container.Add ); + AddIf( null != (((object)this._runtimeSubnetId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._runtimeSubnetId.ToString()) : null, "runtimeSubnetId" ,container.Add ); + AddIf( null != (((object)this._dockerBridgeCidr)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._dockerBridgeCidr.ToString()) : null, "dockerBridgeCidr" ,container.Add ); + AddIf( null != (((object)this._platformReservedCidr)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._platformReservedCidr.ToString()) : null, "platformReservedCidr" ,container.Add ); + AddIf( null != (((object)this._platformReservedDnsIP)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._platformReservedDnsIP.ToString()) : null, "platformReservedDnsIP" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal VnetConfiguration(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_outboundSetting = If( json?.PropertyT("outboundSettings"), out var __jsonOutboundSettings) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentOutboundSettings.FromJson(__jsonOutboundSettings) : OutboundSetting;} + {_internal = If( json?.PropertyT("internal"), out var __jsonInternal) ? (bool?)__jsonInternal : Internal;} + {_infrastructureSubnetId = If( json?.PropertyT("infrastructureSubnetId"), out var __jsonInfrastructureSubnetId) ? (string)__jsonInfrastructureSubnetId : (string)InfrastructureSubnetId;} + {_runtimeSubnetId = If( json?.PropertyT("runtimeSubnetId"), out var __jsonRuntimeSubnetId) ? (string)__jsonRuntimeSubnetId : (string)RuntimeSubnetId;} + {_dockerBridgeCidr = If( json?.PropertyT("dockerBridgeCidr"), out var __jsonDockerBridgeCidr) ? (string)__jsonDockerBridgeCidr : (string)DockerBridgeCidr;} + {_platformReservedCidr = If( json?.PropertyT("platformReservedCidr"), out var __jsonPlatformReservedCidr) ? (string)__jsonPlatformReservedCidr : (string)PlatformReservedCidr;} + {_platformReservedDnsIP = If( json?.PropertyT("platformReservedDnsIP"), out var __jsonPlatformReservedDnsIP) ? (string)__jsonPlatformReservedDnsIP : (string)PlatformReservedDnsIP;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Volume.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Volume.PowerShell.cs new file mode 100644 index 000000000000..8e2d460371e3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Volume.PowerShell.cs @@ -0,0 +1,160 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Volume definitions for the Container App. + [System.ComponentModel.TypeConverter(typeof(VolumeTypeConverter))] + public partial class Volume + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IVolume DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Volume(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Volume(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Volume(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("StorageType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeInternal)this).StorageType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageType?) content.GetValueForProperty("StorageType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeInternal)this).StorageType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageType.CreateFrom); + } + if (content.Contains("StorageName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeInternal)this).StorageName = (string) content.GetValueForProperty("StorageName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeInternal)this).StorageName, 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 Volume(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("StorageType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeInternal)this).StorageType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageType?) content.GetValueForProperty("StorageType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeInternal)this).StorageType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageType.CreateFrom); + } + if (content.Contains("StorageName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeInternal)this).StorageName = (string) content.GetValueForProperty("StorageName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeInternal)this).StorageName, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Volume definitions for the Container App. + [System.ComponentModel.TypeConverter(typeof(VolumeTypeConverter))] + public partial interface IVolume + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Volume.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Volume.TypeConverter.cs new file mode 100644 index 000000000000..a98456230b9a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Volume.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class VolumeTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Volume.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Volume.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Volume.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Volume.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Volume.cs new file mode 100644 index 000000000000..2752e22b9f94 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Volume.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Volume definitions for the Container App. + public partial class Volume : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeInternal + { + + /// Backing field for property. + private string _name; + + /// Volume name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _storageName; + + /// Name of storage resource. No need to provide for EmptyDir. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string StorageName { get => this._storageName; set => this._storageName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageType? _storageType; + + /// Storage type for the volume. If not provided, use EmptyDir. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageType? StorageType { get => this._storageType; set => this._storageType = value; } + + /// Creates an new instance. + public Volume() + { + + } + } + /// Volume definitions for the Container App. + public partial interface IVolume : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Volume name. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Volume name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Name of storage resource. No need to provide for EmptyDir. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of storage resource. No need to provide for EmptyDir.", + SerializedName = @"storageName", + PossibleTypes = new [] { typeof(string) })] + string StorageName { get; set; } + /// Storage type for the volume. If not provided, use EmptyDir. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage type for the volume. If not provided, use EmptyDir.", + SerializedName = @"storageType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageType) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageType? StorageType { get; set; } + + } + /// Volume definitions for the Container App. + internal partial interface IVolumeInternal + + { + /// Volume name. + string Name { get; set; } + /// Name of storage resource. No need to provide for EmptyDir. + string StorageName { get; set; } + /// Storage type for the volume. If not provided, use EmptyDir. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageType? StorageType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/Volume.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/Volume.json.cs new file mode 100644 index 000000000000..badd9a4c7741 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/Volume.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Volume definitions for the Container App. + public partial class Volume + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Volume(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._storageType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._storageType.ToString()) : null, "storageType" ,container.Add ); + AddIf( null != (((object)this._storageName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._storageName.ToString()) : null, "storageName" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Volume(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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;} + {_storageType = If( json?.PropertyT("storageType"), out var __jsonStorageType) ? (string)__jsonStorageType : (string)StorageType;} + {_storageName = If( json?.PropertyT("storageName"), out var __jsonStorageName) ? (string)__jsonStorageName : (string)StorageName;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.PowerShell.cs new file mode 100644 index 000000000000..a08aaa5cf190 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Volume mount for the Container App. + [System.ComponentModel.TypeConverter(typeof(VolumeMountTypeConverter))] + public partial class VolumeMount + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new VolumeMount(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new VolumeMount(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal VolumeMount(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("VolumeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMountInternal)this).VolumeName = (string) content.GetValueForProperty("VolumeName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMountInternal)this).VolumeName, global::System.Convert.ToString); + } + if (content.Contains("MountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMountInternal)this).MountPath = (string) content.GetValueForProperty("MountPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMountInternal)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 VolumeMount(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("VolumeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMountInternal)this).VolumeName = (string) content.GetValueForProperty("VolumeName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMountInternal)this).VolumeName, global::System.Convert.ToString); + } + if (content.Contains("MountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMountInternal)this).MountPath = (string) content.GetValueForProperty("MountPath",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMountInternal)this).MountPath, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Volume mount for the Container App. + [System.ComponentModel.TypeConverter(typeof(VolumeMountTypeConverter))] + public partial interface IVolumeMount + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.TypeConverter.cs new file mode 100644 index 000000000000..14ca8b3f5c1e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class VolumeMountTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return VolumeMount.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return VolumeMount.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return VolumeMount.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.cs new file mode 100644 index 000000000000..368705e7238d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Volume mount for the Container App. + public partial class VolumeMount : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMountInternal + { + + /// Backing field for property. + private string _mountPath; + + /// + /// Path within the container at which the volume should be mounted.Must not contain ':'. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string MountPath { get => this._mountPath; set => this._mountPath = value; } + + /// Backing field for property. + private string _volumeName; + + /// This must match the Name of a Volume. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string VolumeName { get => this._volumeName; set => this._volumeName = value; } + + /// Creates an new instance. + public VolumeMount() + { + + } + } + /// Volume mount for the Container App. + public partial interface IVolumeMount : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// Path within the container at which the volume should be mounted.Must not contain ':'. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path within the container at which the volume should be mounted.Must not contain ':'.", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + string MountPath { get; set; } + /// This must match the Name of a Volume. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This must match the Name of a Volume.", + SerializedName = @"volumeName", + PossibleTypes = new [] { typeof(string) })] + string VolumeName { get; set; } + + } + /// Volume mount for the Container App. + internal partial interface IVolumeMountInternal + + { + /// + /// Path within the container at which the volume should be mounted.Must not contain ':'. + /// + string MountPath { get; set; } + /// This must match the Name of a Volume. + string VolumeName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.json.cs new file mode 100644 index 000000000000..5cfd560af4e1 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/VolumeMount.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Volume mount for the Container App. + public partial class VolumeMount + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolumeMount FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new VolumeMount(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._volumeName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._volumeName.ToString()) : null, "volumeName" ,container.Add ); + AddIf( null != (((object)this._mountPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._mountPath.ToString()) : null, "mountPath" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal VolumeMount(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_volumeName = If( json?.PropertyT("volumeName"), out var __jsonVolumeName) ? (string)__jsonVolumeName : (string)VolumeName;} + {_mountPath = If( json?.PropertyT("mountPath"), out var __jsonMountPath) ? (string)__jsonMountPath : (string)MountPath;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.PowerShell.cs new file mode 100644 index 000000000000..984cb5c42653 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Workload profile to scope container app execution. + [System.ComponentModel.TypeConverter(typeof(WorkloadProfileTypeConverter))] + public partial class WorkloadProfile + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new WorkloadProfile(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new WorkloadProfile(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal WorkloadProfile(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("MinimumCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileInternal)this).MinimumCount = (int) content.GetValueForProperty("MinimumCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileInternal)this).MinimumCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MaximumCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileInternal)this).MaximumCount = (int) content.GetValueForProperty("MaximumCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileInternal)this).MaximumCount, (__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 WorkloadProfile(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("MinimumCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileInternal)this).MinimumCount = (int) content.GetValueForProperty("MinimumCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileInternal)this).MinimumCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MaximumCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileInternal)this).MaximumCount = (int) content.GetValueForProperty("MaximumCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileInternal)this).MaximumCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + AfterDeserializePSObject(content); + } + } + /// Workload profile to scope container app execution. + [System.ComponentModel.TypeConverter(typeof(WorkloadProfileTypeConverter))] + public partial interface IWorkloadProfile + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.TypeConverter.cs new file mode 100644 index 000000000000..f965b737b996 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WorkloadProfileTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return WorkloadProfile.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return WorkloadProfile.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return WorkloadProfile.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.cs new file mode 100644 index 000000000000..4e827d3111bb --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Workload profile to scope container app execution. + public partial class WorkloadProfile : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileInternal + { + + /// Backing field for property. + private int _maximumCount; + + /// The maximum capacity. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int MaximumCount { get => this._maximumCount; set => this._maximumCount = value; } + + /// Backing field for property. + private int _minimumCount; + + /// The minimum capacity. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int MinimumCount { get => this._minimumCount; set => this._minimumCount = value; } + + /// Backing field for property. + private string _type; + + /// Workload profile type for the workloads to run on. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public WorkloadProfile() + { + + } + } + /// Workload profile to scope container app execution. + public partial interface IWorkloadProfile : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The maximum capacity. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The maximum capacity.", + SerializedName = @"maximumCount", + PossibleTypes = new [] { typeof(int) })] + int MaximumCount { get; set; } + /// The minimum capacity. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The minimum capacity.", + SerializedName = @"minimumCount", + PossibleTypes = new [] { typeof(int) })] + int MinimumCount { get; set; } + /// Workload profile type for the workloads to run on. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Workload profile type for the workloads to run on.", + SerializedName = @"workloadProfileType", + PossibleTypes = new [] { typeof(string) })] + string Type { get; set; } + + } + /// Workload profile to scope container app execution. + internal partial interface IWorkloadProfileInternal + + { + /// The maximum capacity. + int MaximumCount { get; set; } + /// The minimum capacity. + int MinimumCount { get; set; } + /// Workload profile type for the workloads to run on. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.json.cs new file mode 100644 index 000000000000..f3a8ff877f76 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfile.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Workload profile to scope container app execution. + public partial class WorkloadProfile + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new WorkloadProfile(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._type.ToString()) : null, "workloadProfileType" ,container.Add ); + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber(this._minimumCount), "minimumCount" ,container.Add ); + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber(this._maximumCount), "maximumCount" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal WorkloadProfile(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_type = If( json?.PropertyT("workloadProfileType"), out var __jsonWorkloadProfileType) ? (string)__jsonWorkloadProfileType : (string)Type;} + {_minimumCount = If( json?.PropertyT("minimumCount"), out var __jsonMinimumCount) ? (int)__jsonMinimumCount : MinimumCount;} + {_maximumCount = If( json?.PropertyT("maximumCount"), out var __jsonMaximumCount) ? (int)__jsonMaximumCount : MaximumCount;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.PowerShell.cs new file mode 100644 index 000000000000..3b032419316a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.PowerShell.cs @@ -0,0 +1,252 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// Collection of all the workload Profile States for a Premium Managed Environment.. + /// + [System.ComponentModel.TypeConverter(typeof(WorkloadProfileStatesTypeConverter))] + public partial class WorkloadProfileStates + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new WorkloadProfileStates(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new WorkloadProfileStates(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal WorkloadProfileStates(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStatesPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("MinimumCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).MinimumCount = (int?) content.GetValueForProperty("MinimumCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).MinimumCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MaximumCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).MaximumCount = (int?) content.GetValueForProperty("MaximumCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).MaximumCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CurrentCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).CurrentCount = (int?) content.GetValueForProperty("CurrentCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).CurrentCount, (__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 WorkloadProfileStates(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStatesPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("MinimumCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).MinimumCount = (int?) content.GetValueForProperty("MinimumCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).MinimumCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MaximumCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).MaximumCount = (int?) content.GetValueForProperty("MaximumCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).MaximumCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CurrentCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).CurrentCount = (int?) content.GetValueForProperty("CurrentCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal)this).CurrentCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + AfterDeserializePSObject(content); + } + } + /// Collection of all the workload Profile States for a Premium Managed Environment.. + [System.ComponentModel.TypeConverter(typeof(WorkloadProfileStatesTypeConverter))] + public partial interface IWorkloadProfileStates + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.TypeConverter.cs new file mode 100644 index 000000000000..10105ab1a63d --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.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.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WorkloadProfileStatesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return WorkloadProfileStates.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return WorkloadProfileStates.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return WorkloadProfileStates.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.cs new file mode 100644 index 000000000000..b115b49a8f9f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.cs @@ -0,0 +1,167 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Collection of all the workload Profile States for a Premium Managed Environment.. + /// + public partial class WorkloadProfileStates : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(); + + /// Current count of nodes. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? CurrentCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)Property).CurrentCount; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)Property).CurrentCount = value ?? default(int); } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; } + + /// Maximum count of nodes. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? MaximumCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)Property).MaximumCount; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)Property).MaximumCount = value ?? default(int); } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStatesProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type = value; } + + /// Minimum count of instances. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public int? MinimumCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)Property).MinimumCount; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)Property).MinimumCount = value ?? default(int); } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties _property; + + /// Workload Profile resource specific properties. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStatesProperties()); set => this._property = value; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + + /// Creates an new instance. + public WorkloadProfileStates() + { + + } + } + /// Collection of all the workload Profile States for a Premium Managed Environment.. + public partial interface IWorkloadProfileStates : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource + { + /// Current count of nodes. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current count of nodes.", + SerializedName = @"currentCount", + PossibleTypes = new [] { typeof(int) })] + int? CurrentCount { get; set; } + /// Maximum count of nodes. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum count of nodes.", + SerializedName = @"maximumCount", + PossibleTypes = new [] { typeof(int) })] + int? MaximumCount { get; set; } + /// Minimum count of instances. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum count of instances.", + SerializedName = @"minimumCount", + PossibleTypes = new [] { typeof(int) })] + int? MinimumCount { get; set; } + + } + /// Collection of all the workload Profile States for a Premium Managed Environment.. + internal partial interface IWorkloadProfileStatesInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal + { + /// Current count of nodes. + int? CurrentCount { get; set; } + /// Maximum count of nodes. + int? MaximumCount { get; set; } + /// Minimum count of instances. + int? MinimumCount { get; set; } + /// Workload Profile resource specific properties. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.json.cs new file mode 100644 index 000000000000..36e3582efc8c --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStates.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Collection of all the workload Profile States for a Premium Managed Environment.. + /// + public partial class WorkloadProfileStates + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new WorkloadProfileStates(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal WorkloadProfileStates(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStatesProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.PowerShell.cs new file mode 100644 index 000000000000..53e0d3f45ec0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Collection of workloadProfileStates + [System.ComponentModel.TypeConverter(typeof(WorkloadProfileStatesCollectionTypeConverter))] + public partial class WorkloadProfileStatesCollection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new WorkloadProfileStatesCollection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new WorkloadProfileStatesCollection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal WorkloadProfileStatesCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStatesTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollectionInternal)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 WorkloadProfileStatesCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStatesTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollectionInternal)this).NextLink, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Collection of workloadProfileStates + [System.ComponentModel.TypeConverter(typeof(WorkloadProfileStatesCollectionTypeConverter))] + public partial interface IWorkloadProfileStatesCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.TypeConverter.cs new file mode 100644 index 000000000000..350df0725ad0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WorkloadProfileStatesCollectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return WorkloadProfileStatesCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return WorkloadProfileStatesCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return WorkloadProfileStatesCollection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.cs new file mode 100644 index 000000000000..d83f61af8dc8 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of workloadProfileStates + public partial class WorkloadProfileStatesCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollection, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollectionInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollectionInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates[] _value; + + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public WorkloadProfileStatesCollection() + { + + } + } + /// Collection of workloadProfileStates + public partial interface IWorkloadProfileStatesCollection : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to next page of resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates[] Value { get; set; } + + } + /// Collection of workloadProfileStates + internal partial interface IWorkloadProfileStatesCollectionInternal + + { + /// Link to next page of resources. + string NextLink { get; set; } + /// Collection of resources. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.json.cs new file mode 100644 index 000000000000..a0b317feea7f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesCollection.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Collection of workloadProfileStates + public partial class WorkloadProfileStatesCollection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new WorkloadProfileStatesCollection(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._nextLink.ToString()) : null, "nextLink" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal WorkloadProfileStatesCollection(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.WorkloadProfileStates.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.PowerShell.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.PowerShell.cs new file mode 100644 index 000000000000..690c7a4910a0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Workload Profile resource specific properties. + [System.ComponentModel.TypeConverter(typeof(WorkloadProfileStatesPropertiesTypeConverter))] + public partial class WorkloadProfileStatesProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new WorkloadProfileStatesProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new WorkloadProfileStatesProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal WorkloadProfileStatesProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("MinimumCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)this).MinimumCount = (int?) content.GetValueForProperty("MinimumCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)this).MinimumCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MaximumCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)this).MaximumCount = (int?) content.GetValueForProperty("MaximumCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)this).MaximumCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CurrentCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)this).CurrentCount = (int?) content.GetValueForProperty("CurrentCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)this).CurrentCount, (__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 WorkloadProfileStatesProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("MinimumCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)this).MinimumCount = (int?) content.GetValueForProperty("MinimumCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)this).MinimumCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MaximumCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)this).MaximumCount = (int?) content.GetValueForProperty("MaximumCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)this).MaximumCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CurrentCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)this).CurrentCount = (int?) content.GetValueForProperty("CurrentCount",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal)this).CurrentCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + AfterDeserializePSObject(content); + } + } + /// Workload Profile resource specific properties. + [System.ComponentModel.TypeConverter(typeof(WorkloadProfileStatesPropertiesTypeConverter))] + public partial interface IWorkloadProfileStatesProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.TypeConverter.cs new file mode 100644 index 000000000000..9d19ec1eb217 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WorkloadProfileStatesPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return WorkloadProfileStatesProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return WorkloadProfileStatesProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return WorkloadProfileStatesProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.cs new file mode 100644 index 000000000000..cebd4417f600 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Workload Profile resource specific properties. + public partial class WorkloadProfileStatesProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesPropertiesInternal + { + + /// Backing field for property. + private int? _currentCount; + + /// Current count of nodes. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? CurrentCount { get => this._currentCount; set => this._currentCount = value; } + + /// Backing field for property. + private int? _maximumCount; + + /// Maximum count of nodes. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? MaximumCount { get => this._maximumCount; set => this._maximumCount = value; } + + /// Backing field for property. + private int? _minimumCount; + + /// Minimum count of instances. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public int? MinimumCount { get => this._minimumCount; set => this._minimumCount = value; } + + /// Creates an new instance. + public WorkloadProfileStatesProperties() + { + + } + } + /// Workload Profile resource specific properties. + public partial interface IWorkloadProfileStatesProperties : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Current count of nodes. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current count of nodes.", + SerializedName = @"currentCount", + PossibleTypes = new [] { typeof(int) })] + int? CurrentCount { get; set; } + /// Maximum count of nodes. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum count of nodes.", + SerializedName = @"maximumCount", + PossibleTypes = new [] { typeof(int) })] + int? MaximumCount { get; set; } + /// Minimum count of instances. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum count of instances.", + SerializedName = @"minimumCount", + PossibleTypes = new [] { typeof(int) })] + int? MinimumCount { get; set; } + + } + /// Workload Profile resource specific properties. + internal partial interface IWorkloadProfileStatesPropertiesInternal + + { + /// Current count of nodes. + int? CurrentCount { get; set; } + /// Maximum count of nodes. + int? MaximumCount { get; set; } + /// Minimum count of instances. + int? MinimumCount { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.json.cs b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.json.cs new file mode 100644 index 000000000000..e5573c92471e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api20221101Preview/WorkloadProfileStatesProperties.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Workload Profile resource specific properties. + public partial class WorkloadProfileStatesProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new WorkloadProfileStatesProperties(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._minimumCount ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._minimumCount) : null, "minimumCount" ,container.Add ); + AddIf( null != this._maximumCount ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._maximumCount) : null, "maximumCount" ,container.Add ); + AddIf( null != this._currentCount ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNumber((int)this._currentCount) : null, "currentCount" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal WorkloadProfileStatesProperties(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_minimumCount = If( json?.PropertyT("minimumCount"), out var __jsonMinimumCount) ? (int?)__jsonMinimumCount : MinimumCount;} + {_maximumCount = If( json?.PropertyT("maximumCount"), out var __jsonMaximumCount) ? (int?)__jsonMaximumCount : MaximumCount;} + {_currentCount = If( json?.PropertyT("currentCount"), out var __jsonCurrentCount) ? (int?)__jsonCurrentCount : CurrentCount;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.PowerShell.cs b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.PowerShell.cs new file mode 100644 index 000000000000..a7ee4f4ad304 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The check availability request body. + [System.ComponentModel.TypeConverter(typeof(CheckNameAvailabilityRequestTypeConverter))] + public partial class CheckNameAvailabilityRequest + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 CheckNameAvailabilityRequest(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequestInternal)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 CheckNameAvailabilityRequest(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CheckNameAvailabilityRequest(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CheckNameAvailabilityRequest(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The check availability request body. + [System.ComponentModel.TypeConverter(typeof(CheckNameAvailabilityRequestTypeConverter))] + public partial interface ICheckNameAvailabilityRequest + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.TypeConverter.cs new file mode 100644 index 000000000000..aa1502c649af --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.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.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CheckNameAvailabilityRequestTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CheckNameAvailabilityRequest.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CheckNameAvailabilityRequest.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CheckNameAvailabilityRequest.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.cs b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.cs new file mode 100644 index 000000000000..b0601ae356cc --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The check availability request body. + public partial class CheckNameAvailabilityRequest : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequestInternal + { + + /// Backing field for property. + private string _name; + + /// The name of the resource for which availability needs to be checked. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _type; + + /// The resource type. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public CheckNameAvailabilityRequest() + { + + } + } + /// The check availability request body. + public partial interface ICheckNameAvailabilityRequest : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The name of the resource for which availability needs to be checked. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the resource for which availability needs to be checked.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// The resource type. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource type.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; set; } + + } + /// The check availability request body. + internal partial interface ICheckNameAvailabilityRequestInternal + + { + /// The name of the resource for which availability needs to be checked. + string Name { get; set; } + /// The resource type. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.json.cs b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.json.cs new file mode 100644 index 000000000000..1738bbe27731 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityRequest.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The check availability request body. + public partial class CheckNameAvailabilityRequest + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal CheckNameAvailabilityRequest(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new CheckNameAvailabilityRequest(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.PowerShell.cs b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.PowerShell.cs new file mode 100644 index 000000000000..f295bf92558a --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The check availability result. + [System.ComponentModel.TypeConverter(typeof(CheckNameAvailabilityResponseTypeConverter))] + public partial class CheckNameAvailabilityResponse + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 CheckNameAvailabilityResponse(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("NameAvailable")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponseInternal)this).NameAvailable = (bool?) content.GetValueForProperty("NameAvailable",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponseInternal)this).NameAvailable, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Reason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponseInternal)this).Reason = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReason?) content.GetValueForProperty("Reason",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponseInternal)this).Reason, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReason.CreateFrom); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponseInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponseInternal)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 CheckNameAvailabilityResponse(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("NameAvailable")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponseInternal)this).NameAvailable = (bool?) content.GetValueForProperty("NameAvailable",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponseInternal)this).NameAvailable, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Reason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponseInternal)this).Reason = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReason?) content.GetValueForProperty("Reason",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponseInternal)this).Reason, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReason.CreateFrom); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponseInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponseInternal)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.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CheckNameAvailabilityResponse(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CheckNameAvailabilityResponse(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The check availability result. + [System.ComponentModel.TypeConverter(typeof(CheckNameAvailabilityResponseTypeConverter))] + public partial interface ICheckNameAvailabilityResponse + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.TypeConverter.cs new file mode 100644 index 000000000000..cbeceb737edc --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.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.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CheckNameAvailabilityResponseTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CheckNameAvailabilityResponse.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CheckNameAvailabilityResponse.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CheckNameAvailabilityResponse.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.cs b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.cs new file mode 100644 index 000000000000..e147e138308e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The check availability result. + public partial class CheckNameAvailabilityResponse : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponseInternal + { + + /// Backing field for property. + private string _message; + + /// Detailed reason why the given name is available. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Message { get => this._message; set => this._message = value; } + + /// Backing field for property. + private bool? _nameAvailable; + + /// Indicates if the resource name is available. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public bool? NameAvailable { get => this._nameAvailable; set => this._nameAvailable = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReason? _reason; + + /// The reason why the given name is not available. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReason? Reason { get => this._reason; set => this._reason = value; } + + /// Creates an new instance. + public CheckNameAvailabilityResponse() + { + + } + } + /// The check availability result. + public partial interface ICheckNameAvailabilityResponse : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Detailed reason why the given name is available. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Detailed reason why the given name is available.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + /// Indicates if the resource name is available. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates if the resource name is available.", + SerializedName = @"nameAvailable", + PossibleTypes = new [] { typeof(bool) })] + bool? NameAvailable { get; set; } + /// The reason why the given name is not available. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The reason why the given name is not available.", + SerializedName = @"reason", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReason) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReason? Reason { get; set; } + + } + /// The check availability result. + internal partial interface ICheckNameAvailabilityResponseInternal + + { + /// Detailed reason why the given name is available. + string Message { get; set; } + /// Indicates if the resource name is available. + bool? NameAvailable { get; set; } + /// The reason why the given name is not available. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReason? Reason { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.json.cs b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.json.cs new file mode 100644 index 000000000000..205be8f7ea47 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/CheckNameAvailabilityResponse.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The check availability result. + public partial class CheckNameAvailabilityResponse + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal CheckNameAvailabilityResponse(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new CheckNameAvailabilityResponse(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._nameAvailable ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonBoolean((bool)this._nameAvailable) : null, "nameAvailable" ,container.Add ); + AddIf( null != (((object)this._reason)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._reason.ToString()) : null, "reason" ,container.Add ); + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api30/ErrorAdditionalInfo.PowerShell.cs b/swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.PowerShell.cs new file mode 100644 index 000000000000..abc31030e26e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.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.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The resource management error additional info. + [System.ComponentModel.TypeConverter(typeof(ErrorAdditionalInfoTypeConverter))] + public partial class ErrorAdditionalInfo + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ErrorAdditionalInfo(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ErrorAdditionalInfo(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ErrorAdditionalInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Info")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfoInternal)this).Info = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny) content.GetValueForProperty("Info",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfoInternal)this).Info, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.AnyTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ErrorAdditionalInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Info")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfoInternal)this).Info = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny) content.GetValueForProperty("Info",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfoInternal)this).Info, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.AnyTypeConverter.ConvertFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The resource management error additional info. + [System.ComponentModel.TypeConverter(typeof(ErrorAdditionalInfoTypeConverter))] + public partial interface IErrorAdditionalInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.TypeConverter.cs new file mode 100644 index 000000000000..0f30a7c1222b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.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.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ErrorAdditionalInfoTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ErrorAdditionalInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ErrorAdditionalInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ErrorAdditionalInfo.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.cs b/swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.cs new file mode 100644 index 000000000000..e54cdfceddfd --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The resource management error additional info. + public partial class ErrorAdditionalInfo : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfoInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny _info; + + /// The additional info. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny Info { get => (this._info = this._info ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Any()); } + + /// Internal Acessors for Info + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfoInternal.Info { get => (this._info = this._info ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Any()); set { {_info = value;} } } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfoInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _type; + + /// The additional info type. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// Creates an new instance. + public ErrorAdditionalInfo() + { + + } + } + /// The resource management error additional info. + public partial interface IErrorAdditionalInfo : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The additional info. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The additional info.", + SerializedName = @"info", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny Info { get; } + /// The additional info type. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The additional info type.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// The resource management error additional info. + internal partial interface IErrorAdditionalInfoInternal + + { + /// The additional info. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IAny Info { get; set; } + /// The additional info type. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.json.cs b/swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.json.cs new file mode 100644 index 000000000000..729781ac8368 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ErrorAdditionalInfo.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The resource management error additional info. + public partial class ErrorAdditionalInfo + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ErrorAdditionalInfo(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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;} + {_info = If( json?.PropertyT("info"), out var __jsonInfo) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Any.FromJson(__jsonInfo) : Info;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ErrorAdditionalInfo(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._info ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._info.ToJson(null,serializationMode) : null, "info" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ErrorDetail.PowerShell.cs b/swaggerci/app/generated/api/Models/Api30/ErrorDetail.PowerShell.cs new file mode 100644 index 000000000000..bfe1039c57c0 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ErrorDetail.PowerShell.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// The error detail. + [System.ComponentModel.TypeConverter(typeof(ErrorDetailTypeConverter))] + public partial class ErrorDetail + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api30.IErrorDetail DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ErrorDetail(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ErrorDetail(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ErrorDetail(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorDetailTypeConverter.ConvertFrom)); + } + if (content.Contains("AdditionalInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).AdditionalInfo = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo[]) content.GetValueForProperty("AdditionalInfo",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).AdditionalInfo, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorAdditionalInfoTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ErrorDetail(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorDetailTypeConverter.ConvertFrom)); + } + if (content.Contains("AdditionalInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).AdditionalInfo = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo[]) content.GetValueForProperty("AdditionalInfo",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)this).AdditionalInfo, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorAdditionalInfoTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The error detail. + [System.ComponentModel.TypeConverter(typeof(ErrorDetailTypeConverter))] + public partial interface IErrorDetail + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ErrorDetail.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api30/ErrorDetail.TypeConverter.cs new file mode 100644 index 000000000000..195ee27f541e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ErrorDetail.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.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ErrorDetailTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ErrorDetail.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ErrorDetail.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ErrorDetail.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ErrorDetail.cs b/swaggerci/app/generated/api/Models/Api30/ErrorDetail.cs new file mode 100644 index 000000000000..6cf7dd563643 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ErrorDetail.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.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The error detail. + public partial class ErrorDetail : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo[] _additionalInfo; + + /// The error additional info. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo[] AdditionalInfo { get => this._additionalInfo; } + + /// Backing field for property. + private string _code; + + /// The error code. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Code { get => this._code; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail[] _detail; + + /// The error details. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail[] Detail { get => this._detail; } + + /// Backing field for property. + private string _message; + + /// The error message. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Message { get => this._message; } + + /// Internal Acessors for AdditionalInfo + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo[] Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal.AdditionalInfo { get => this._additionalInfo; set { {_additionalInfo = value;} } } + + /// Internal Acessors for Code + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal.Code { get => this._code; set { {_code = value;} } } + + /// Internal Acessors for Detail + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail[] Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal.Detail { get => this._detail; set { {_detail = value;} } } + + /// Internal Acessors for Message + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal.Message { get => this._message; set { {_message = value;} } } + + /// Internal Acessors for Target + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal.Target { get => this._target; set { {_target = value;} } } + + /// Backing field for property. + private string _target; + + /// The error target. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Target { get => this._target; } + + /// Creates an new instance. + public ErrorDetail() + { + + } + } + /// The error detail. + public partial interface IErrorDetail : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The error additional info. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The error additional info.", + SerializedName = @"additionalInfo", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo[] AdditionalInfo { get; } + /// The error code. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The error code.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; } + /// The error details. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The error details.", + SerializedName = @"details", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail[] Detail { get; } + /// The error message. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The error message.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; } + /// The error target. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The error target.", + SerializedName = @"target", + PossibleTypes = new [] { typeof(string) })] + string Target { get; } + + } + /// The error detail. + internal partial interface IErrorDetailInternal + + { + /// The error additional info. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo[] AdditionalInfo { get; set; } + /// The error code. + string Code { get; set; } + /// The error details. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail[] Detail { get; set; } + /// The error message. + string Message { get; set; } + /// The error target. + string Target { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ErrorDetail.json.cs b/swaggerci/app/generated/api/Models/Api30/ErrorDetail.json.cs new file mode 100644 index 000000000000..59776f291559 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ErrorDetail.json.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// The error detail. + public partial class ErrorDetail + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ErrorDetail(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api30.IErrorDetail) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorDetail.FromJson(__u) )) ))() : null : Detail;} + {_additionalInfo = If( json?.PropertyT("additionalInfo"), out var __jsonAdditionalInfo) ? If( __jsonAdditionalInfo as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo) (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorAdditionalInfo.FromJson(__p) )) ))() : null : AdditionalInfo;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ErrorDetail(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._code)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._code.ToString()) : null, "code" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._message.ToString()) : null, "message" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._target)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._target.ToString()) : null, "target" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._detail) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._detail ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("details",__w); + } + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._additionalInfo) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._additionalInfo ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("additionalInfo",__r); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ErrorResponse.PowerShell.cs b/swaggerci/app/generated/api/Models/Api30/ErrorResponse.PowerShell.cs new file mode 100644 index 000000000000..73971b8a3be9 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ErrorResponse.PowerShell.cs @@ -0,0 +1,188 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows + /// the OData error response format.). + /// + [System.ComponentModel.TypeConverter(typeof(ErrorResponseTypeConverter))] + public partial class ErrorResponse + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api30.IErrorResponse DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ErrorResponse(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponse DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ErrorResponse(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ErrorResponse(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorDetailTypeConverter.ConvertFrom); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorDetailTypeConverter.ConvertFrom)); + } + if (content.Contains("AdditionalInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).AdditionalInfo = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo[]) content.GetValueForProperty("AdditionalInfo",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).AdditionalInfo, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorAdditionalInfoTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ErrorResponse(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorDetailTypeConverter.ConvertFrom); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorDetailTypeConverter.ConvertFrom)); + } + if (content.Contains("AdditionalInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).AdditionalInfo = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo[]) content.GetValueForProperty("AdditionalInfo",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal)this).AdditionalInfo, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorAdditionalInfoTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponse FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows + /// the OData error response format.). + [System.ComponentModel.TypeConverter(typeof(ErrorResponseTypeConverter))] + public partial interface IErrorResponse + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ErrorResponse.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api30/ErrorResponse.TypeConverter.cs new file mode 100644 index 000000000000..dc7f34d8f33b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ErrorResponse.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.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ErrorResponseTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponse ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponse).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ErrorResponse.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ErrorResponse.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ErrorResponse.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ErrorResponse.cs b/swaggerci/app/generated/api/Models/Api30/ErrorResponse.cs new file mode 100644 index 000000000000..5bc5d410f4f3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ErrorResponse.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows + /// the OData error response format.). + /// + public partial class ErrorResponse : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponse, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal + { + + /// The error additional info. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo[] AdditionalInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).AdditionalInfo; } + + /// The error code. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Code { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).Code; } + + /// The error details. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail[] Detail { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).Detail; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail _error; + + /// The error object. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorDetail()); set => this._error = value; } + + /// The error message. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Message { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).Message; } + + /// Internal Acessors for AdditionalInfo + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo[] Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal.AdditionalInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).AdditionalInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).AdditionalInfo = value; } + + /// Internal Acessors for Code + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal.Code { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).Code = value; } + + /// Internal Acessors for Detail + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail[] Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal.Detail { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).Detail; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).Detail = value; } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal.Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ErrorDetail()); set { {_error = value;} } } + + /// Internal Acessors for Message + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal.Message { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).Message = value; } + + /// Internal Acessors for Target + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponseInternal.Target { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).Target; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).Target = value; } + + /// The error target. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string Target { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetailInternal)Error).Target; } + + /// Creates an new instance. + public ErrorResponse() + { + + } + } + /// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows + /// the OData error response format.). + public partial interface IErrorResponse : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The error additional info. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The error additional info.", + SerializedName = @"additionalInfo", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo[] AdditionalInfo { get; } + /// The error code. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The error code.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; } + /// The error details. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The error details.", + SerializedName = @"details", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail[] Detail { get; } + /// The error message. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The error message.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; } + /// The error target. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The error target.", + SerializedName = @"target", + PossibleTypes = new [] { typeof(string) })] + string Target { get; } + + } + /// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows + /// the OData error response format.). + internal partial interface IErrorResponseInternal + + { + /// The error additional info. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorAdditionalInfo[] AdditionalInfo { get; set; } + /// The error code. + string Code { get; set; } + /// The error details. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail[] Detail { get; set; } + /// The error object. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorDetail Error { get; set; } + /// The error message. + string Message { get; set; } + /// The error target. + string Target { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ErrorResponse.json.cs b/swaggerci/app/generated/api/Models/Api30/ErrorResponse.json.cs new file mode 100644 index 000000000000..7ee4743476fb --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ErrorResponse.json.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows + /// the OData error response format.). + /// + public partial class ErrorResponse + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ErrorResponse(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Models.Api30.ErrorDetail.FromJson(__jsonError) : Error;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponse. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponse. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponse FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ErrorResponse(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._error ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api30/ManagedServiceIdentity.PowerShell.cs b/swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.PowerShell.cs new file mode 100644 index 000000000000..a3d9bbf7767e --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.PowerShell.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Managed service identity (system assigned and/or user assigned identities) + [System.ComponentModel.TypeConverter(typeof(ManagedServiceIdentityTypeConverter))] + public partial class ManagedServiceIdentity + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api30.IManagedServiceIdentity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedServiceIdentity(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedServiceIdentity(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedServiceIdentity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType.CreateFrom); + } + if (content.Contains("UserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).UserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities) content.GetValueForProperty("UserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).UserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.UserAssignedIdentitiesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ManagedServiceIdentity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType.CreateFrom); + } + if (content.Contains("UserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).UserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities) content.GetValueForProperty("UserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal)this).UserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.UserAssignedIdentitiesTypeConverter.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Managed service identity (system assigned and/or user assigned identities) + [System.ComponentModel.TypeConverter(typeof(ManagedServiceIdentityTypeConverter))] + public partial interface IManagedServiceIdentity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.TypeConverter.cs new file mode 100644 index 000000000000..4234ba660bc2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.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.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedServiceIdentityTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentity ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedServiceIdentity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedServiceIdentity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedServiceIdentity.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.cs b/swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.cs new file mode 100644 index 000000000000..3b0e9c5f5749 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.cs @@ -0,0 +1,138 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Managed service identity (system assigned and/or user assigned identities) + public partial class ManagedServiceIdentity : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentity, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal + { + + /// Internal Acessors for PrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal.PrincipalId { get => this._principalId; set { {_principalId = value;} } } + + /// Internal Acessors for TenantId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentityInternal.TenantId { get => this._tenantId; set { {_tenantId = value;} } } + + /// Backing field for property. + private string _principalId; + + /// + /// The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string PrincipalId { get => this._principalId; } + + /// Backing field for property. + private string _tenantId; + + /// + /// The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string TenantId { get => this._tenantId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType _type; + + /// + /// Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType Type { get => this._type; set => this._type = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities _userAssignedIdentity; + + /// + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities UserAssignedIdentity { get => (this._userAssignedIdentity = this._userAssignedIdentity ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.UserAssignedIdentities()); set => this._userAssignedIdentity = value; } + + /// Creates an new instance. + public ManagedServiceIdentity() + { + + } + } + /// Managed service identity (system assigned and/or user assigned identities) + public partial interface IManagedServiceIdentity : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string PrincipalId { get; } + /// + /// The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string TenantId { get; } + /// + /// Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType Type { get; set; } + /// + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities UserAssignedIdentity { get; set; } + + } + /// Managed service identity (system assigned and/or user assigned identities) + internal partial interface IManagedServiceIdentityInternal + + { + /// + /// The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. + /// + string PrincipalId { get; set; } + /// + /// The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. + /// + string TenantId { get; set; } + /// + /// Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType Type { get; set; } + /// + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities UserAssignedIdentity { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.json.cs b/swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.json.cs new file mode 100644 index 000000000000..6c3e4030a537 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ManagedServiceIdentity.json.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Managed service identity (system assigned and/or user assigned identities) + public partial class ManagedServiceIdentity + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IManagedServiceIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ManagedServiceIdentity(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedServiceIdentity(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_principalId = If( json?.PropertyT("principalId"), out var __jsonPrincipalId) ? (string)__jsonPrincipalId : (string)PrincipalId;} + {_tenantId = If( json?.PropertyT("tenantId"), out var __jsonTenantId) ? (string)__jsonTenantId : (string)TenantId;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + {_userAssignedIdentity = If( json?.PropertyT("userAssignedIdentities"), out var __jsonUserAssignedIdentities) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.UserAssignedIdentities.FromJson(__jsonUserAssignedIdentities) : UserAssignedIdentity;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._principalId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._principalId.ToString()) : null, "principalId" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._tenantId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._tenantId.ToString()) : null, "tenantId" ,container.Add ); + } + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AddIf( null != this._userAssignedIdentity ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._userAssignedIdentity.ToJson(null,serializationMode) : null, "userAssignedIdentities" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ProxyResource.PowerShell.cs b/swaggerci/app/generated/api/Models/Api30/ProxyResource.PowerShell.cs new file mode 100644 index 000000000000..060cf37d5f23 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ProxyResource.PowerShell.cs @@ -0,0 +1,218 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location + /// + [System.ComponentModel.TypeConverter(typeof(ProxyResourceTypeConverter))] + public partial class ProxyResource + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.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.ContainerAppsApi.Models.Api30.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.ContainerAppsApi.Models.Api30.IProxyResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ProxyResource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ProxyResource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location + [System.ComponentModel.TypeConverter(typeof(ProxyResourceTypeConverter))] + public partial interface IProxyResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ProxyResource.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api30/ProxyResource.TypeConverter.cs new file mode 100644 index 000000000000..9b0f6f453057 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ProxyResource.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ProxyResourceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IProxyResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.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/app/generated/api/Models/Api30/ProxyResource.cs b/swaggerci/app/generated/api/Models/Api30/ProxyResource.cs new file mode 100644 index 000000000000..758324ad9485 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ProxyResource.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location + /// + public partial class ProxyResource : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IProxyResource, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IProxyResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(); + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ProxyResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location + public partial interface IProxyResource : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource + { + + } + /// The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location + internal partial interface IProxyResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/ProxyResource.json.cs b/swaggerci/app/generated/api/Models/Api30/ProxyResource.json.cs new file mode 100644 index 000000000000..add10c48674f --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/ProxyResource.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location + /// + public partial class ProxyResource + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IProxyResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IProxyResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IProxyResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ProxyResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ProxyResource(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api30/Resource.PowerShell.cs b/swaggerci/app/generated/api/Models/Api30/Resource.PowerShell.cs new file mode 100644 index 000000000000..f43ed273fbc3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/Resource.PowerShell.cs @@ -0,0 +1,218 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// Common fields that are returned in the response for all Azure Resource Manager resources + /// + [System.ComponentModel.TypeConverter(typeof(ResourceTypeConverter))] + public partial class Resource + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.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.ContainerAppsApi.Models.Api30.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.ContainerAppsApi.Models.Api30.IResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Resource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Resource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Common fields that are returned in the response for all Azure Resource Manager resources + [System.ComponentModel.TypeConverter(typeof(ResourceTypeConverter))] + public partial interface IResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/Resource.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api30/Resource.TypeConverter.cs new file mode 100644 index 000000000000..02a2b1996454 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/Resource.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.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/app/generated/api/Models/Api30/Resource.cs b/swaggerci/app/generated/api/Models/Api30/Resource.cs new file mode 100644 index 000000000000..08371a088b36 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/Resource.cs @@ -0,0 +1,208 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Common fields that are returned in the response for all Azure Resource Manager resources + /// + public partial class Resource : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal + { + + /// Backing field for property. + private string _id; + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Id { get => this._id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => this._id; set { {_id = value;} } } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _name; + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData _systemData; + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// Backing field for property. + private string _type; + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// Creates an new instance. + public Resource() + { + + } + } + /// Common fields that are returned in the response for all Azure Resource Manager resources + public partial interface IResource : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; } + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The name of the resource", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource creation (UTC).", + SerializedName = @"createdAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that created the resource.", + SerializedName = @"createdBy", + PossibleTypes = new [] { typeof(string) })] + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource last modification (UTC)", + SerializedName = @"lastModifiedAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SystemDataLastModifiedAt { get; set; } + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that last modified the resource.", + SerializedName = @"lastModifiedBy", + PossibleTypes = new [] { typeof(string) })] + string SystemDataLastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that last modified the resource.", + SerializedName = @"lastModifiedByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The type of the resource. E.g. ""Microsoft.Compute/virtualMachines"" or ""Microsoft.Storage/storageAccounts""", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// Common fields that are returned in the response for all Azure Resource Manager resources + internal partial interface IResourceInternal + + { + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + string Id { get; set; } + /// The name of the resource + string Name { get; set; } + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + global::System.DateTime? SystemDataLastModifiedAt { get; set; } + /// The identity that last modified the resource. + string SystemDataLastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/Resource.json.cs b/swaggerci/app/generated/api/Models/Api30/Resource.json.cs new file mode 100644 index 000000000000..b9d647068b1b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/Resource.json.cs @@ -0,0 +1,128 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// Common fields that are returned in the response for all Azure Resource Manager resources + /// + public partial class Resource + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new Resource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal Resource(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_id = If( json?.PropertyT("id"), out var __jsonId) ? (string)__jsonId : (string)Id;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._id.ToString()) : null, "id" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Models/Api30/SystemData.PowerShell.cs b/swaggerci/app/generated/api/Models/Api30/SystemData.PowerShell.cs new file mode 100644 index 000000000000..47f6a88ee94b --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/SystemData.PowerShell.cs @@ -0,0 +1,184 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Metadata pertaining to creation and last modification of the resource. + [System.ComponentModel.TypeConverter(typeof(SystemDataTypeConverter))] + public partial class SystemData + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SystemData(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SystemData(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SystemData(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).CreatedBy = (string) content.GetValueForProperty("CreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).CreatedBy, global::System.Convert.ToString); + } + if (content.Contains("CreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).CreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("CreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).CreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("CreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).CreatedAt = (global::System.DateTime?) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).CreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("LastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).LastModifiedBy = (string) content.GetValueForProperty("LastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).LastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("LastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).LastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("LastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).LastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("LastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).LastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("LastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).LastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SystemData(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).CreatedBy = (string) content.GetValueForProperty("CreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).CreatedBy, global::System.Convert.ToString); + } + if (content.Contains("CreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).CreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("CreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).CreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("CreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).CreatedAt = (global::System.DateTime?) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).CreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("LastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).LastModifiedBy = (string) content.GetValueForProperty("LastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).LastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("LastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).LastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("LastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).LastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("LastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).LastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("LastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal)this).LastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Metadata pertaining to creation and last modification of the resource. + [System.ComponentModel.TypeConverter(typeof(SystemDataTypeConverter))] + public partial interface ISystemData + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/SystemData.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api30/SystemData.TypeConverter.cs new file mode 100644 index 000000000000..6ef1c80c42df --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/SystemData.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SystemDataTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SystemData.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SystemData.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SystemData.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/SystemData.cs b/swaggerci/app/generated/api/Models/Api30/SystemData.cs new file mode 100644 index 000000000000..be61542b1693 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/SystemData.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Metadata pertaining to creation and last modification of the resource. + public partial class SystemData : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemDataInternal + { + + /// Backing field for property. + private global::System.DateTime? _createdAt; + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public global::System.DateTime? CreatedAt { get => this._createdAt; set => this._createdAt = value; } + + /// Backing field for property. + private string _createdBy; + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string CreatedBy { get => this._createdBy; set => this._createdBy = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? _createdByType; + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? CreatedByType { get => this._createdByType; set => this._createdByType = value; } + + /// Backing field for property. + private global::System.DateTime? _lastModifiedAt; + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public global::System.DateTime? LastModifiedAt { get => this._lastModifiedAt; set => this._lastModifiedAt = value; } + + /// Backing field for property. + private string _lastModifiedBy; + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string LastModifiedBy { get => this._lastModifiedBy; set => this._lastModifiedBy = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? _lastModifiedByType; + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? LastModifiedByType { get => this._lastModifiedByType; set => this._lastModifiedByType = value; } + + /// Creates an new instance. + public SystemData() + { + + } + } + /// Metadata pertaining to creation and last modification of the resource. + public partial interface ISystemData : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource creation (UTC).", + SerializedName = @"createdAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CreatedAt { get; set; } + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that created the resource.", + SerializedName = @"createdBy", + PossibleTypes = new [] { typeof(string) })] + string CreatedBy { get; set; } + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? CreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource last modification (UTC)", + SerializedName = @"lastModifiedAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastModifiedAt { get; set; } + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that last modified the resource.", + SerializedName = @"lastModifiedBy", + PossibleTypes = new [] { typeof(string) })] + string LastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that last modified the resource.", + SerializedName = @"lastModifiedByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? LastModifiedByType { get; set; } + + } + /// Metadata pertaining to creation and last modification of the resource. + internal partial interface ISystemDataInternal + + { + /// The timestamp of resource creation (UTC). + global::System.DateTime? CreatedAt { get; set; } + /// The identity that created the resource. + string CreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? CreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + global::System.DateTime? LastModifiedAt { get; set; } + /// The identity that last modified the resource. + string LastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? LastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/SystemData.json.cs b/swaggerci/app/generated/api/Models/Api30/SystemData.json.cs new file mode 100644 index 000000000000..c0ca607021d7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/SystemData.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Metadata pertaining to creation and last modification of the resource. + public partial class SystemData + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new SystemData(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal SystemData(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_createdBy = If( json?.PropertyT("createdBy"), out var __jsonCreatedBy) ? (string)__jsonCreatedBy : (string)CreatedBy;} + {_createdByType = If( json?.PropertyT("createdByType"), out var __jsonCreatedByType) ? (string)__jsonCreatedByType : (string)CreatedByType;} + {_createdAt = If( json?.PropertyT("createdAt"), out var __jsonCreatedAt) ? global::System.DateTime.TryParse((string)__jsonCreatedAt, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonCreatedAtValue) ? __jsonCreatedAtValue : CreatedAt : CreatedAt;} + {_lastModifiedBy = If( json?.PropertyT("lastModifiedBy"), out var __jsonLastModifiedBy) ? (string)__jsonLastModifiedBy : (string)LastModifiedBy;} + {_lastModifiedByType = If( json?.PropertyT("lastModifiedByType"), out var __jsonLastModifiedByType) ? (string)__jsonLastModifiedByType : (string)LastModifiedByType;} + {_lastModifiedAt = If( json?.PropertyT("lastModifiedAt"), out var __jsonLastModifiedAt) ? global::System.DateTime.TryParse((string)__jsonLastModifiedAt, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonLastModifiedAtValue) ? __jsonLastModifiedAtValue : LastModifiedAt : LastModifiedAt;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._createdBy)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._createdBy.ToString()) : null, "createdBy" ,container.Add ); + AddIf( null != (((object)this._createdByType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._createdByType.ToString()) : null, "createdByType" ,container.Add ); + AddIf( null != this._createdAt ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._createdAt?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "createdAt" ,container.Add ); + AddIf( null != (((object)this._lastModifiedBy)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._lastModifiedBy.ToString()) : null, "lastModifiedBy" ,container.Add ); + AddIf( null != (((object)this._lastModifiedByType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._lastModifiedByType.ToString()) : null, "lastModifiedByType" ,container.Add ); + AddIf( null != this._lastModifiedAt ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._lastModifiedAt?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "lastModifiedAt" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/TrackedResource.PowerShell.cs b/swaggerci/app/generated/api/Models/Api30/TrackedResource.PowerShell.cs new file mode 100644 index 000000000000..0d646a748312 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/TrackedResource.PowerShell.cs @@ -0,0 +1,234 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' + /// + [System.ComponentModel.TypeConverter(typeof(TrackedResourceTypeConverter))] + public partial class TrackedResource + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.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.ContainerAppsApi.Models.Api30.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.ContainerAppsApi.Models.Api30.ITrackedResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TrackedResource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TrackedResource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' + [System.ComponentModel.TypeConverter(typeof(TrackedResourceTypeConverter))] + public partial interface ITrackedResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/TrackedResource.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api30/TrackedResource.TypeConverter.cs new file mode 100644 index 000000000000..4e67cc5876d4 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/TrackedResource.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TrackedResourceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.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/app/generated/api/Models/Api30/TrackedResource.cs b/swaggerci/app/generated/api/Models/Api30/TrackedResource.cs new file mode 100644 index 000000000000..b3e59f10f231 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/TrackedResource.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.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' + /// + public partial class TrackedResource : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(); + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; } + + /// Backing field for property. + private string _location; + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Name; } + + /// + /// Azure Resource Manager metadata containing createdBy and modifiedBy information. + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags _tag; + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTags()); set => this._tag = value; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public TrackedResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' + public partial interface ITrackedResource : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResource + { + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) })] + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get; set; } + + } + /// The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' + internal partial interface ITrackedResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IResourceInternal + { + /// The geo-location where the resource lives + string Location { get; set; } + /// Resource tags. + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/TrackedResource.json.cs b/swaggerci/app/generated/api/Models/Api30/TrackedResource.json.cs new file mode 100644 index 000000000000..3182da232798 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/TrackedResource.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' + /// + public partial class TrackedResource + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) this._tag.ToJson(null,serializationMode) : null, "tags" ,container.Add ); + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal TrackedResource(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.Resource(json); + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.TrackedResourceTags.FromJson(__jsonTags) : Tag;} + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.PowerShell.cs b/swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.PowerShell.cs new file mode 100644 index 000000000000..e105887d8806 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.PowerShell.cs @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// Resource tags. + [System.ComponentModel.TypeConverter(typeof(TrackedResourceTagsTypeConverter))] + public partial class TrackedResourceTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.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.ContainerAppsApi.Models.Api30.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.ContainerAppsApi.Models.Api30.ITrackedResourceTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TrackedResourceTags(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TrackedResourceTags(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializePSObject(content); + } + } + /// Resource tags. + [System.ComponentModel.TypeConverter(typeof(TrackedResourceTagsTypeConverter))] + public partial interface ITrackedResourceTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.TypeConverter.cs new file mode 100644 index 000000000000..6c86b1294be9 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TrackedResourceTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.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/app/generated/api/Models/Api30/TrackedResourceTags.cs b/swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.cs new file mode 100644 index 000000000000..5440824f1fd2 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.cs @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Resource tags. + public partial class TrackedResourceTags : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTagsInternal + { + + /// Creates an new instance. + public TrackedResourceTags() + { + + } + } + /// Resource tags. + public partial interface ITrackedResourceTags : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + + } + /// Resource tags. + internal partial interface ITrackedResourceTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.dictionary.cs b/swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.dictionary.cs new file mode 100644 index 000000000000..1ffcdb23de37 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + public partial class TrackedResourceTags : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.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.ContainerAppsApi.Models.Api30.TrackedResourceTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.json.cs b/swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.json.cs new file mode 100644 index 000000000000..d1da186e8b16 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/TrackedResourceTags.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// Resource tags. + public partial class TrackedResourceTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal TrackedResourceTags(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.PowerShell.cs b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.PowerShell.cs new file mode 100644 index 000000000000..68e4f1666ce7 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + /// + [System.ComponentModel.TypeConverter(typeof(UserAssignedIdentitiesTypeConverter))] + public partial class UserAssignedIdentities + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api30.IUserAssignedIdentities DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new UserAssignedIdentities(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new UserAssignedIdentities(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal UserAssignedIdentities(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 UserAssignedIdentities(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); + } + } + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + [System.ComponentModel.TypeConverter(typeof(UserAssignedIdentitiesTypeConverter))] + public partial interface IUserAssignedIdentities + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.TypeConverter.cs new file mode 100644 index 000000000000..caef00084ded --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.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.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class UserAssignedIdentitiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return UserAssignedIdentities.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return UserAssignedIdentities.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return UserAssignedIdentities.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.cs b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.cs new file mode 100644 index 000000000000..7d2a84456e04 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.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.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + /// + public partial class UserAssignedIdentities : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentitiesInternal + { + + /// Creates an new instance. + public UserAssignedIdentities() + { + + } + } + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + public partial interface IUserAssignedIdentities : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + + } + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + internal partial interface IUserAssignedIdentitiesInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.dictionary.cs b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.dictionary.cs new file mode 100644 index 000000000000..57cb23e0a679 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + public partial class UserAssignedIdentities : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray.Values { get => __additionalProperties.Values; } + + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentity this[global::System.String index] { get => __additionalProperties[index]; set => __additionalProperties[index] = value; } + + /// + /// + public void Add(global::System.String key, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentity 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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.TypeConverterExtensions.GetFilteredProperties(source, new global::System.Collections.Generic.HashSet() { } ) ) + { + if ((null != property.Key && null != property.Value)) + { + this.__additionalProperties.Add(property.Key.ToString(), global::System.Management.Automation.LanguagePrimitives.ConvertTo( property.Value)); + } + } + } + } + + /// + public bool Remove(global::System.String key) => __additionalProperties.Remove( key); + + /// + /// + public bool TryGetValue(global::System.String key, out Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentity value) => __additionalProperties.TryGetValue( key, out value); + + /// + + public static implicit operator global::System.Collections.Generic.Dictionary(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.UserAssignedIdentities source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.json.cs b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.json.cs new file mode 100644 index 000000000000..6830a72e88fc --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentities.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + /// + public partial class UserAssignedIdentities + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new UserAssignedIdentities(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal UserAssignedIdentities(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IAssociativeArray)this).AdditionalProperties, (j) => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.UserAssignedIdentity.FromJson(j) ,exclusions ); + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.PowerShell.cs b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.PowerShell.cs new file mode 100644 index 000000000000..f7ab51ca55cd --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.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.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// User assigned identity properties + [System.ComponentModel.TypeConverter(typeof(UserAssignedIdentityTypeConverter))] + public partial class UserAssignedIdentity + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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.ContainerAppsApi.Models.Api30.IUserAssignedIdentity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new UserAssignedIdentity(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new UserAssignedIdentity(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal UserAssignedIdentity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentityInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentityInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentityInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentityInternal)this).ClientId, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal UserAssignedIdentity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentityInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentityInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentityInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentityInternal)this).ClientId, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// User assigned identity properties + [System.ComponentModel.TypeConverter(typeof(UserAssignedIdentityTypeConverter))] + public partial interface IUserAssignedIdentity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.TypeConverter.cs b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.TypeConverter.cs new file mode 100644 index 000000000000..eee1b819aa56 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.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.ContainerAppsApi.Models.Api30 +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class UserAssignedIdentityTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentity ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return UserAssignedIdentity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return UserAssignedIdentity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return UserAssignedIdentity.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.cs b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.cs new file mode 100644 index 000000000000..ac8f31d31a82 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// User assigned identity properties + public partial class UserAssignedIdentity : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentity, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentityInternal + { + + /// Backing field for property. + private string _clientId; + + /// The client ID of the assigned identity. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ClientId { get => this._clientId; } + + /// Internal Acessors for ClientId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentityInternal.ClientId { get => this._clientId; set { {_clientId = value;} } } + + /// Internal Acessors for PrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentityInternal.PrincipalId { get => this._principalId; set { {_principalId = value;} } } + + /// Backing field for property. + private string _principalId; + + /// The principal ID of the assigned identity. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string PrincipalId { get => this._principalId; } + + /// Creates an new instance. + public UserAssignedIdentity() + { + + } + } + /// User assigned identity properties + public partial interface IUserAssignedIdentity : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// The client ID of the assigned identity. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The client ID of the assigned identity.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string ClientId { get; } + /// The principal ID of the assigned identity. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The principal ID of the assigned identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string PrincipalId { get; } + + } + /// User assigned identity properties + internal partial interface IUserAssignedIdentityInternal + + { + /// The client ID of the assigned identity. + string ClientId { get; set; } + /// The principal ID of the assigned identity. + string PrincipalId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.json.cs b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.json.cs new file mode 100644 index 000000000000..c557bbd4e8f3 --- /dev/null +++ b/swaggerci/app/generated/api/Models/Api30/UserAssignedIdentity.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + /// User assigned identity properties + public partial class UserAssignedIdentity + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new UserAssignedIdentity(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._principalId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._principalId.ToString()) : null, "principalId" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._clientId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._clientId.ToString()) : null, "clientId" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal UserAssignedIdentity(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_principalId = If( json?.PropertyT("principalId"), out var __jsonPrincipalId) ? (string)__jsonPrincipalId : (string)PrincipalId;} + {_clientId = If( json?.PropertyT("clientId"), out var __jsonClientId) ? (string)__jsonClientId : (string)ClientId;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.PowerShell.cs b/swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.PowerShell.cs new file mode 100644 index 000000000000..6540e0cb201d --- /dev/null +++ b/swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.PowerShell.cs @@ -0,0 +1,262 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(ContainerAppsApiIdentityTypeConverter))] + public partial class ContainerAppsApiIdentity + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should 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 ContainerAppsApiIdentity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).SubscriptionId = (string) content.GetValueForProperty("SubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).SubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("ContainerAppName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ContainerAppName = (string) content.GetValueForProperty("ContainerAppName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ContainerAppName, global::System.Convert.ToString); + } + if (content.Contains("AuthConfigName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).AuthConfigName = (string) content.GetValueForProperty("AuthConfigName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).AuthConfigName, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("ConnectedEnvironmentName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ConnectedEnvironmentName = (string) content.GetValueForProperty("ConnectedEnvironmentName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ConnectedEnvironmentName, global::System.Convert.ToString); + } + if (content.Contains("CertificateName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).CertificateName = (string) content.GetValueForProperty("CertificateName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).CertificateName, global::System.Convert.ToString); + } + if (content.Contains("ComponentName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ComponentName = (string) content.GetValueForProperty("ComponentName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ComponentName, global::System.Convert.ToString); + } + if (content.Contains("StorageName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).StorageName = (string) content.GetValueForProperty("StorageName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).StorageName, global::System.Convert.ToString); + } + if (content.Contains("RevisionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).RevisionName = (string) content.GetValueForProperty("RevisionName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).RevisionName, global::System.Convert.ToString); + } + if (content.Contains("ReplicaName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ReplicaName = (string) content.GetValueForProperty("ReplicaName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ReplicaName, global::System.Convert.ToString); + } + if (content.Contains("DetectorName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).DetectorName = (string) content.GetValueForProperty("DetectorName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).DetectorName, global::System.Convert.ToString); + } + if (content.Contains("EnvironmentName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).EnvironmentName = (string) content.GetValueForProperty("EnvironmentName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).EnvironmentName, global::System.Convert.ToString); + } + if (content.Contains("ManagedCertificateName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ManagedCertificateName = (string) content.GetValueForProperty("ManagedCertificateName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ManagedCertificateName, global::System.Convert.ToString); + } + if (content.Contains("SourceControlName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).SourceControlName = (string) content.GetValueForProperty("SourceControlName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).SourceControlName, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)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 ContainerAppsApiIdentity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).SubscriptionId = (string) content.GetValueForProperty("SubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).SubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("ContainerAppName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ContainerAppName = (string) content.GetValueForProperty("ContainerAppName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ContainerAppName, global::System.Convert.ToString); + } + if (content.Contains("AuthConfigName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).AuthConfigName = (string) content.GetValueForProperty("AuthConfigName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).AuthConfigName, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("ConnectedEnvironmentName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ConnectedEnvironmentName = (string) content.GetValueForProperty("ConnectedEnvironmentName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ConnectedEnvironmentName, global::System.Convert.ToString); + } + if (content.Contains("CertificateName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).CertificateName = (string) content.GetValueForProperty("CertificateName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).CertificateName, global::System.Convert.ToString); + } + if (content.Contains("ComponentName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ComponentName = (string) content.GetValueForProperty("ComponentName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ComponentName, global::System.Convert.ToString); + } + if (content.Contains("StorageName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).StorageName = (string) content.GetValueForProperty("StorageName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).StorageName, global::System.Convert.ToString); + } + if (content.Contains("RevisionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).RevisionName = (string) content.GetValueForProperty("RevisionName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).RevisionName, global::System.Convert.ToString); + } + if (content.Contains("ReplicaName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ReplicaName = (string) content.GetValueForProperty("ReplicaName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ReplicaName, global::System.Convert.ToString); + } + if (content.Contains("DetectorName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).DetectorName = (string) content.GetValueForProperty("DetectorName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).DetectorName, global::System.Convert.ToString); + } + if (content.Contains("EnvironmentName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).EnvironmentName = (string) content.GetValueForProperty("EnvironmentName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).EnvironmentName, global::System.Convert.ToString); + } + if (content.Contains("ManagedCertificateName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ManagedCertificateName = (string) content.GetValueForProperty("ManagedCertificateName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).ManagedCertificateName, global::System.Convert.ToString); + } + if (content.Contains("SourceControlName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).SourceControlName = (string) content.GetValueForProperty("SourceControlName",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).SourceControlName, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal)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.ContainerAppsApi.Models.IContainerAppsApiIdentity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ContainerAppsApiIdentity(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ContainerAppsApiIdentity(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(ContainerAppsApiIdentityTypeConverter))] + public partial interface IContainerAppsApiIdentity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.TypeConverter.cs b/swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.TypeConverter.cs new file mode 100644 index 000000000000..3d89a5e38c45 --- /dev/null +++ b/swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.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.ContainerAppsApi.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContainerAppsApiIdentityTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// type. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + // we allow string conversion too. + if (type == typeof(global::System.String)) + { + return true; + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the + /// parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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 ContainerAppsApiIdentity { Id = sourceValue }; + } + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ContainerAppsApiIdentity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ContainerAppsApiIdentity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ContainerAppsApiIdentity.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.cs b/swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.cs new file mode 100644 index 000000000000..7d482e743080 --- /dev/null +++ b/swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.cs @@ -0,0 +1,303 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + public partial class ContainerAppsApiIdentity : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentityInternal + { + + /// Backing field for property. + private string _authConfigName; + + /// Name of the Container App AuthConfig. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string AuthConfigName { get => this._authConfigName; set => this._authConfigName = value; } + + /// Backing field for property. + private string _certificateName; + + /// Name of the Certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string CertificateName { get => this._certificateName; set => this._certificateName = value; } + + /// Backing field for property. + private string _componentName; + + /// Name of the Dapr Component. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ComponentName { get => this._componentName; set => this._componentName = value; } + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the connectedEnvironment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = value; } + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = value; } + + /// Backing field for property. + private string _detectorName; + + /// Name of the Container App Detector. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string DetectorName { get => this._detectorName; set => this._detectorName = value; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = value; } + + /// Backing field for property. + private string _id; + + /// Resource identity path + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Id { get => this._id; set => this._id = value; } + + /// Backing field for property. + private string _location; + + /// The name of Azure region. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Backing field for property. + private string _managedCertificateName; + + /// Name of the Managed Certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ManagedCertificateName { get => this._managedCertificateName; set => this._managedCertificateName = value; } + + /// Backing field for property. + private string _replicaName; + + /// Name of the Container App Revision Replica. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ReplicaName { get => this._replicaName; set => this._replicaName = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _revisionName; + + /// Name of the Container App Revision. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string RevisionName { get => this._revisionName; set => this._revisionName = value; } + + /// Backing field for property. + private string _sourceControlName; + + /// Name of the Container App SourceControl. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string SourceControlName { get => this._sourceControlName; set => this._sourceControlName = value; } + + /// Backing field for property. + private string _storageName; + + /// Name of the storage. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string StorageName { get => this._storageName; set => this._storageName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.PropertyOrigin.Owned)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Creates an new instance. + public ContainerAppsApiIdentity() + { + + } + } + public partial interface IContainerAppsApiIdentity : + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable + { + /// Name of the Container App AuthConfig. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Container App AuthConfig.", + SerializedName = @"authConfigName", + PossibleTypes = new [] { typeof(string) })] + string AuthConfigName { get; set; } + /// Name of the Certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Certificate.", + SerializedName = @"certificateName", + PossibleTypes = new [] { typeof(string) })] + string CertificateName { get; set; } + /// Name of the Dapr Component. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Dapr Component.", + SerializedName = @"componentName", + PossibleTypes = new [] { typeof(string) })] + string ComponentName { get; set; } + /// Name of the connectedEnvironment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the connectedEnvironment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + string ConnectedEnvironmentName { get; set; } + /// Name of the Container App. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + string ContainerAppName { get; set; } + /// Name of the Container App Detector. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Container App Detector.", + SerializedName = @"detectorName", + PossibleTypes = new [] { typeof(string) })] + string DetectorName { get; set; } + /// Name of the Environment. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + string EnvironmentName { get; set; } + /// Resource identity path + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource identity path", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; set; } + /// The name of Azure region. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of Azure region.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// Name of the Managed Certificate. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Managed Certificate.", + SerializedName = @"managedCertificateName", + PossibleTypes = new [] { typeof(string) })] + string ManagedCertificateName { get; set; } + /// Name of the Container App Revision Replica. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Container App Revision Replica.", + SerializedName = @"replicaName", + PossibleTypes = new [] { typeof(string) })] + string ReplicaName { get; set; } + /// The name of the resource group. The name is case insensitive. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + string ResourceGroupName { get; set; } + /// Name of the Container App Revision. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Container App Revision.", + SerializedName = @"revisionName", + PossibleTypes = new [] { typeof(string) })] + string RevisionName { get; set; } + /// Name of the Container App SourceControl. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Container App SourceControl.", + SerializedName = @"sourceControlName", + PossibleTypes = new [] { typeof(string) })] + string SourceControlName { get; set; } + /// Name of the storage. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the storage.", + SerializedName = @"storageName", + PossibleTypes = new [] { typeof(string) })] + string StorageName { get; set; } + /// The ID of the target subscription. + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + string SubscriptionId { get; set; } + + } + internal partial interface IContainerAppsApiIdentityInternal + + { + /// Name of the Container App AuthConfig. + string AuthConfigName { get; set; } + /// Name of the Certificate. + string CertificateName { get; set; } + /// Name of the Dapr Component. + string ComponentName { get; set; } + /// Name of the connectedEnvironment. + string ConnectedEnvironmentName { get; set; } + /// Name of the Container App. + string ContainerAppName { get; set; } + /// Name of the Container App Detector. + string DetectorName { get; set; } + /// Name of the Environment. + string EnvironmentName { get; set; } + /// Resource identity path + string Id { get; set; } + /// The name of Azure region. + string Location { get; set; } + /// Name of the Managed Certificate. + string ManagedCertificateName { get; set; } + /// Name of the Container App Revision Replica. + string ReplicaName { get; set; } + /// The name of the resource group. The name is case insensitive. + string ResourceGroupName { get; set; } + /// Name of the Container App Revision. + string RevisionName { get; set; } + /// Name of the Container App SourceControl. + string SourceControlName { get; set; } + /// Name of the storage. + string StorageName { get; set; } + /// The ID of the target subscription. + string SubscriptionId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.json.cs b/swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.json.cs new file mode 100644 index 000000000000..4f45d82a6176 --- /dev/null +++ b/swaggerci/app/generated/api/Models/ContainerAppsApiIdentity.json.cs @@ -0,0 +1,137 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + public partial class ContainerAppsApiIdentity + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the + /// output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output + /// parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject instance to deserialize from. + internal ContainerAppsApiIdentity(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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;} + {_containerAppName = If( json?.PropertyT("containerAppName"), out var __jsonContainerAppName) ? (string)__jsonContainerAppName : (string)ContainerAppName;} + {_authConfigName = If( json?.PropertyT("authConfigName"), out var __jsonAuthConfigName) ? (string)__jsonAuthConfigName : (string)AuthConfigName;} + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + {_connectedEnvironmentName = If( json?.PropertyT("connectedEnvironmentName"), out var __jsonConnectedEnvironmentName) ? (string)__jsonConnectedEnvironmentName : (string)ConnectedEnvironmentName;} + {_certificateName = If( json?.PropertyT("certificateName"), out var __jsonCertificateName) ? (string)__jsonCertificateName : (string)CertificateName;} + {_componentName = If( json?.PropertyT("componentName"), out var __jsonComponentName) ? (string)__jsonComponentName : (string)ComponentName;} + {_storageName = If( json?.PropertyT("storageName"), out var __jsonStorageName) ? (string)__jsonStorageName : (string)StorageName;} + {_revisionName = If( json?.PropertyT("revisionName"), out var __jsonRevisionName) ? (string)__jsonRevisionName : (string)RevisionName;} + {_replicaName = If( json?.PropertyT("replicaName"), out var __jsonReplicaName) ? (string)__jsonReplicaName : (string)ReplicaName;} + {_detectorName = If( json?.PropertyT("detectorName"), out var __jsonDetectorName) ? (string)__jsonDetectorName : (string)DetectorName;} + {_environmentName = If( json?.PropertyT("environmentName"), out var __jsonEnvironmentName) ? (string)__jsonEnvironmentName : (string)EnvironmentName;} + {_managedCertificateName = If( json?.PropertyT("managedCertificateName"), out var __jsonManagedCertificateName) ? (string)__jsonManagedCertificateName : (string)ManagedCertificateName;} + {_sourceControlName = If( json?.PropertyT("sourceControlName"), out var __jsonSourceControlName) ? (string)__jsonSourceControlName : (string)SourceControlName;} + {_id = If( json?.PropertyT("id"), out var __jsonId) ? (string)__jsonId : (string)Id;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new ContainerAppsApiIdentity(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.ContainerAppsApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._subscriptionId.ToString()) : null, "subscriptionId" ,container.Add ); + AddIf( null != (((object)this._resourceGroupName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._resourceGroupName.ToString()) : null, "resourceGroupName" ,container.Add ); + AddIf( null != (((object)this._containerAppName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._containerAppName.ToString()) : null, "containerAppName" ,container.Add ); + AddIf( null != (((object)this._authConfigName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._authConfigName.ToString()) : null, "authConfigName" ,container.Add ); + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + AddIf( null != (((object)this._connectedEnvironmentName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._connectedEnvironmentName.ToString()) : null, "connectedEnvironmentName" ,container.Add ); + AddIf( null != (((object)this._certificateName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._certificateName.ToString()) : null, "certificateName" ,container.Add ); + AddIf( null != (((object)this._componentName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._componentName.ToString()) : null, "componentName" ,container.Add ); + AddIf( null != (((object)this._storageName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._storageName.ToString()) : null, "storageName" ,container.Add ); + AddIf( null != (((object)this._revisionName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._revisionName.ToString()) : null, "revisionName" ,container.Add ); + AddIf( null != (((object)this._replicaName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._replicaName.ToString()) : null, "replicaName" ,container.Add ); + AddIf( null != (((object)this._detectorName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._detectorName.ToString()) : null, "detectorName" ,container.Add ); + AddIf( null != (((object)this._environmentName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._environmentName.ToString()) : null, "environmentName" ,container.Add ); + AddIf( null != (((object)this._managedCertificateName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._managedCertificateName.ToString()) : null, "managedCertificateName" ,container.Add ); + AddIf( null != (((object)this._sourceControlName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonString(this._sourceControlName.ToString()) : null, "sourceControlName" ,container.Add ); + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/api/Support/AccessMode.Completer.cs b/swaggerci/app/generated/api/Support/AccessMode.Completer.cs new file mode 100644 index 000000000000..626f3584bbec --- /dev/null +++ b/swaggerci/app/generated/api/Support/AccessMode.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.ContainerAppsApi.Support +{ + + /// Access mode for storage + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessModeTypeConverter))] + public partial struct AccessMode : + 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) || "ReadOnly".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ReadOnly'", "ReadOnly", global::System.Management.Automation.CompletionResultType.ParameterValue, "ReadOnly"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ReadWrite".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ReadWrite'", "ReadWrite", global::System.Management.Automation.CompletionResultType.ParameterValue, "ReadWrite"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/AccessMode.TypeConverter.cs b/swaggerci/app/generated/api/Support/AccessMode.TypeConverter.cs new file mode 100644 index 000000000000..d88b64c595f5 --- /dev/null +++ b/swaggerci/app/generated/api/Support/AccessMode.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.ContainerAppsApi.Support +{ + + /// Access mode for storage + public partial class AccessModeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => AccessMode.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/app/generated/api/Support/AccessMode.cs b/swaggerci/app/generated/api/Support/AccessMode.cs new file mode 100644 index 000000000000..1e0e714fbaae --- /dev/null +++ b/swaggerci/app/generated/api/Support/AccessMode.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.ContainerAppsApi.Support +{ + + /// Access mode for storage + public partial struct AccessMode : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode ReadOnly = @"ReadOnly"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode ReadWrite = @"ReadWrite"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private AccessMode(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to AccessMode + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new AccessMode(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type AccessMode + /// 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.ContainerAppsApi.Support.AccessMode e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type AccessMode (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 AccessMode && Equals((AccessMode)obj); + } + + /// Returns hashCode for enum AccessMode + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for AccessMode + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to AccessMode + /// the value to convert to an instance of . + + public static implicit operator AccessMode(string value) + { + return new AccessMode(value); + } + + /// Implicit operator to convert AccessMode to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode e) + { + return e._value; + } + + /// Overriding != operator for enum AccessMode + /// 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.ContainerAppsApi.Support.AccessMode e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum AccessMode + /// 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.ContainerAppsApi.Support.AccessMode e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/Action.Completer.cs b/swaggerci/app/generated/api/Support/Action.Completer.cs new file mode 100644 index 000000000000..0a1d0132e823 --- /dev/null +++ b/swaggerci/app/generated/api/Support/Action.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.ContainerAppsApi.Support +{ + + /// + /// Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or ALL Deny + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActionTypeConverter))] + public partial struct Action : + 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) || "Allow".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Allow'", "Allow", global::System.Management.Automation.CompletionResultType.ParameterValue, "Allow"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deny".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deny'", "Deny", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deny"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/Action.TypeConverter.cs b/swaggerci/app/generated/api/Support/Action.TypeConverter.cs new file mode 100644 index 000000000000..cb6ee0908bab --- /dev/null +++ b/swaggerci/app/generated/api/Support/Action.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.ContainerAppsApi.Support +{ + + /// + /// Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or ALL Deny + /// + public partial class ActionTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => Action.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/app/generated/api/Support/Action.cs b/swaggerci/app/generated/api/Support/Action.cs new file mode 100644 index 000000000000..b1741a6bf384 --- /dev/null +++ b/swaggerci/app/generated/api/Support/Action.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.ContainerAppsApi.Support +{ + + /// + /// Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or ALL Deny + /// + public partial struct Action : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Action Allow = @"Allow"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Action Deny = @"Deny"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private Action(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to Action + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new Action(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type Action + /// 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.ContainerAppsApi.Support.Action e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type Action (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 Action && Equals((Action)obj); + } + + /// Returns hashCode for enum Action + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for Action + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to Action + /// the value to convert to an instance of . + + public static implicit operator Action(string value) + { + return new Action(value); + } + + /// Implicit operator to convert Action to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Action e) + { + return e._value; + } + + /// Overriding != operator for enum Action + /// 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.ContainerAppsApi.Support.Action e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Action e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum Action + /// 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.ContainerAppsApi.Support.Action e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Action e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ActiveRevisionsMode.Completer.cs b/swaggerci/app/generated/api/Support/ActiveRevisionsMode.Completer.cs new file mode 100644 index 000000000000..7f86062791dd --- /dev/null +++ b/swaggerci/app/generated/api/Support/ActiveRevisionsMode.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.ContainerAppsApi.Support +{ + + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app: + /// Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + /// Revision weights can not be used in this mode. If no value if provided, this is the default. + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsModeTypeConverter))] + public partial struct ActiveRevisionsMode : + 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) || "Multiple".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Multiple'", "Multiple", global::System.Management.Automation.CompletionResultType.ParameterValue, "Multiple"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Single".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Single'", "Single", global::System.Management.Automation.CompletionResultType.ParameterValue, "Single"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ActiveRevisionsMode.TypeConverter.cs b/swaggerci/app/generated/api/Support/ActiveRevisionsMode.TypeConverter.cs new file mode 100644 index 000000000000..050d878e5986 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ActiveRevisionsMode.TypeConverter.cs @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app: + /// Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + /// Revision weights can not be used in this mode. If no value if provided, this is the default. + /// + public partial class ActiveRevisionsModeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => ActiveRevisionsMode.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/app/generated/api/Support/ActiveRevisionsMode.cs b/swaggerci/app/generated/api/Support/ActiveRevisionsMode.cs new file mode 100644 index 000000000000..b7aef10fbec0 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ActiveRevisionsMode.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.ContainerAppsApi.Support +{ + + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app: + /// Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. + /// Revision weights can not be used in this mode. If no value if provided, this is the default. + /// + public partial struct ActiveRevisionsMode : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode Multiple = @"Multiple"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode Single = @"Single"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private ActiveRevisionsMode(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ActiveRevisionsMode + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ActiveRevisionsMode(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ActiveRevisionsMode + /// 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.ContainerAppsApi.Support.ActiveRevisionsMode e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ActiveRevisionsMode (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 ActiveRevisionsMode && Equals((ActiveRevisionsMode)obj); + } + + /// Returns hashCode for enum ActiveRevisionsMode + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ActiveRevisionsMode + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ActiveRevisionsMode + /// the value to convert to an instance of . + + public static implicit operator ActiveRevisionsMode(string value) + { + return new ActiveRevisionsMode(value); + } + + /// Implicit operator to convert ActiveRevisionsMode to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode e) + { + return e._value; + } + + /// Overriding != operator for enum ActiveRevisionsMode + /// 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.ContainerAppsApi.Support.ActiveRevisionsMode e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ActiveRevisionsMode + /// 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.ContainerAppsApi.Support.ActiveRevisionsMode e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/AppProtocol.Completer.cs b/swaggerci/app/generated/api/Support/AppProtocol.Completer.cs new file mode 100644 index 000000000000..142c0d66d48f --- /dev/null +++ b/swaggerci/app/generated/api/Support/AppProtocol.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.ContainerAppsApi.Support +{ + + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocolTypeConverter))] + public partial struct AppProtocol : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "http".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'http'", "http", global::System.Management.Automation.CompletionResultType.ParameterValue, "http"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "grpc".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'grpc'", "grpc", global::System.Management.Automation.CompletionResultType.ParameterValue, "grpc"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/AppProtocol.TypeConverter.cs b/swaggerci/app/generated/api/Support/AppProtocol.TypeConverter.cs new file mode 100644 index 000000000000..0f73c0b7deb6 --- /dev/null +++ b/swaggerci/app/generated/api/Support/AppProtocol.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.ContainerAppsApi.Support +{ + + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + public partial class AppProtocolTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => AppProtocol.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/app/generated/api/Support/AppProtocol.cs b/swaggerci/app/generated/api/Support/AppProtocol.cs new file mode 100644 index 000000000000..72eeb7ae5214 --- /dev/null +++ b/swaggerci/app/generated/api/Support/AppProtocol.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.ContainerAppsApi.Support +{ + + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + public partial struct AppProtocol : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol Grpc = @"grpc"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol Http = @"http"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private AppProtocol(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to AppProtocol + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new AppProtocol(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type AppProtocol + /// 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.ContainerAppsApi.Support.AppProtocol e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type AppProtocol (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 AppProtocol && Equals((AppProtocol)obj); + } + + /// Returns hashCode for enum AppProtocol + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for AppProtocol + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to AppProtocol + /// the value to convert to an instance of . + + public static implicit operator AppProtocol(string value) + { + return new AppProtocol(value); + } + + /// Implicit operator to convert AppProtocol to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol e) + { + return e._value; + } + + /// Overriding != operator for enum AppProtocol + /// 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.ContainerAppsApi.Support.AppProtocol e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum AppProtocol + /// 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.ContainerAppsApi.Support.AppProtocol e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/Applicability.Completer.cs b/swaggerci/app/generated/api/Support/Applicability.Completer.cs new file mode 100644 index 000000000000..722f1d563bf3 --- /dev/null +++ b/swaggerci/app/generated/api/Support/Applicability.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.ContainerAppsApi.Support +{ + + /// indicates whether the profile is default for the location. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ApplicabilityTypeConverter))] + public partial struct Applicability : + 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) || "LocationDefault".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'LocationDefault'", "LocationDefault", global::System.Management.Automation.CompletionResultType.ParameterValue, "LocationDefault"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Custom".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Custom'", "Custom", global::System.Management.Automation.CompletionResultType.ParameterValue, "Custom"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/Applicability.TypeConverter.cs b/swaggerci/app/generated/api/Support/Applicability.TypeConverter.cs new file mode 100644 index 000000000000..5d40bbda8dd8 --- /dev/null +++ b/swaggerci/app/generated/api/Support/Applicability.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.ContainerAppsApi.Support +{ + + /// indicates whether the profile is default for the location. + public partial class ApplicabilityTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => Applicability.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/app/generated/api/Support/Applicability.cs b/swaggerci/app/generated/api/Support/Applicability.cs new file mode 100644 index 000000000000..db4a8bcf8af9 --- /dev/null +++ b/swaggerci/app/generated/api/Support/Applicability.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.ContainerAppsApi.Support +{ + + /// indicates whether the profile is default for the location. + public partial struct Applicability : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability Custom = @"Custom"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability LocationDefault = @"LocationDefault"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private Applicability(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to Applicability + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new Applicability(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type Applicability + /// 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.ContainerAppsApi.Support.Applicability e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type Applicability (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 Applicability && Equals((Applicability)obj); + } + + /// Returns hashCode for enum Applicability + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for Applicability + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to Applicability + /// the value to convert to an instance of . + + public static implicit operator Applicability(string value) + { + return new Applicability(value); + } + + /// Implicit operator to convert Applicability to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability e) + { + return e._value; + } + + /// Overriding != operator for enum Applicability + /// 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.ContainerAppsApi.Support.Applicability e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum Applicability + /// 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.ContainerAppsApi.Support.Applicability e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Applicability e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/BindingType.Completer.cs b/swaggerci/app/generated/api/Support/BindingType.Completer.cs new file mode 100644 index 000000000000..822011fd13de --- /dev/null +++ b/swaggerci/app/generated/api/Support/BindingType.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.ContainerAppsApi.Support +{ + + /// Custom Domain binding type. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingTypeTypeConverter))] + public partial struct BindingType : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Disabled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Disabled'", "Disabled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Disabled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SniEnabled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SniEnabled'", "SniEnabled", global::System.Management.Automation.CompletionResultType.ParameterValue, "SniEnabled"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/BindingType.TypeConverter.cs b/swaggerci/app/generated/api/Support/BindingType.TypeConverter.cs new file mode 100644 index 000000000000..1915e0fef7f6 --- /dev/null +++ b/swaggerci/app/generated/api/Support/BindingType.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// Custom Domain binding type. + public partial class BindingTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => BindingType.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/BindingType.cs b/swaggerci/app/generated/api/Support/BindingType.cs new file mode 100644 index 000000000000..fb3aab6f1236 --- /dev/null +++ b/swaggerci/app/generated/api/Support/BindingType.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.ContainerAppsApi.Support +{ + + /// Custom Domain binding type. + public partial struct BindingType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType Disabled = @"Disabled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType SniEnabled = @"SniEnabled"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private BindingType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to BindingType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new BindingType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type BindingType + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type BindingType (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is BindingType && Equals((BindingType)obj); + } + + /// Returns hashCode for enum BindingType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for BindingType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to BindingType + /// the value to convert to an instance of . + + public static implicit operator BindingType(string value) + { + return new BindingType(value); + } + + /// Implicit operator to convert BindingType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType e) + { + return e._value; + } + + /// Overriding != operator for enum BindingType + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum BindingType + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.BindingType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/Category.Completer.cs b/swaggerci/app/generated/api/Support/Category.Completer.cs new file mode 100644 index 000000000000..ec764705d5ec --- /dev/null +++ b/swaggerci/app/generated/api/Support/Category.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.ContainerAppsApi.Support +{ + + /// Used to map workload profile types to billing meter. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CategoryTypeConverter))] + public partial struct Category : + 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) || "PremiumSkuGeneralPurpose".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'PremiumSkuGeneralPurpose'", "PremiumSkuGeneralPurpose", global::System.Management.Automation.CompletionResultType.ParameterValue, "PremiumSkuGeneralPurpose"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "PremiumSkuMemoryOptimized".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'PremiumSkuMemoryOptimized'", "PremiumSkuMemoryOptimized", global::System.Management.Automation.CompletionResultType.ParameterValue, "PremiumSkuMemoryOptimized"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "PremiumSkuComputeOptimized".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'PremiumSkuComputeOptimized'", "PremiumSkuComputeOptimized", global::System.Management.Automation.CompletionResultType.ParameterValue, "PremiumSkuComputeOptimized"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/Category.TypeConverter.cs b/swaggerci/app/generated/api/Support/Category.TypeConverter.cs new file mode 100644 index 000000000000..ef6134cc7d59 --- /dev/null +++ b/swaggerci/app/generated/api/Support/Category.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.ContainerAppsApi.Support +{ + + /// Used to map workload profile types to billing meter. + public partial class CategoryTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => Category.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/app/generated/api/Support/Category.cs b/swaggerci/app/generated/api/Support/Category.cs new file mode 100644 index 000000000000..5c36aa45ae94 --- /dev/null +++ b/swaggerci/app/generated/api/Support/Category.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.ContainerAppsApi.Support +{ + + /// Used to map workload profile types to billing meter. + public partial struct Category : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category PremiumSkuComputeOptimized = @"PremiumSkuComputeOptimized"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category PremiumSkuGeneralPurpose = @"PremiumSkuGeneralPurpose"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category PremiumSkuMemoryOptimized = @"PremiumSkuMemoryOptimized"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private Category(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to Category + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new Category(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type Category + /// 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.ContainerAppsApi.Support.Category e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type Category (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 Category && Equals((Category)obj); + } + + /// Returns hashCode for enum Category + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for Category + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to Category + /// the value to convert to an instance of . + + public static implicit operator Category(string value) + { + return new Category(value); + } + + /// Implicit operator to convert Category to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category e) + { + return e._value; + } + + /// Overriding != operator for enum Category + /// 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.ContainerAppsApi.Support.Category e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum Category + /// 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.ContainerAppsApi.Support.Category e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Category e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/CertificateProvisioningState.Completer.cs b/swaggerci/app/generated/api/Support/CertificateProvisioningState.Completer.cs new file mode 100644 index 000000000000..9f0caf98bce4 --- /dev/null +++ b/swaggerci/app/generated/api/Support/CertificateProvisioningState.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.ContainerAppsApi.Support +{ + + /// Provisioning state of the certificate. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningStateTypeConverter))] + public partial struct CertificateProvisioningState : + 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) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "DeleteFailed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'DeleteFailed'", "DeleteFailed", global::System.Management.Automation.CompletionResultType.ParameterValue, "DeleteFailed"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Pending".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Pending'", "Pending", global::System.Management.Automation.CompletionResultType.ParameterValue, "Pending"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/CertificateProvisioningState.TypeConverter.cs b/swaggerci/app/generated/api/Support/CertificateProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..d7aac468b187 --- /dev/null +++ b/swaggerci/app/generated/api/Support/CertificateProvisioningState.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.ContainerAppsApi.Support +{ + + /// Provisioning state of the certificate. + public partial class CertificateProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => CertificateProvisioningState.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/app/generated/api/Support/CertificateProvisioningState.cs b/swaggerci/app/generated/api/Support/CertificateProvisioningState.cs new file mode 100644 index 000000000000..9956cca23b30 --- /dev/null +++ b/swaggerci/app/generated/api/Support/CertificateProvisioningState.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.ContainerAppsApi.Support +{ + + /// Provisioning state of the certificate. + public partial struct CertificateProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState DeleteFailed = @"DeleteFailed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState Pending = @"Pending"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState Succeeded = @"Succeeded"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private CertificateProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to CertificateProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new CertificateProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type CertificateProvisioningState + /// 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.ContainerAppsApi.Support.CertificateProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type CertificateProvisioningState (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 CertificateProvisioningState && Equals((CertificateProvisioningState)obj); + } + + /// Returns hashCode for enum CertificateProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for CertificateProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to CertificateProvisioningState + /// the value to convert to an instance of . + + public static implicit operator CertificateProvisioningState(string value) + { + return new CertificateProvisioningState(value); + } + + /// Implicit operator to convert CertificateProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum CertificateProvisioningState + /// 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.ContainerAppsApi.Support.CertificateProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum CertificateProvisioningState + /// 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.ContainerAppsApi.Support.CertificateProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CertificateProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/CheckNameAvailabilityReason.Completer.cs b/swaggerci/app/generated/api/Support/CheckNameAvailabilityReason.Completer.cs new file mode 100644 index 000000000000..3b4d10dd3046 --- /dev/null +++ b/swaggerci/app/generated/api/Support/CheckNameAvailabilityReason.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.ContainerAppsApi.Support +{ + + /// The reason why the given name is not available. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReasonTypeConverter))] + public partial struct CheckNameAvailabilityReason : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Invalid".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Invalid'", "Invalid", global::System.Management.Automation.CompletionResultType.ParameterValue, "Invalid"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AlreadyExists".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'AlreadyExists'", "AlreadyExists", global::System.Management.Automation.CompletionResultType.ParameterValue, "AlreadyExists"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/CheckNameAvailabilityReason.TypeConverter.cs b/swaggerci/app/generated/api/Support/CheckNameAvailabilityReason.TypeConverter.cs new file mode 100644 index 000000000000..82a9cfadd3ea --- /dev/null +++ b/swaggerci/app/generated/api/Support/CheckNameAvailabilityReason.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.ContainerAppsApi.Support +{ + + /// The reason why the given name is not available. + public partial class CheckNameAvailabilityReasonTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => CheckNameAvailabilityReason.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/app/generated/api/Support/CheckNameAvailabilityReason.cs b/swaggerci/app/generated/api/Support/CheckNameAvailabilityReason.cs new file mode 100644 index 000000000000..6b006f1c88f1 --- /dev/null +++ b/swaggerci/app/generated/api/Support/CheckNameAvailabilityReason.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.ContainerAppsApi.Support +{ + + /// The reason why the given name is not available. + public partial struct CheckNameAvailabilityReason : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReason AlreadyExists = @"AlreadyExists"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReason Invalid = @"Invalid"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private CheckNameAvailabilityReason(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to CheckNameAvailabilityReason + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new CheckNameAvailabilityReason(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type CheckNameAvailabilityReason + /// 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.ContainerAppsApi.Support.CheckNameAvailabilityReason e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type CheckNameAvailabilityReason (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 CheckNameAvailabilityReason && Equals((CheckNameAvailabilityReason)obj); + } + + /// Returns hashCode for enum CheckNameAvailabilityReason + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for CheckNameAvailabilityReason + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to CheckNameAvailabilityReason + /// the value to convert to an instance of . + + public static implicit operator CheckNameAvailabilityReason(string value) + { + return new CheckNameAvailabilityReason(value); + } + + /// Implicit operator to convert CheckNameAvailabilityReason to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReason e) + { + return e._value; + } + + /// Overriding != operator for enum CheckNameAvailabilityReason + /// 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.ContainerAppsApi.Support.CheckNameAvailabilityReason e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReason e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum CheckNameAvailabilityReason + /// 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.ContainerAppsApi.Support.CheckNameAvailabilityReason e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CheckNameAvailabilityReason e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ClientCredentialMethod.Completer.cs b/swaggerci/app/generated/api/Support/ClientCredentialMethod.Completer.cs new file mode 100644 index 000000000000..504310a73326 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ClientCredentialMethod.Completer.cs @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// The method that should be used to authenticate the user. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethodTypeConverter))] + public partial struct ClientCredentialMethod : + 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) || "ClientSecretPost".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ClientSecretPost'", "ClientSecretPost", global::System.Management.Automation.CompletionResultType.ParameterValue, "ClientSecretPost"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ClientCredentialMethod.TypeConverter.cs b/swaggerci/app/generated/api/Support/ClientCredentialMethod.TypeConverter.cs new file mode 100644 index 000000000000..951670941085 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ClientCredentialMethod.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.ContainerAppsApi.Support +{ + + /// The method that should be used to authenticate the user. + public partial class ClientCredentialMethodTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => ClientCredentialMethod.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/app/generated/api/Support/ClientCredentialMethod.cs b/swaggerci/app/generated/api/Support/ClientCredentialMethod.cs new file mode 100644 index 000000000000..251bead9662e --- /dev/null +++ b/swaggerci/app/generated/api/Support/ClientCredentialMethod.cs @@ -0,0 +1,96 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// The method that should be used to authenticate the user. + public partial struct ClientCredentialMethod : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod ClientSecretPost = @"ClientSecretPost"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private ClientCredentialMethod(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ClientCredentialMethod + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ClientCredentialMethod(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ClientCredentialMethod + /// 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.ContainerAppsApi.Support.ClientCredentialMethod e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ClientCredentialMethod (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 ClientCredentialMethod && Equals((ClientCredentialMethod)obj); + } + + /// Returns hashCode for enum ClientCredentialMethod + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ClientCredentialMethod + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ClientCredentialMethod + /// the value to convert to an instance of . + + public static implicit operator ClientCredentialMethod(string value) + { + return new ClientCredentialMethod(value); + } + + /// Implicit operator to convert ClientCredentialMethod to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod e) + { + return e._value; + } + + /// Overriding != operator for enum ClientCredentialMethod + /// 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.ContainerAppsApi.Support.ClientCredentialMethod e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ClientCredentialMethod + /// 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.ContainerAppsApi.Support.ClientCredentialMethod e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ClientCredentialMethod e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ConnectedEnvironmentProvisioningState.Completer.cs b/swaggerci/app/generated/api/Support/ConnectedEnvironmentProvisioningState.Completer.cs new file mode 100644 index 000000000000..6f3d86eb0ee8 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ConnectedEnvironmentProvisioningState.Completer.cs @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// Provisioning state of the Kubernetes Environment. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningStateTypeConverter))] + public partial struct ConnectedEnvironmentProvisioningState : + 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) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Waiting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Waiting'", "Waiting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Waiting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "InitializationInProgress".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'InitializationInProgress'", "InitializationInProgress", global::System.Management.Automation.CompletionResultType.ParameterValue, "InitializationInProgress"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "InfrastructureSetupInProgress".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'InfrastructureSetupInProgress'", "InfrastructureSetupInProgress", global::System.Management.Automation.CompletionResultType.ParameterValue, "InfrastructureSetupInProgress"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "InfrastructureSetupComplete".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'InfrastructureSetupComplete'", "InfrastructureSetupComplete", global::System.Management.Automation.CompletionResultType.ParameterValue, "InfrastructureSetupComplete"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ScheduledForDelete".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ScheduledForDelete'", "ScheduledForDelete", global::System.Management.Automation.CompletionResultType.ParameterValue, "ScheduledForDelete"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ConnectedEnvironmentProvisioningState.TypeConverter.cs b/swaggerci/app/generated/api/Support/ConnectedEnvironmentProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..af377321cb43 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ConnectedEnvironmentProvisioningState.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.ContainerAppsApi.Support +{ + + /// Provisioning state of the Kubernetes Environment. + public partial class ConnectedEnvironmentProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => ConnectedEnvironmentProvisioningState.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/app/generated/api/Support/ConnectedEnvironmentProvisioningState.cs b/swaggerci/app/generated/api/Support/ConnectedEnvironmentProvisioningState.cs new file mode 100644 index 000000000000..e6cfdeca1a11 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ConnectedEnvironmentProvisioningState.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// Provisioning state of the Kubernetes Environment. + public partial struct ConnectedEnvironmentProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState InfrastructureSetupComplete = @"InfrastructureSetupComplete"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState InfrastructureSetupInProgress = @"InfrastructureSetupInProgress"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState InitializationInProgress = @"InitializationInProgress"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState ScheduledForDelete = @"ScheduledForDelete"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState Waiting = @"Waiting"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private ConnectedEnvironmentProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ConnectedEnvironmentProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ConnectedEnvironmentProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ConnectedEnvironmentProvisioningState + /// 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.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type ConnectedEnvironmentProvisioningState (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 ConnectedEnvironmentProvisioningState && Equals((ConnectedEnvironmentProvisioningState)obj); + } + + /// Returns hashCode for enum ConnectedEnvironmentProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ConnectedEnvironmentProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ConnectedEnvironmentProvisioningState + /// the value to convert to an instance of . + + public static implicit operator ConnectedEnvironmentProvisioningState(string value) + { + return new ConnectedEnvironmentProvisioningState(value); + } + + /// Implicit operator to convert ConnectedEnvironmentProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum ConnectedEnvironmentProvisioningState + /// 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.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ConnectedEnvironmentProvisioningState + /// 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.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ConnectedEnvironmentProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ContainerAppProvisioningState.Completer.cs b/swaggerci/app/generated/api/Support/ContainerAppProvisioningState.Completer.cs new file mode 100644 index 000000000000..d60dca690275 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ContainerAppProvisioningState.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.ContainerAppsApi.Support +{ + + /// Provisioning state of the Container App. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningStateTypeConverter))] + public partial struct ContainerAppProvisioningState : + 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) || "InProgress".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'InProgress'", "InProgress", global::System.Management.Automation.CompletionResultType.ParameterValue, "InProgress"); + } + 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) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ContainerAppProvisioningState.TypeConverter.cs b/swaggerci/app/generated/api/Support/ContainerAppProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..bd5f06c14f0b --- /dev/null +++ b/swaggerci/app/generated/api/Support/ContainerAppProvisioningState.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.ContainerAppsApi.Support +{ + + /// Provisioning state of the Container App. + public partial class ContainerAppProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => ContainerAppProvisioningState.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/app/generated/api/Support/ContainerAppProvisioningState.cs b/swaggerci/app/generated/api/Support/ContainerAppProvisioningState.cs new file mode 100644 index 000000000000..d5bd27ccea75 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ContainerAppProvisioningState.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// Provisioning state of the Container App. + public partial struct ContainerAppProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState InProgress = @"InProgress"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState Succeeded = @"Succeeded"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private ContainerAppProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ContainerAppProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ContainerAppProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ContainerAppProvisioningState + /// 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.ContainerAppsApi.Support.ContainerAppProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type ContainerAppProvisioningState (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 ContainerAppProvisioningState && Equals((ContainerAppProvisioningState)obj); + } + + /// Returns hashCode for enum ContainerAppProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ContainerAppProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ContainerAppProvisioningState + /// the value to convert to an instance of . + + public static implicit operator ContainerAppProvisioningState(string value) + { + return new ContainerAppProvisioningState(value); + } + + /// Implicit operator to convert ContainerAppProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum ContainerAppProvisioningState + /// 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.ContainerAppsApi.Support.ContainerAppProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ContainerAppProvisioningState + /// 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.ContainerAppsApi.Support.ContainerAppProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ContainerAppProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/CookieExpirationConvention.Completer.cs b/swaggerci/app/generated/api/Support/CookieExpirationConvention.Completer.cs new file mode 100644 index 000000000000..a927963cf756 --- /dev/null +++ b/swaggerci/app/generated/api/Support/CookieExpirationConvention.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.ContainerAppsApi.Support +{ + + /// The convention used when determining the session cookie's expiration. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConventionTypeConverter))] + public partial struct CookieExpirationConvention : + 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) || "FixedTime".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'FixedTime'", "FixedTime", global::System.Management.Automation.CompletionResultType.ParameterValue, "FixedTime"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "IdentityProviderDerived".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'IdentityProviderDerived'", "IdentityProviderDerived", global::System.Management.Automation.CompletionResultType.ParameterValue, "IdentityProviderDerived"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/CookieExpirationConvention.TypeConverter.cs b/swaggerci/app/generated/api/Support/CookieExpirationConvention.TypeConverter.cs new file mode 100644 index 000000000000..0c9bce906494 --- /dev/null +++ b/swaggerci/app/generated/api/Support/CookieExpirationConvention.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.ContainerAppsApi.Support +{ + + /// The convention used when determining the session cookie's expiration. + public partial class CookieExpirationConventionTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => CookieExpirationConvention.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/app/generated/api/Support/CookieExpirationConvention.cs b/swaggerci/app/generated/api/Support/CookieExpirationConvention.cs new file mode 100644 index 000000000000..ada9f0121e98 --- /dev/null +++ b/swaggerci/app/generated/api/Support/CookieExpirationConvention.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.ContainerAppsApi.Support +{ + + /// The convention used when determining the session cookie's expiration. + public partial struct CookieExpirationConvention : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention FixedTime = @"FixedTime"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention IdentityProviderDerived = @"IdentityProviderDerived"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private CookieExpirationConvention(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to CookieExpirationConvention + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new CookieExpirationConvention(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type CookieExpirationConvention + /// 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.ContainerAppsApi.Support.CookieExpirationConvention e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type CookieExpirationConvention (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 CookieExpirationConvention && Equals((CookieExpirationConvention)obj); + } + + /// Returns hashCode for enum CookieExpirationConvention + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for CookieExpirationConvention + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to CookieExpirationConvention + /// the value to convert to an instance of . + + public static implicit operator CookieExpirationConvention(string value) + { + return new CookieExpirationConvention(value); + } + + /// Implicit operator to convert CookieExpirationConvention to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention e) + { + return e._value; + } + + /// Overriding != operator for enum CookieExpirationConvention + /// 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.ContainerAppsApi.Support.CookieExpirationConvention e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum CookieExpirationConvention + /// 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.ContainerAppsApi.Support.CookieExpirationConvention e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/CreatedByType.Completer.cs b/swaggerci/app/generated/api/Support/CreatedByType.Completer.cs new file mode 100644 index 000000000000..dbcffa24c1ce --- /dev/null +++ b/swaggerci/app/generated/api/Support/CreatedByType.Completer.cs @@ -0,0 +1,47 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// The type of identity that created the resource. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByTypeTypeConverter))] + public partial struct CreatedByType : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "User".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'User'", "User", global::System.Management.Automation.CompletionResultType.ParameterValue, "User"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Application".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Application'", "Application", global::System.Management.Automation.CompletionResultType.ParameterValue, "Application"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ManagedIdentity".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ManagedIdentity'", "ManagedIdentity", global::System.Management.Automation.CompletionResultType.ParameterValue, "ManagedIdentity"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Key".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Key'", "Key", global::System.Management.Automation.CompletionResultType.ParameterValue, "Key"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/CreatedByType.TypeConverter.cs b/swaggerci/app/generated/api/Support/CreatedByType.TypeConverter.cs new file mode 100644 index 000000000000..f0f58ee7e853 --- /dev/null +++ b/swaggerci/app/generated/api/Support/CreatedByType.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// The type of identity that created the resource. + public partial class CreatedByTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => CreatedByType.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/CreatedByType.cs b/swaggerci/app/generated/api/Support/CreatedByType.cs new file mode 100644 index 000000000000..b9008a9e130c --- /dev/null +++ b/swaggerci/app/generated/api/Support/CreatedByType.cs @@ -0,0 +1,102 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// The type of identity that created the resource. + public partial struct CreatedByType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType Application = @"Application"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType Key = @"Key"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType ManagedIdentity = @"ManagedIdentity"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType User = @"User"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to CreatedByType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new CreatedByType(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private CreatedByType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type CreatedByType + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type CreatedByType (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is CreatedByType && Equals((CreatedByType)obj); + } + + /// Returns hashCode for enum CreatedByType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for CreatedByType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to CreatedByType + /// the value to convert to an instance of . + + public static implicit operator CreatedByType(string value) + { + return new CreatedByType(value); + } + + /// Implicit operator to convert CreatedByType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType e) + { + return e._value; + } + + /// Overriding != operator for enum CreatedByType + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum CreatedByType + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CreatedByType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/DnsVerificationTestResult.Completer.cs b/swaggerci/app/generated/api/Support/DnsVerificationTestResult.Completer.cs new file mode 100644 index 000000000000..adbf084f1e88 --- /dev/null +++ b/swaggerci/app/generated/api/Support/DnsVerificationTestResult.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.ContainerAppsApi.Support +{ + + /// DNS verification test result. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResultTypeConverter))] + public partial struct DnsVerificationTestResult : + 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) || "Passed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Passed'", "Passed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Passed"); + } + 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) || "Skipped".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Skipped'", "Skipped", global::System.Management.Automation.CompletionResultType.ParameterValue, "Skipped"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/DnsVerificationTestResult.TypeConverter.cs b/swaggerci/app/generated/api/Support/DnsVerificationTestResult.TypeConverter.cs new file mode 100644 index 000000000000..538cc65cc656 --- /dev/null +++ b/swaggerci/app/generated/api/Support/DnsVerificationTestResult.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.ContainerAppsApi.Support +{ + + /// DNS verification test result. + public partial class DnsVerificationTestResultTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => DnsVerificationTestResult.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/app/generated/api/Support/DnsVerificationTestResult.cs b/swaggerci/app/generated/api/Support/DnsVerificationTestResult.cs new file mode 100644 index 000000000000..7d286a03ab00 --- /dev/null +++ b/swaggerci/app/generated/api/Support/DnsVerificationTestResult.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.ContainerAppsApi.Support +{ + + /// DNS verification test result. + public partial struct DnsVerificationTestResult : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult Passed = @"Passed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult Skipped = @"Skipped"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to DnsVerificationTestResult + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DnsVerificationTestResult(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private DnsVerificationTestResult(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DnsVerificationTestResult + /// 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.ContainerAppsApi.Support.DnsVerificationTestResult e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type DnsVerificationTestResult (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 DnsVerificationTestResult && Equals((DnsVerificationTestResult)obj); + } + + /// Returns hashCode for enum DnsVerificationTestResult + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DnsVerificationTestResult + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DnsVerificationTestResult + /// the value to convert to an instance of . + + public static implicit operator DnsVerificationTestResult(string value) + { + return new DnsVerificationTestResult(value); + } + + /// Implicit operator to convert DnsVerificationTestResult to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult e) + { + return e._value; + } + + /// Overriding != operator for enum DnsVerificationTestResult + /// 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.ContainerAppsApi.Support.DnsVerificationTestResult e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DnsVerificationTestResult + /// 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.ContainerAppsApi.Support.DnsVerificationTestResult e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.DnsVerificationTestResult e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/EnvironmentProvisioningState.Completer.cs b/swaggerci/app/generated/api/Support/EnvironmentProvisioningState.Completer.cs new file mode 100644 index 000000000000..a27096ac75fc --- /dev/null +++ b/swaggerci/app/generated/api/Support/EnvironmentProvisioningState.Completer.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// Provisioning state of the Environment. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningStateTypeConverter))] + public partial struct EnvironmentProvisioningState : + 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) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Waiting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Waiting'", "Waiting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Waiting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "InitializationInProgress".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'InitializationInProgress'", "InitializationInProgress", global::System.Management.Automation.CompletionResultType.ParameterValue, "InitializationInProgress"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "InfrastructureSetupInProgress".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'InfrastructureSetupInProgress'", "InfrastructureSetupInProgress", global::System.Management.Automation.CompletionResultType.ParameterValue, "InfrastructureSetupInProgress"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "InfrastructureSetupComplete".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'InfrastructureSetupComplete'", "InfrastructureSetupComplete", global::System.Management.Automation.CompletionResultType.ParameterValue, "InfrastructureSetupComplete"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ScheduledForDelete".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ScheduledForDelete'", "ScheduledForDelete", global::System.Management.Automation.CompletionResultType.ParameterValue, "ScheduledForDelete"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "UpgradeRequested".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'UpgradeRequested'", "UpgradeRequested", global::System.Management.Automation.CompletionResultType.ParameterValue, "UpgradeRequested"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "UpgradeFailed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'UpgradeFailed'", "UpgradeFailed", global::System.Management.Automation.CompletionResultType.ParameterValue, "UpgradeFailed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/EnvironmentProvisioningState.TypeConverter.cs b/swaggerci/app/generated/api/Support/EnvironmentProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..24f44f80bea2 --- /dev/null +++ b/swaggerci/app/generated/api/Support/EnvironmentProvisioningState.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.ContainerAppsApi.Support +{ + + /// Provisioning state of the Environment. + public partial class EnvironmentProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => EnvironmentProvisioningState.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/app/generated/api/Support/EnvironmentProvisioningState.cs b/swaggerci/app/generated/api/Support/EnvironmentProvisioningState.cs new file mode 100644 index 000000000000..1911060ebecd --- /dev/null +++ b/swaggerci/app/generated/api/Support/EnvironmentProvisioningState.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// Provisioning state of the Environment. + public partial struct EnvironmentProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState InfrastructureSetupComplete = @"InfrastructureSetupComplete"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState InfrastructureSetupInProgress = @"InfrastructureSetupInProgress"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState InitializationInProgress = @"InitializationInProgress"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState ScheduledForDelete = @"ScheduledForDelete"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState UpgradeFailed = @"UpgradeFailed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState UpgradeRequested = @"UpgradeRequested"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState Waiting = @"Waiting"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to EnvironmentProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new EnvironmentProvisioningState(global::System.Convert.ToString(value)); + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private EnvironmentProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type EnvironmentProvisioningState + /// 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.ContainerAppsApi.Support.EnvironmentProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type EnvironmentProvisioningState (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 EnvironmentProvisioningState && Equals((EnvironmentProvisioningState)obj); + } + + /// Returns hashCode for enum EnvironmentProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for EnvironmentProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to EnvironmentProvisioningState + /// the value to convert to an instance of . + + public static implicit operator EnvironmentProvisioningState(string value) + { + return new EnvironmentProvisioningState(value); + } + + /// Implicit operator to convert EnvironmentProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum EnvironmentProvisioningState + /// 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.ContainerAppsApi.Support.EnvironmentProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum EnvironmentProvisioningState + /// 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.ContainerAppsApi.Support.EnvironmentProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.EnvironmentProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ExtendedLocationTypes.Completer.cs b/swaggerci/app/generated/api/Support/ExtendedLocationTypes.Completer.cs new file mode 100644 index 000000000000..27335e7009fe --- /dev/null +++ b/swaggerci/app/generated/api/Support/ExtendedLocationTypes.Completer.cs @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// The type of extendedLocation. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypesTypeConverter))] + public partial struct ExtendedLocationTypes : + 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) || "CustomLocation".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'CustomLocation'", "CustomLocation", global::System.Management.Automation.CompletionResultType.ParameterValue, "CustomLocation"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ExtendedLocationTypes.TypeConverter.cs b/swaggerci/app/generated/api/Support/ExtendedLocationTypes.TypeConverter.cs new file mode 100644 index 000000000000..81ee53915a5c --- /dev/null +++ b/swaggerci/app/generated/api/Support/ExtendedLocationTypes.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.ContainerAppsApi.Support +{ + + /// The type of extendedLocation. + public partial class ExtendedLocationTypesTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => ExtendedLocationTypes.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/app/generated/api/Support/ExtendedLocationTypes.cs b/swaggerci/app/generated/api/Support/ExtendedLocationTypes.cs new file mode 100644 index 000000000000..5e147241ed7f --- /dev/null +++ b/swaggerci/app/generated/api/Support/ExtendedLocationTypes.cs @@ -0,0 +1,96 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// The type of extendedLocation. + public partial struct ExtendedLocationTypes : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes CustomLocation = @"CustomLocation"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to ExtendedLocationTypes + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ExtendedLocationTypes(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ExtendedLocationTypes + /// 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.ContainerAppsApi.Support.ExtendedLocationTypes e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ExtendedLocationTypes (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 ExtendedLocationTypes && Equals((ExtendedLocationTypes)obj); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private ExtendedLocationTypes(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns hashCode for enum ExtendedLocationTypes + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ExtendedLocationTypes + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ExtendedLocationTypes + /// the value to convert to an instance of . + + public static implicit operator ExtendedLocationTypes(string value) + { + return new ExtendedLocationTypes(value); + } + + /// Implicit operator to convert ExtendedLocationTypes to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes e) + { + return e._value; + } + + /// Overriding != operator for enum ExtendedLocationTypes + /// 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.ContainerAppsApi.Support.ExtendedLocationTypes e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ExtendedLocationTypes + /// 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.ContainerAppsApi.Support.ExtendedLocationTypes e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ForwardProxyConvention.Completer.cs b/swaggerci/app/generated/api/Support/ForwardProxyConvention.Completer.cs new file mode 100644 index 000000000000..a0f10a87684a --- /dev/null +++ b/swaggerci/app/generated/api/Support/ForwardProxyConvention.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.ContainerAppsApi.Support +{ + + /// The convention used to determine the url of the request made. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConventionTypeConverter))] + public partial struct ForwardProxyConvention : + 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) || "NoProxy".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NoProxy'", "NoProxy", global::System.Management.Automation.CompletionResultType.ParameterValue, "NoProxy"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard'", "Standard", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Custom".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Custom'", "Custom", global::System.Management.Automation.CompletionResultType.ParameterValue, "Custom"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ForwardProxyConvention.TypeConverter.cs b/swaggerci/app/generated/api/Support/ForwardProxyConvention.TypeConverter.cs new file mode 100644 index 000000000000..6778bdeab9b8 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ForwardProxyConvention.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.ContainerAppsApi.Support +{ + + /// The convention used to determine the url of the request made. + public partial class ForwardProxyConventionTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => ForwardProxyConvention.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/app/generated/api/Support/ForwardProxyConvention.cs b/swaggerci/app/generated/api/Support/ForwardProxyConvention.cs new file mode 100644 index 000000000000..78c965d75b61 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ForwardProxyConvention.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.ContainerAppsApi.Support +{ + + /// The convention used to determine the url of the request made. + public partial struct ForwardProxyConvention : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention Custom = @"Custom"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention NoProxy = @"NoProxy"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention Standard = @"Standard"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to ForwardProxyConvention + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ForwardProxyConvention(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ForwardProxyConvention + /// 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.ContainerAppsApi.Support.ForwardProxyConvention e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ForwardProxyConvention (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 ForwardProxyConvention && Equals((ForwardProxyConvention)obj); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private ForwardProxyConvention(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns hashCode for enum ForwardProxyConvention + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ForwardProxyConvention + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ForwardProxyConvention + /// the value to convert to an instance of . + + public static implicit operator ForwardProxyConvention(string value) + { + return new ForwardProxyConvention(value); + } + + /// Implicit operator to convert ForwardProxyConvention to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention e) + { + return e._value; + } + + /// Overriding != operator for enum ForwardProxyConvention + /// 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.ContainerAppsApi.Support.ForwardProxyConvention e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ForwardProxyConvention + /// 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.ContainerAppsApi.Support.ForwardProxyConvention e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/IngressTransportMethod.Completer.cs b/swaggerci/app/generated/api/Support/IngressTransportMethod.Completer.cs new file mode 100644 index 000000000000..342a86e5bb09 --- /dev/null +++ b/swaggerci/app/generated/api/Support/IngressTransportMethod.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.ContainerAppsApi.Support +{ + + /// Ingress transport protocol + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethodTypeConverter))] + public partial struct IngressTransportMethod : + 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) || "auto".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'auto'", "auto", global::System.Management.Automation.CompletionResultType.ParameterValue, "auto"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "http".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'http'", "http", global::System.Management.Automation.CompletionResultType.ParameterValue, "http"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "http2".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'http2'", "http2", global::System.Management.Automation.CompletionResultType.ParameterValue, "http2"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "tcp".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'tcp'", "tcp", global::System.Management.Automation.CompletionResultType.ParameterValue, "tcp"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/IngressTransportMethod.TypeConverter.cs b/swaggerci/app/generated/api/Support/IngressTransportMethod.TypeConverter.cs new file mode 100644 index 000000000000..4f32f9ee5801 --- /dev/null +++ b/swaggerci/app/generated/api/Support/IngressTransportMethod.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.ContainerAppsApi.Support +{ + + /// Ingress transport protocol + public partial class IngressTransportMethodTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => IngressTransportMethod.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/app/generated/api/Support/IngressTransportMethod.cs b/swaggerci/app/generated/api/Support/IngressTransportMethod.cs new file mode 100644 index 000000000000..d24ef07110b0 --- /dev/null +++ b/swaggerci/app/generated/api/Support/IngressTransportMethod.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.ContainerAppsApi.Support +{ + + /// Ingress transport protocol + public partial struct IngressTransportMethod : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod Auto = @"auto"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod Http = @"http"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod Http2 = @"http2"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod Tcp = @"tcp"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to IngressTransportMethod + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new IngressTransportMethod(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type IngressTransportMethod + /// 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.ContainerAppsApi.Support.IngressTransportMethod e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type IngressTransportMethod (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 IngressTransportMethod && Equals((IngressTransportMethod)obj); + } + + /// Returns hashCode for enum IngressTransportMethod + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private IngressTransportMethod(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for IngressTransportMethod + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to IngressTransportMethod + /// the value to convert to an instance of . + + public static implicit operator IngressTransportMethod(string value) + { + return new IngressTransportMethod(value); + } + + /// Implicit operator to convert IngressTransportMethod to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod e) + { + return e._value; + } + + /// Overriding != operator for enum IngressTransportMethod + /// 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.ContainerAppsApi.Support.IngressTransportMethod e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum IngressTransportMethod + /// 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.ContainerAppsApi.Support.IngressTransportMethod e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/LogLevel.Completer.cs b/swaggerci/app/generated/api/Support/LogLevel.Completer.cs new file mode 100644 index 000000000000..afee85eec526 --- /dev/null +++ b/swaggerci/app/generated/api/Support/LogLevel.Completer.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevelTypeConverter))] + public partial struct LogLevel : + 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) || "info".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'info'", "info", global::System.Management.Automation.CompletionResultType.ParameterValue, "info"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "debug".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'debug'", "debug", global::System.Management.Automation.CompletionResultType.ParameterValue, "debug"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "warn".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'warn'", "warn", global::System.Management.Automation.CompletionResultType.ParameterValue, "warn"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "error".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'error'", "error", global::System.Management.Automation.CompletionResultType.ParameterValue, "error"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/LogLevel.TypeConverter.cs b/swaggerci/app/generated/api/Support/LogLevel.TypeConverter.cs new file mode 100644 index 000000000000..98c035d95455 --- /dev/null +++ b/swaggerci/app/generated/api/Support/LogLevel.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.ContainerAppsApi.Support +{ + + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + public partial class LogLevelTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => LogLevel.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/app/generated/api/Support/LogLevel.cs b/swaggerci/app/generated/api/Support/LogLevel.cs new file mode 100644 index 000000000000..5155cd8181f2 --- /dev/null +++ b/swaggerci/app/generated/api/Support/LogLevel.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.ContainerAppsApi.Support +{ + + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + public partial struct LogLevel : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel Debug = @"debug"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel Error = @"error"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel Info = @"info"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel Warn = @"warn"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to LogLevel + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new LogLevel(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type LogLevel + /// 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.ContainerAppsApi.Support.LogLevel e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type LogLevel (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 LogLevel && Equals((LogLevel)obj); + } + + /// Returns hashCode for enum LogLevel + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private LogLevel(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for LogLevel + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to LogLevel + /// the value to convert to an instance of . + + public static implicit operator LogLevel(string value) + { + return new LogLevel(value); + } + + /// Implicit operator to convert LogLevel to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel e) + { + return e._value; + } + + /// Overriding != operator for enum LogLevel + /// 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.ContainerAppsApi.Support.LogLevel e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum LogLevel + /// 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.ContainerAppsApi.Support.LogLevel e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ManagedCertificateDomainControlValidation.Completer.cs b/swaggerci/app/generated/api/Support/ManagedCertificateDomainControlValidation.Completer.cs new file mode 100644 index 000000000000..c68d4dc1ef63 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ManagedCertificateDomainControlValidation.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.ContainerAppsApi.Support +{ + + /// Selected type of domain control validation for managed certificates. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidationTypeConverter))] + public partial struct ManagedCertificateDomainControlValidation : + 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) || "CNAME".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'CNAME'", "CNAME", global::System.Management.Automation.CompletionResultType.ParameterValue, "CNAME"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "HTTP".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'HTTP'", "HTTP", global::System.Management.Automation.CompletionResultType.ParameterValue, "HTTP"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "TXT".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'TXT'", "TXT", global::System.Management.Automation.CompletionResultType.ParameterValue, "TXT"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ManagedCertificateDomainControlValidation.TypeConverter.cs b/swaggerci/app/generated/api/Support/ManagedCertificateDomainControlValidation.TypeConverter.cs new file mode 100644 index 000000000000..e8c6a52b44c0 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ManagedCertificateDomainControlValidation.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.ContainerAppsApi.Support +{ + + /// Selected type of domain control validation for managed certificates. + public partial class ManagedCertificateDomainControlValidationTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => ManagedCertificateDomainControlValidation.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/app/generated/api/Support/ManagedCertificateDomainControlValidation.cs b/swaggerci/app/generated/api/Support/ManagedCertificateDomainControlValidation.cs new file mode 100644 index 000000000000..879cb8eb56ca --- /dev/null +++ b/swaggerci/app/generated/api/Support/ManagedCertificateDomainControlValidation.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// Selected type of domain control validation for managed certificates. + public partial struct ManagedCertificateDomainControlValidation : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation Cname = @"CNAME"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation Http = @"HTTP"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation Txt = @"TXT"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to ManagedCertificateDomainControlValidation + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ManagedCertificateDomainControlValidation(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ManagedCertificateDomainControlValidation + /// 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.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type ManagedCertificateDomainControlValidation (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 ManagedCertificateDomainControlValidation && Equals((ManagedCertificateDomainControlValidation)obj); + } + + /// Returns hashCode for enum ManagedCertificateDomainControlValidation + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private ManagedCertificateDomainControlValidation(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ManagedCertificateDomainControlValidation + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// + /// Implicit operator to convert string to ManagedCertificateDomainControlValidation + /// + /// the value to convert to an instance of . + + public static implicit operator ManagedCertificateDomainControlValidation(string value) + { + return new ManagedCertificateDomainControlValidation(value); + } + + /// + /// Implicit operator to convert ManagedCertificateDomainControlValidation to string + /// + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation e) + { + return e._value; + } + + /// Overriding != operator for enum ManagedCertificateDomainControlValidation + /// 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.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ManagedCertificateDomainControlValidation + /// 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.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ManagedEnvironmentOutBoundType.Completer.cs b/swaggerci/app/generated/api/Support/ManagedEnvironmentOutBoundType.Completer.cs new file mode 100644 index 000000000000..50df5bd51577 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ManagedEnvironmentOutBoundType.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.ContainerAppsApi.Support +{ + + /// Outbound type for the cluster + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundTypeTypeConverter))] + public partial struct ManagedEnvironmentOutBoundType : + 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) || "LoadBalancer".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'LoadBalancer'", "LoadBalancer", global::System.Management.Automation.CompletionResultType.ParameterValue, "LoadBalancer"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "UserDefinedRouting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'UserDefinedRouting'", "UserDefinedRouting", global::System.Management.Automation.CompletionResultType.ParameterValue, "UserDefinedRouting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ManagedEnvironmentOutBoundType.TypeConverter.cs b/swaggerci/app/generated/api/Support/ManagedEnvironmentOutBoundType.TypeConverter.cs new file mode 100644 index 000000000000..7d3deeb65d6d --- /dev/null +++ b/swaggerci/app/generated/api/Support/ManagedEnvironmentOutBoundType.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.ContainerAppsApi.Support +{ + + /// Outbound type for the cluster + public partial class ManagedEnvironmentOutBoundTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => ManagedEnvironmentOutBoundType.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/app/generated/api/Support/ManagedEnvironmentOutBoundType.cs b/swaggerci/app/generated/api/Support/ManagedEnvironmentOutBoundType.cs new file mode 100644 index 000000000000..ac34ae83d621 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ManagedEnvironmentOutBoundType.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.ContainerAppsApi.Support +{ + + /// Outbound type for the cluster + public partial struct ManagedEnvironmentOutBoundType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType LoadBalancer = @"LoadBalancer"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType UserDefinedRouting = @"UserDefinedRouting"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to ManagedEnvironmentOutBoundType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ManagedEnvironmentOutBoundType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ManagedEnvironmentOutBoundType + /// 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.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type ManagedEnvironmentOutBoundType (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 ManagedEnvironmentOutBoundType && Equals((ManagedEnvironmentOutBoundType)obj); + } + + /// Returns hashCode for enum ManagedEnvironmentOutBoundType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private ManagedEnvironmentOutBoundType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ManagedEnvironmentOutBoundType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ManagedEnvironmentOutBoundType + /// the value to convert to an instance of . + + public static implicit operator ManagedEnvironmentOutBoundType(string value) + { + return new ManagedEnvironmentOutBoundType(value); + } + + /// Implicit operator to convert ManagedEnvironmentOutBoundType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType e) + { + return e._value; + } + + /// Overriding != operator for enum ManagedEnvironmentOutBoundType + /// 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.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ManagedEnvironmentOutBoundType + /// 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.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/ManagedServiceIdentityType.Completer.cs b/swaggerci/app/generated/api/Support/ManagedServiceIdentityType.Completer.cs new file mode 100644 index 000000000000..9438d8e48dfe --- /dev/null +++ b/swaggerci/app/generated/api/Support/ManagedServiceIdentityType.Completer.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// + /// Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityTypeTypeConverter))] + public partial struct ManagedServiceIdentityType : + 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/app/generated/api/Support/ManagedServiceIdentityType.TypeConverter.cs b/swaggerci/app/generated/api/Support/ManagedServiceIdentityType.TypeConverter.cs new file mode 100644 index 000000000000..ac1a73125a50 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ManagedServiceIdentityType.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.ContainerAppsApi.Support +{ + + /// + /// Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + /// + public partial class ManagedServiceIdentityTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => ManagedServiceIdentityType.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/app/generated/api/Support/ManagedServiceIdentityType.cs b/swaggerci/app/generated/api/Support/ManagedServiceIdentityType.cs new file mode 100644 index 000000000000..b32d32c2f898 --- /dev/null +++ b/swaggerci/app/generated/api/Support/ManagedServiceIdentityType.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.ContainerAppsApi.Support +{ + + /// + /// Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + /// + public partial struct ManagedServiceIdentityType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType None = @"None"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType SystemAssigned = @"SystemAssigned"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType SystemAssignedUserAssigned = @"SystemAssigned,UserAssigned"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType UserAssigned = @"UserAssigned"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to ManagedServiceIdentityType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ManagedServiceIdentityType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ManagedServiceIdentityType + /// 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.ContainerAppsApi.Support.ManagedServiceIdentityType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ManagedServiceIdentityType (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 ManagedServiceIdentityType && Equals((ManagedServiceIdentityType)obj); + } + + /// Returns hashCode for enum ManagedServiceIdentityType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private ManagedServiceIdentityType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ManagedServiceIdentityType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ManagedServiceIdentityType + /// the value to convert to an instance of . + + public static implicit operator ManagedServiceIdentityType(string value) + { + return new ManagedServiceIdentityType(value); + } + + /// Implicit operator to convert ManagedServiceIdentityType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType e) + { + return e._value; + } + + /// Overriding != operator for enum ManagedServiceIdentityType + /// 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.ContainerAppsApi.Support.ManagedServiceIdentityType e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ManagedServiceIdentityType + /// 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.ContainerAppsApi.Support.ManagedServiceIdentityType e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/RevisionHealthState.Completer.cs b/swaggerci/app/generated/api/Support/RevisionHealthState.Completer.cs new file mode 100644 index 000000000000..0d94504da2cd --- /dev/null +++ b/swaggerci/app/generated/api/Support/RevisionHealthState.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.ContainerAppsApi.Support +{ + + /// Current health State of the revision + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthStateTypeConverter))] + public partial struct RevisionHealthState : + 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) || "Healthy".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Healthy'", "Healthy", global::System.Management.Automation.CompletionResultType.ParameterValue, "Healthy"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Unhealthy".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Unhealthy'", "Unhealthy", global::System.Management.Automation.CompletionResultType.ParameterValue, "Unhealthy"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "None".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'None'", "None", global::System.Management.Automation.CompletionResultType.ParameterValue, "None"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/RevisionHealthState.TypeConverter.cs b/swaggerci/app/generated/api/Support/RevisionHealthState.TypeConverter.cs new file mode 100644 index 000000000000..d41866e6d700 --- /dev/null +++ b/swaggerci/app/generated/api/Support/RevisionHealthState.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.ContainerAppsApi.Support +{ + + /// Current health State of the revision + public partial class RevisionHealthStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => RevisionHealthState.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/app/generated/api/Support/RevisionHealthState.cs b/swaggerci/app/generated/api/Support/RevisionHealthState.cs new file mode 100644 index 000000000000..57966ca980fe --- /dev/null +++ b/swaggerci/app/generated/api/Support/RevisionHealthState.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.ContainerAppsApi.Support +{ + + /// Current health State of the revision + public partial struct RevisionHealthState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState Healthy = @"Healthy"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState None = @"None"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState Unhealthy = @"Unhealthy"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to RevisionHealthState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new RevisionHealthState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type RevisionHealthState + /// 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.ContainerAppsApi.Support.RevisionHealthState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type RevisionHealthState (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 RevisionHealthState && Equals((RevisionHealthState)obj); + } + + /// Returns hashCode for enum RevisionHealthState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private RevisionHealthState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for RevisionHealthState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to RevisionHealthState + /// the value to convert to an instance of . + + public static implicit operator RevisionHealthState(string value) + { + return new RevisionHealthState(value); + } + + /// Implicit operator to convert RevisionHealthState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState e) + { + return e._value; + } + + /// Overriding != operator for enum RevisionHealthState + /// 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.ContainerAppsApi.Support.RevisionHealthState e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum RevisionHealthState + /// 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.ContainerAppsApi.Support.RevisionHealthState e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionHealthState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/RevisionProvisioningState.Completer.cs b/swaggerci/app/generated/api/Support/RevisionProvisioningState.Completer.cs new file mode 100644 index 000000000000..d055e2fb030f --- /dev/null +++ b/swaggerci/app/generated/api/Support/RevisionProvisioningState.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.ContainerAppsApi.Support +{ + + /// Current provisioning State of the revision + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningStateTypeConverter))] + public partial struct RevisionProvisioningState : + 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) || "Provisioning".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Provisioning'", "Provisioning", global::System.Management.Automation.CompletionResultType.ParameterValue, "Provisioning"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Provisioned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Provisioned'", "Provisioned", global::System.Management.Automation.CompletionResultType.ParameterValue, "Provisioned"); + } + 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) || "Deprovisioning".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deprovisioning'", "Deprovisioning", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deprovisioning"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deprovisioned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deprovisioned'", "Deprovisioned", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deprovisioned"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/RevisionProvisioningState.TypeConverter.cs b/swaggerci/app/generated/api/Support/RevisionProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..983690a1c1de --- /dev/null +++ b/swaggerci/app/generated/api/Support/RevisionProvisioningState.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.ContainerAppsApi.Support +{ + + /// Current provisioning State of the revision + public partial class RevisionProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => RevisionProvisioningState.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/app/generated/api/Support/RevisionProvisioningState.cs b/swaggerci/app/generated/api/Support/RevisionProvisioningState.cs new file mode 100644 index 000000000000..f2f8a9dca1b2 --- /dev/null +++ b/swaggerci/app/generated/api/Support/RevisionProvisioningState.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.ContainerAppsApi.Support +{ + + /// Current provisioning State of the revision + public partial struct RevisionProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState Deprovisioned = @"Deprovisioned"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState Deprovisioning = @"Deprovisioning"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState Provisioned = @"Provisioned"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState Provisioning = @"Provisioning"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to RevisionProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new RevisionProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type RevisionProvisioningState + /// 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.ContainerAppsApi.Support.RevisionProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type RevisionProvisioningState (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 RevisionProvisioningState && Equals((RevisionProvisioningState)obj); + } + + /// Returns hashCode for enum RevisionProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private RevisionProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for RevisionProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to RevisionProvisioningState + /// the value to convert to an instance of . + + public static implicit operator RevisionProvisioningState(string value) + { + return new RevisionProvisioningState(value); + } + + /// Implicit operator to convert RevisionProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum RevisionProvisioningState + /// 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.ContainerAppsApi.Support.RevisionProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum RevisionProvisioningState + /// 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.ContainerAppsApi.Support.RevisionProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.RevisionProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/Scheme.Completer.cs b/swaggerci/app/generated/api/Support/Scheme.Completer.cs new file mode 100644 index 000000000000..646d12dbeaef --- /dev/null +++ b/swaggerci/app/generated/api/Support/Scheme.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.ContainerAppsApi.Support +{ + + /// Scheme to use for connecting to the host. Defaults to HTTP. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SchemeTypeConverter))] + public partial struct Scheme : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "HTTP".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'HTTP'", "HTTP", global::System.Management.Automation.CompletionResultType.ParameterValue, "HTTP"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "HTTPS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'HTTPS'", "HTTPS", global::System.Management.Automation.CompletionResultType.ParameterValue, "HTTPS"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/Scheme.TypeConverter.cs b/swaggerci/app/generated/api/Support/Scheme.TypeConverter.cs new file mode 100644 index 000000000000..eb65060b5f34 --- /dev/null +++ b/swaggerci/app/generated/api/Support/Scheme.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.ContainerAppsApi.Support +{ + + /// Scheme to use for connecting to the host. Defaults to HTTP. + public partial class SchemeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => Scheme.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/app/generated/api/Support/Scheme.cs b/swaggerci/app/generated/api/Support/Scheme.cs new file mode 100644 index 000000000000..5bc29b4dcd7f --- /dev/null +++ b/swaggerci/app/generated/api/Support/Scheme.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.ContainerAppsApi.Support +{ + + /// Scheme to use for connecting to the host. Defaults to HTTP. + public partial struct Scheme : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme Http = @"HTTP"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme Https = @"HTTPS"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to Scheme + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new Scheme(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type Scheme + /// 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.ContainerAppsApi.Support.Scheme e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type Scheme (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 Scheme && Equals((Scheme)obj); + } + + /// Returns hashCode for enum Scheme + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private Scheme(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for Scheme + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to Scheme + /// the value to convert to an instance of . + + public static implicit operator Scheme(string value) + { + return new Scheme(value); + } + + /// Implicit operator to convert Scheme to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme e) + { + return e._value; + } + + /// Overriding != operator for enum Scheme + /// 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.ContainerAppsApi.Support.Scheme e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum Scheme + /// 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.ContainerAppsApi.Support.Scheme e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Scheme e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/SkuName.Completer.cs b/swaggerci/app/generated/api/Support/SkuName.Completer.cs new file mode 100644 index 000000000000..c781ca7e212c --- /dev/null +++ b/swaggerci/app/generated/api/Support/SkuName.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.ContainerAppsApi.Support +{ + + /// Name of the Sku. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuNameTypeConverter))] + public partial struct SkuName : + 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) || "Consumption".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Consumption'", "Consumption", global::System.Management.Automation.CompletionResultType.ParameterValue, "Consumption"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Premium".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Premium'", "Premium", global::System.Management.Automation.CompletionResultType.ParameterValue, "Premium"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/SkuName.TypeConverter.cs b/swaggerci/app/generated/api/Support/SkuName.TypeConverter.cs new file mode 100644 index 000000000000..0092f03cfc45 --- /dev/null +++ b/swaggerci/app/generated/api/Support/SkuName.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.ContainerAppsApi.Support +{ + + /// Name of the Sku. + public partial class SkuNameTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => SkuName.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/app/generated/api/Support/SkuName.cs b/swaggerci/app/generated/api/Support/SkuName.cs new file mode 100644 index 000000000000..6a76efc16344 --- /dev/null +++ b/swaggerci/app/generated/api/Support/SkuName.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.ContainerAppsApi.Support +{ + + /// Name of the Sku. + public partial struct SkuName : + System.IEquatable + { + /// Consumption SKU of Managed Environment. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName Consumption = @"Consumption"; + + /// Premium SKU of Managed Environment. + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName Premium = @"Premium"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to SkuName + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new SkuName(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type SkuName + /// 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.ContainerAppsApi.Support.SkuName e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type SkuName (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 SkuName && Equals((SkuName)obj); + } + + /// Returns hashCode for enum SkuName + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private SkuName(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for SkuName + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to SkuName + /// the value to convert to an instance of . + + public static implicit operator SkuName(string value) + { + return new SkuName(value); + } + + /// Implicit operator to convert SkuName to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName e) + { + return e._value; + } + + /// Overriding != operator for enum SkuName + /// 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.ContainerAppsApi.Support.SkuName e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum SkuName + /// 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.ContainerAppsApi.Support.SkuName e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/SourceControlOperationState.Completer.cs b/swaggerci/app/generated/api/Support/SourceControlOperationState.Completer.cs new file mode 100644 index 000000000000..3b678f774c19 --- /dev/null +++ b/swaggerci/app/generated/api/Support/SourceControlOperationState.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.ContainerAppsApi.Support +{ + + /// Current provisioning State of the operation + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationStateTypeConverter))] + public partial struct SourceControlOperationState : + 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) || "InProgress".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'InProgress'", "InProgress", global::System.Management.Automation.CompletionResultType.ParameterValue, "InProgress"); + } + 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) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/SourceControlOperationState.TypeConverter.cs b/swaggerci/app/generated/api/Support/SourceControlOperationState.TypeConverter.cs new file mode 100644 index 000000000000..a659cc040375 --- /dev/null +++ b/swaggerci/app/generated/api/Support/SourceControlOperationState.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.ContainerAppsApi.Support +{ + + /// Current provisioning State of the operation + public partial class SourceControlOperationStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => SourceControlOperationState.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/app/generated/api/Support/SourceControlOperationState.cs b/swaggerci/app/generated/api/Support/SourceControlOperationState.cs new file mode 100644 index 000000000000..82ed7e0597d4 --- /dev/null +++ b/swaggerci/app/generated/api/Support/SourceControlOperationState.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.ContainerAppsApi.Support +{ + + /// Current provisioning State of the operation + public partial struct SourceControlOperationState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState InProgress = @"InProgress"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState Succeeded = @"Succeeded"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to SourceControlOperationState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new SourceControlOperationState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type SourceControlOperationState + /// 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.ContainerAppsApi.Support.SourceControlOperationState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type SourceControlOperationState (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 SourceControlOperationState && Equals((SourceControlOperationState)obj); + } + + /// Returns hashCode for enum SourceControlOperationState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private SourceControlOperationState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for SourceControlOperationState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to SourceControlOperationState + /// the value to convert to an instance of . + + public static implicit operator SourceControlOperationState(string value) + { + return new SourceControlOperationState(value); + } + + /// Implicit operator to convert SourceControlOperationState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState e) + { + return e._value; + } + + /// Overriding != operator for enum SourceControlOperationState + /// 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.ContainerAppsApi.Support.SourceControlOperationState e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum SourceControlOperationState + /// 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.ContainerAppsApi.Support.SourceControlOperationState e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SourceControlOperationState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/StorageType.Completer.cs b/swaggerci/app/generated/api/Support/StorageType.Completer.cs new file mode 100644 index 000000000000..f6fed4c19934 --- /dev/null +++ b/swaggerci/app/generated/api/Support/StorageType.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.ContainerAppsApi.Support +{ + + /// Storage type for the volume. If not provided, use EmptyDir. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageTypeTypeConverter))] + public partial struct StorageType : + 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) || "AzureFile".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'AzureFile'", "AzureFile", global::System.Management.Automation.CompletionResultType.ParameterValue, "AzureFile"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "EmptyDir".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'EmptyDir'", "EmptyDir", global::System.Management.Automation.CompletionResultType.ParameterValue, "EmptyDir"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/StorageType.TypeConverter.cs b/swaggerci/app/generated/api/Support/StorageType.TypeConverter.cs new file mode 100644 index 000000000000..dd46a2854709 --- /dev/null +++ b/swaggerci/app/generated/api/Support/StorageType.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.ContainerAppsApi.Support +{ + + /// Storage type for the volume. If not provided, use EmptyDir. + public partial class StorageTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => StorageType.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/app/generated/api/Support/StorageType.cs b/swaggerci/app/generated/api/Support/StorageType.cs new file mode 100644 index 000000000000..c58e07229d91 --- /dev/null +++ b/swaggerci/app/generated/api/Support/StorageType.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.ContainerAppsApi.Support +{ + + /// Storage type for the volume. If not provided, use EmptyDir. + public partial struct StorageType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageType AzureFile = @"AzureFile"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageType EmptyDir = @"EmptyDir"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to StorageType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new StorageType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type StorageType + /// 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.ContainerAppsApi.Support.StorageType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type StorageType (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 StorageType && Equals((StorageType)obj); + } + + /// Returns hashCode for enum StorageType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private StorageType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for StorageType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to StorageType + /// the value to convert to an instance of . + + public static implicit operator StorageType(string value) + { + return new StorageType(value); + } + + /// Implicit operator to convert StorageType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageType e) + { + return e._value; + } + + /// Overriding != operator for enum StorageType + /// 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.ContainerAppsApi.Support.StorageType e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum StorageType + /// 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.ContainerAppsApi.Support.StorageType e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.StorageType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/Type.Completer.cs b/swaggerci/app/generated/api/Support/Type.Completer.cs new file mode 100644 index 000000000000..9c0ca73d388c --- /dev/null +++ b/swaggerci/app/generated/api/Support/Type.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.ContainerAppsApi.Support +{ + + /// The type of probe. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.TypeTypeConverter))] + public partial struct Type : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Liveness".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Liveness'", "Liveness", global::System.Management.Automation.CompletionResultType.ParameterValue, "Liveness"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Readiness".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Readiness'", "Readiness", global::System.Management.Automation.CompletionResultType.ParameterValue, "Readiness"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Startup".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Startup'", "Startup", global::System.Management.Automation.CompletionResultType.ParameterValue, "Startup"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/Type.TypeConverter.cs b/swaggerci/app/generated/api/Support/Type.TypeConverter.cs new file mode 100644 index 000000000000..6bbeb3a7992a --- /dev/null +++ b/swaggerci/app/generated/api/Support/Type.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support +{ + + /// The type of probe. + public partial class TypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => Type.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/Type.cs b/swaggerci/app/generated/api/Support/Type.cs new file mode 100644 index 000000000000..ca8f6584d961 --- /dev/null +++ b/swaggerci/app/generated/api/Support/Type.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.ContainerAppsApi.Support +{ + + /// The type of probe. + public partial struct Type : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type Liveness = @"Liveness"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type Readiness = @"Readiness"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type Startup = @"Startup"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to Type + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new Type(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type Type + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type Type (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is Type && Equals((Type)obj); + } + + /// Returns hashCode for enum Type + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for Type + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private Type(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Implicit operator to convert string to Type + /// the value to convert to an instance of . + + public static implicit operator Type(string value) + { + return new Type(value); + } + + /// Implicit operator to convert Type to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type e) + { + return e._value; + } + + /// Overriding != operator for enum Type + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum Type + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.Type e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/UnauthenticatedClientActionV2.Completer.cs b/swaggerci/app/generated/api/Support/UnauthenticatedClientActionV2.Completer.cs new file mode 100644 index 000000000000..eb91c32bc075 --- /dev/null +++ b/swaggerci/app/generated/api/Support/UnauthenticatedClientActionV2.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.ContainerAppsApi.Support +{ + + /// The action to take when an unauthenticated client attempts to access the app. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2TypeConverter))] + public partial struct UnauthenticatedClientActionV2 : + 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) || "RedirectToLoginPage".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'RedirectToLoginPage'", "RedirectToLoginPage", global::System.Management.Automation.CompletionResultType.ParameterValue, "RedirectToLoginPage"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AllowAnonymous".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'AllowAnonymous'", "AllowAnonymous", global::System.Management.Automation.CompletionResultType.ParameterValue, "AllowAnonymous"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Return401".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Return401'", "Return401", global::System.Management.Automation.CompletionResultType.ParameterValue, "Return401"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Return403".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Return403'", "Return403", global::System.Management.Automation.CompletionResultType.ParameterValue, "Return403"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/api/Support/UnauthenticatedClientActionV2.TypeConverter.cs b/swaggerci/app/generated/api/Support/UnauthenticatedClientActionV2.TypeConverter.cs new file mode 100644 index 000000000000..8be87eb00e43 --- /dev/null +++ b/swaggerci/app/generated/api/Support/UnauthenticatedClientActionV2.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.ContainerAppsApi.Support +{ + + /// The action to take when an unauthenticated client attempts to access the app. + public partial class UnauthenticatedClientActionV2TypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the parameter. + /// + /// the to convert from + /// the to convert 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) => UnauthenticatedClientActionV2.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/app/generated/api/Support/UnauthenticatedClientActionV2.cs b/swaggerci/app/generated/api/Support/UnauthenticatedClientActionV2.cs new file mode 100644 index 000000000000..6d68f623d945 --- /dev/null +++ b/swaggerci/app/generated/api/Support/UnauthenticatedClientActionV2.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.ContainerAppsApi.Support +{ + + /// The action to take when an unauthenticated client attempts to access the app. + public partial struct UnauthenticatedClientActionV2 : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2 AllowAnonymous = @"AllowAnonymous"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2 RedirectToLoginPage = @"RedirectToLoginPage"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2 Return401 = @"Return401"; + + public static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2 Return403 = @"Return403"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to UnauthenticatedClientActionV2 + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new UnauthenticatedClientActionV2(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type UnauthenticatedClientActionV2 + /// 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.ContainerAppsApi.Support.UnauthenticatedClientActionV2 e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type UnauthenticatedClientActionV2 (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 UnauthenticatedClientActionV2 && Equals((UnauthenticatedClientActionV2)obj); + } + + /// Returns hashCode for enum UnauthenticatedClientActionV2 + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for UnauthenticatedClientActionV2 + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private UnauthenticatedClientActionV2(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Implicit operator to convert string to UnauthenticatedClientActionV2 + /// the value to convert to an instance of . + + public static implicit operator UnauthenticatedClientActionV2(string value) + { + return new UnauthenticatedClientActionV2(value); + } + + /// Implicit operator to convert UnauthenticatedClientActionV2 to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2 e) + { + return e._value; + } + + /// Overriding != operator for enum UnauthenticatedClientActionV2 + /// 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.ContainerAppsApi.Support.UnauthenticatedClientActionV2 e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2 e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum UnauthenticatedClientActionV2 + /// 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.ContainerAppsApi.Support.UnauthenticatedClientActionV2 e1, Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2 e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiAvailableWorkloadProfile_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiAvailableWorkloadProfile_Get.cs new file mode 100644 index 000000000000..9d19194220a6 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiAvailableWorkloadProfile_Get.cs @@ -0,0 +1,411 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get all available workload profiles for a location. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.App/locations/{location}/availableManagedEnvironmentsWorkloadProfileTypes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiAvailableWorkloadProfile_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get all available workload profiles for a location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiAvailableWorkloadProfile_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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 name of Azure region. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Azure region.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Azure region.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiAvailableWorkloadProfile_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AvailableWorkloadProfilesGet(SubscriptionId, Location, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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 }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AvailableWorkloadProfilesGet_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiAvailableWorkloadProfile_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiAvailableWorkloadProfile_GetViaIdentity.cs new file mode 100644 index 000000000000..14cb049c734a --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiAvailableWorkloadProfile_GetViaIdentity.cs @@ -0,0 +1,400 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get all available workload profiles for a location. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.App/locations/{location}/availableManagedEnvironmentsWorkloadProfileTypes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiAvailableWorkloadProfile_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfile))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get all available workload profiles for a location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiAvailableWorkloadProfile_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiAvailableWorkloadProfile_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.AvailableWorkloadProfilesGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.Location) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.Location"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.AvailableWorkloadProfilesGet(InputObject.SubscriptionId ?? null, InputObject.Location ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableWorkloadProfilesCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AvailableWorkloadProfilesGet_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiBillingMeter_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiBillingMeter_Get.cs new file mode 100644 index 000000000000..74bfe76bf540 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiBillingMeter_Get.cs @@ -0,0 +1,390 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get all billingMeters for a location. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.App/locations/{location}/billingMeters" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiBillingMeter_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get all billingMeters for a location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiBillingMeter_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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 name of Azure region. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Azure region.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Azure region.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiBillingMeter_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BillingMetersGet(SubscriptionId, Location, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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 }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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/app/generated/cmdlets/GetAzContainerAppsApiBillingMeter_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiBillingMeter_GetViaIdentity.cs new file mode 100644 index 000000000000..a945d0038a4d --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiBillingMeter_GetViaIdentity.cs @@ -0,0 +1,379 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get all billingMeters for a location. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.App/locations/{location}/billingMeters" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiBillingMeter_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeter))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get all billingMeters for a location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiBillingMeter_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiBillingMeter_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BillingMetersGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.Location) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.Location"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BillingMetersGet(InputObject.SubscriptionId ?? null, InputObject.Location ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBillingMeterCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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/app/generated/cmdlets/GetAzContainerAppsApiCertificate_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiCertificate_Get.cs new file mode 100644 index 000000000000..0936f83a9b7c --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiCertificate_Get.cs @@ -0,0 +1,418 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the specified Certificate. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiCertificate_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the specified Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiCertificate_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the Certificate. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Certificate.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Certificate.", + SerializedName = @"certificateName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("CertificateName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiCertificate_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CertificatesGet(SubscriptionId, ResourceGroupName, EnvironmentName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, 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, EnvironmentName=EnvironmentName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiCertificate_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiCertificate_GetViaIdentity.cs new file mode 100644 index 000000000000..04eccea45f7a --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiCertificate_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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the specified Certificate. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiCertificate_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the specified Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiCertificate_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiCertificate_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),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.EnvironmentName ?? null, InputObject.CertificateName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiCertificate_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiCertificate_List.cs new file mode 100644 index 000000000000..de17740dd355 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiCertificate_List.cs @@ -0,0 +1,425 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the Certificates in a given managed environment. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/certificates" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiCertificate_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the Certificates in a given managed environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiCertificate_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiCertificate_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CertificatesList(SubscriptionId, ResourceGroupName, EnvironmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentDaprComponentSecret_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentDaprComponentSecret_List.cs new file mode 100644 index 000000000000..9ccfbd1d3e23 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentDaprComponentSecret_List.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// List secrets for a dapr component + /// + /// [OpenAPI] ListSecrets=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/daprComponents/{componentName}/listSecrets" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiConnectedEnvironmentDaprComponentSecret_List", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"List secrets for a dapr component")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiConnectedEnvironmentDaprComponentSecret_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _componentName; + + /// Name of the Dapr Component. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Dapr Component.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Dapr Component.", + SerializedName = @"componentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ComponentName { get => this._componentName; set => this._componentName = value; } + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the connected environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the connected environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the connected environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzContainerAppsApiConnectedEnvironmentDaprComponentSecret_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsDaprComponentsListSecrets' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsDaprComponentsListSecrets(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, ComponentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName,ComponentName=ComponentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName, ComponentName=ComponentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName, ComponentName=ComponentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_Get.cs new file mode 100644 index 000000000000..4be6feaf8e9c --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the properties of an connectedEnvironment. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiConnectedEnvironment_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the properties of an connectedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiConnectedEnvironment_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the connectedEnvironment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the connectedEnvironment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the connectedEnvironment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ConnectedEnvironmentName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiConnectedEnvironment_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsGet(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_GetViaIdentity.cs new file mode 100644 index 000000000000..c26d494490f2 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_GetViaIdentity.cs @@ -0,0 +1,382 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the properties of an connectedEnvironment. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiConnectedEnvironment_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the properties of an connectedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiConnectedEnvironment_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiConnectedEnvironment_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConnectedEnvironmentsGetViaIdentity(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.ConnectedEnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConnectedEnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConnectedEnvironmentsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ConnectedEnvironmentName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_List.cs new file mode 100644 index 000000000000..b71341560924 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_List.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get all connectedEnvironments for a subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.App/connectedEnvironments" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiConnectedEnvironment_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get all connectedEnvironments for a subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiConnectedEnvironment_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiConnectedEnvironment_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsListBySubscription(SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_List1.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_List1.cs new file mode 100644 index 000000000000..5170ff4d0859 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironment_List1.cs @@ -0,0 +1,411 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get all connectedEnvironments in a resource group. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiConnectedEnvironment_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get all connectedEnvironments in a resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiConnectedEnvironment_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiConnectedEnvironment_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsListByResourceGroup(SubscriptionId, ResourceGroupName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsListByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsCertificate_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsCertificate_Get.cs new file mode 100644 index 000000000000..39c43f8fbca5 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsCertificate_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the specified Certificate. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiConnectedEnvironmentsCertificate_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the specified Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiConnectedEnvironmentsCertificate_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _certificateName; + + /// Name of the Certificate. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Certificate.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Certificate.", + SerializedName = @"certificateName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string CertificateName { get => this._certificateName; set => this._certificateName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the Connected Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Connected Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Connected Environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiConnectedEnvironmentsCertificate_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsCertificatesGet(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, CertificateName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName,CertificateName=CertificateName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName, CertificateName=CertificateName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName, CertificateName=CertificateName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsCertificate_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsCertificate_GetViaIdentity.cs new file mode 100644 index 000000000000..d31341864d99 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsCertificate_GetViaIdentity.cs @@ -0,0 +1,387 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the specified Certificate. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiConnectedEnvironmentsCertificate_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the specified Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiConnectedEnvironmentsCertificate_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzContainerAppsApiConnectedEnvironmentsCertificate_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConnectedEnvironmentsCertificatesGetViaIdentity(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.ConnectedEnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConnectedEnvironmentName"),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.ConnectedEnvironmentsCertificatesGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ConnectedEnvironmentName ?? null, InputObject.CertificateName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsCertificate_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsCertificate_List.cs new file mode 100644 index 000000000000..a1ec72dce75f --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsCertificate_List.cs @@ -0,0 +1,425 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the Certificates in a given connected environment. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/certificates" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiConnectedEnvironmentsCertificate_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the Certificates in a given connected environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiConnectedEnvironmentsCertificate_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the Connected Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Connected Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Connected Environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiConnectedEnvironmentsCertificate_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsCertificatesList(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificateCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsCertificatesList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_Get.cs new file mode 100644 index 000000000000..0b0406418c44 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a dapr component. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/daprComponents/{componentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiConnectedEnvironmentsDaprComponent_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a dapr component.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _componentName; + + /// Name of the Dapr Component. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Dapr Component.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Dapr Component.", + SerializedName = @"componentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ComponentName { get => this._componentName; set => this._componentName = value; } + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the connected environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the connected environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the connected environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsDaprComponentsGet(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, ComponentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName,ComponentName=ComponentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName, ComponentName=ComponentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName, ComponentName=ComponentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_GetViaIdentity.cs new file mode 100644 index 000000000000..bfacbb8374f6 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_GetViaIdentity.cs @@ -0,0 +1,387 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a dapr component. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/daprComponents/{componentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiConnectedEnvironmentsDaprComponent_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a dapr component.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConnectedEnvironmentsDaprComponentsGetViaIdentity(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.ConnectedEnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConnectedEnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ComponentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ComponentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConnectedEnvironmentsDaprComponentsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ConnectedEnvironmentName ?? null, InputObject.ComponentName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_List.cs new file mode 100644 index 000000000000..c321b9fe6c85 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_List.cs @@ -0,0 +1,425 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the Dapr Components for a connected environment. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/daprComponents" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiConnectedEnvironmentsDaprComponent_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the Dapr Components for a connected environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the connected environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the connected environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the connected environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiConnectedEnvironmentsDaprComponent_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsDaprComponentsList(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsDaprComponentsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsStorage_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsStorage_Get.cs new file mode 100644 index 000000000000..359f6d661963 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsStorage_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get storage for a connectedEnvironment. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiConnectedEnvironmentsStorage_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get storage for a connectedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiConnectedEnvironmentsStorage_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _storageName; + + /// Name of the storage. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the storage.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the storage.", + SerializedName = @"storageName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string StorageName { get => this._storageName; set => this._storageName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiConnectedEnvironmentsStorage_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsStoragesGet(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, StorageName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName,StorageName=StorageName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName, StorageName=StorageName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName, StorageName=StorageName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsStorage_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsStorage_GetViaIdentity.cs new file mode 100644 index 000000000000..435a6ac8fabb --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsStorage_GetViaIdentity.cs @@ -0,0 +1,387 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get storage for a connectedEnvironment. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiConnectedEnvironmentsStorage_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get storage for a connectedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiConnectedEnvironmentsStorage_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzContainerAppsApiConnectedEnvironmentsStorage_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConnectedEnvironmentsStoragesGetViaIdentity(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.ConnectedEnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConnectedEnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.StorageName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.StorageName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConnectedEnvironmentsStoragesGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ConnectedEnvironmentName ?? null, InputObject.StorageName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsStorage_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsStorage_List.cs new file mode 100644 index 000000000000..034e40e9e4ae --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiConnectedEnvironmentsStorage_List.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get all storages for a connectedEnvironment. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/storages" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiConnectedEnvironmentsStorage_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get all storages for a connectedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiConnectedEnvironmentsStorage_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiConnectedEnvironmentsStorage_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsStoragesList(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStoragesCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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/app/generated/cmdlets/GetAzContainerAppsApiContainerAppAuthConfig_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppAuthConfig_List.cs new file mode 100644 index 000000000000..81120c3831fa --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppAuthConfig_List.cs @@ -0,0 +1,425 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the Container App AuthConfigs in a given resource group. + /// + /// [OpenAPI] ListByContainerApp=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/authConfigs" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppAuthConfig_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the Container App AuthConfigs in a given resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppAuthConfig_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppAuthConfig_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsAuthConfigsListByContainerApp(SubscriptionId, ResourceGroupName, ContainerAppName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfigCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsAuthConfigsListByContainerApp_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppAuthToken_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppAuthToken_Get.cs new file mode 100644 index 000000000000..eafa27ea8b3b --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppAuthToken_Get.cs @@ -0,0 +1,447 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get auth token for a container app + /// + /// [OpenAPI] GetAuthToken=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/getAuthtoken" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppAuthToken_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get auth token for a container app")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppAuthToken_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNotFound will be called before the regular onNotFound has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNotFound method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNotFound(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppAuthToken_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsGetAuthToken' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsGetAuthToken(SubscriptionId, ResourceGroupName, ContainerAppName, onOk, onNotFound, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 404 (NotFound). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNotFound(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNotFound(responseMessage, ref _returnNow); + // if overrideOnNotFound has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNotFound - response for 404 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppAuthToken_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppAuthToken_GetViaIdentity.cs new file mode 100644 index 000000000000..f6939ddce0dd --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppAuthToken_GetViaIdentity.cs @@ -0,0 +1,426 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get auth token for a container app + /// + /// [OpenAPI] GetAuthToken=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/getAuthtoken" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppAuthToken_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get auth token for a container app")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppAuthToken_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNotFound will be called before the regular onNotFound has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNotFound method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNotFound(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppAuthToken_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsGetAuthToken' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsGetAuthTokenViaIdentity(InputObject.Id, onOk, onNotFound, 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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsGetAuthToken(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, onOk, onNotFound, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 404 (NotFound). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNotFound(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNotFound(responseMessage, ref _returnNow); + // if overrideOnNotFound has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNotFound - response for 404 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppAuthToken + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppCustomHostNameAnalysis_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppCustomHostNameAnalysis_List.cs new file mode 100644 index 000000000000..0b4896b34977 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppCustomHostNameAnalysis_List.cs @@ -0,0 +1,420 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Analyzes a custom hostname for a Container App + /// + /// [OpenAPI] ListCustomHostNameAnalysis=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/listCustomHostNameAnalysis" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppCustomHostNameAnalysis_List", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Analyzes a custom hostname for a Container App")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppCustomHostNameAnalysis_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = value; } + + /// Backing field for property. + private string _customHostname; + + /// Custom hostname. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Custom hostname.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Custom hostname.", + SerializedName = @"customHostname", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Query)] + public string CustomHostname { get => this._customHostname; set => this._customHostname = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppCustomHostNameAnalysis_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsListCustomHostNameAnalysis' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsListCustomHostNameAnalysis(SubscriptionId, ResourceGroupName, ContainerAppName, this.InvocationInformation.BoundParameters.ContainsKey("CustomHostname") ? CustomHostname : null, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,CustomHostname=this.InvocationInformation.BoundParameters.ContainsKey("CustomHostname") ? CustomHostname : null}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, CustomHostname=this.InvocationInformation.BoundParameters.ContainsKey("CustomHostname") ? CustomHostname : 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, ContainerAppName=ContainerAppName, CustomHostname=this.InvocationInformation.BoundParameters.ContainsKey("CustomHostname") ? CustomHostname : null }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomHostnameAnalysisResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticDetector_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticDetector_Get.cs new file mode 100644 index 000000000000..087d8b08578d --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticDetector_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a diagnostics result of a Container App. + /// + /// [OpenAPI] GetDetector=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/detectors/{detectorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppDiagnosticDetector_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a diagnostics result of a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppDiagnosticDetector_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _detectorName; + + /// Name of the Container App Detector. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App Detector.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App Detector.", + SerializedName = @"detectorName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string DetectorName { get => this._detectorName; set => this._detectorName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppDiagnosticDetector_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsDiagnosticsGetDetector(SubscriptionId, ResourceGroupName, ContainerAppName, DetectorName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,DetectorName=DetectorName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, DetectorName=DetectorName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName, DetectorName=DetectorName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticDetector_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticDetector_GetViaIdentity.cs new file mode 100644 index 000000000000..22abd7a1064a --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticDetector_GetViaIdentity.cs @@ -0,0 +1,387 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a diagnostics result of a Container App. + /// + /// [OpenAPI] GetDetector=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/detectors/{detectorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppDiagnosticDetector_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a diagnostics result of a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppDiagnosticDetector_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzContainerAppsApiContainerAppDiagnosticDetector_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsDiagnosticsGetDetectorViaIdentity(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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DetectorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DetectorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsDiagnosticsGetDetector(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, InputObject.DetectorName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticDetector_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticDetector_List.cs new file mode 100644 index 000000000000..9a7fec7bb34a --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticDetector_List.cs @@ -0,0 +1,425 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the list of diagnostics for a given Container App. + /// + /// [OpenAPI] ListDetectors=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/detectors" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppDiagnosticDetector_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the list of diagnostics for a given Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppDiagnosticDetector_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App for which detector info is needed. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App for which detector info is needed.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App for which detector info is needed.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppDiagnosticDetector_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsDiagnosticsListDetectors(SubscriptionId, ResourceGroupName, ContainerAppName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsDiagnosticsListDetectors_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRevision_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRevision_Get.cs new file mode 100644 index 000000000000..fa1fa67c9297 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRevision_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a revision of a Container App. + /// + /// [OpenAPI] GetRevision=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/detectorProperties/revisionsApi/revisions/{revisionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppDiagnosticRevision_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a revision of a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppDiagnosticRevision_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _revisionName; + + /// Name of the Container App Revision. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App Revision.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App Revision.", + SerializedName = @"revisionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string RevisionName { get => this._revisionName; set => this._revisionName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppDiagnosticRevision_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsDiagnosticsGetRevision(SubscriptionId, ResourceGroupName, ContainerAppName, RevisionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,RevisionName=RevisionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, RevisionName=RevisionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName, RevisionName=RevisionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRevision_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRevision_GetViaIdentity.cs new file mode 100644 index 000000000000..1bc955d529f2 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRevision_GetViaIdentity.cs @@ -0,0 +1,387 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a revision of a Container App. + /// + /// [OpenAPI] GetRevision=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/detectorProperties/revisionsApi/revisions/{revisionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppDiagnosticRevision_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a revision of a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppDiagnosticRevision_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzContainerAppsApiContainerAppDiagnosticRevision_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsDiagnosticsGetRevisionViaIdentity(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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.RevisionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.RevisionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsDiagnosticsGetRevision(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, InputObject.RevisionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRevision_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRevision_List.cs new file mode 100644 index 000000000000..8c9851114299 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRevision_List.cs @@ -0,0 +1,439 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the Revisions for a given Container App. + /// + /// [OpenAPI] ListRevisions=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/detectorProperties/revisionsApi/revisions/" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppDiagnosticRevision_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the Revisions for a given Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppDiagnosticRevision_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App for which Revisions are needed. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App for which Revisions are needed.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App for which Revisions are needed.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// The filter to apply on the operation. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The filter to apply on the operation.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The filter to apply on the operation.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Query)] + public string Filter { get => this._filter; set => this._filter = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppDiagnosticRevision_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsDiagnosticsListRevisions(SubscriptionId, ResourceGroupName, ContainerAppName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : 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, ContainerAppName=ContainerAppName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsDiagnosticsListRevisions_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRoot_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRoot_Get.cs new file mode 100644 index 000000000000..91c38b1a6d69 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRoot_Get.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the properties of a Container App. + /// + /// [OpenAPI] GetRoot=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/detectorProperties/rootApi/" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppDiagnosticRoot_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the properties of a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppDiagnosticRoot_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNotFound will be called before the regular onNotFound has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNotFound method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNotFound(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppDiagnosticRoot_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsDiagnosticsGetRoot(SubscriptionId, ResourceGroupName, ContainerAppName, onOk, onNotFound, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 404 (NotFound). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNotFound(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNotFound(responseMessage, ref _returnNow); + // if overrideOnNotFound has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNotFound - response for 404 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRoot_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRoot_GetViaIdentity.cs new file mode 100644 index 000000000000..b5076faf5f89 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppDiagnosticRoot_GetViaIdentity.cs @@ -0,0 +1,424 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the properties of a Container App. + /// + /// [OpenAPI] GetRoot=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/detectorProperties/rootApi/" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppDiagnosticRoot_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the properties of a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppDiagnosticRoot_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNotFound will be called before the regular onNotFound has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNotFound method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNotFound(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzContainerAppsApiContainerAppDiagnosticRoot_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsDiagnosticsGetRootViaIdentity(InputObject.Id, onOk, onNotFound, 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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsDiagnosticsGetRoot(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, onOk, onNotFound, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 404 (NotFound). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNotFound(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNotFound(responseMessage, ref _returnNow); + // if overrideOnNotFound has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNotFound - response for 404 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevisionReplica_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevisionReplica_Get.cs new file mode 100644 index 000000000000..ecc32df8d3ce --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevisionReplica_Get.cs @@ -0,0 +1,431 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a replica for a Container App Revision. + /// + /// [OpenAPI] GetReplica=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}/replicas/{replicaName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppRevisionReplica_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a replica for a Container App Revision.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppRevisionReplica_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _replicaName; + + /// Name of the Container App Revision Replica. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App Revision Replica.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App Revision Replica.", + SerializedName = @"replicaName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ReplicaName { get => this._replicaName; set => this._replicaName = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _revisionName; + + /// Name of the Container App Revision. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App Revision.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App Revision.", + SerializedName = @"revisionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string RevisionName { get => this._revisionName; set => this._revisionName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppRevisionReplica_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsRevisionReplicasGetReplica(SubscriptionId, ResourceGroupName, ContainerAppName, RevisionName, ReplicaName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,RevisionName=RevisionName,ReplicaName=ReplicaName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, RevisionName=RevisionName, ReplicaName=ReplicaName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName, RevisionName=RevisionName, ReplicaName=ReplicaName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevisionReplica_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevisionReplica_GetViaIdentity.cs new file mode 100644 index 000000000000..7f635367d5d8 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevisionReplica_GetViaIdentity.cs @@ -0,0 +1,391 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a replica for a Container App Revision. + /// + /// [OpenAPI] GetReplica=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}/replicas/{replicaName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppRevisionReplica_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a replica for a Container App Revision.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppRevisionReplica_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzContainerAppsApiContainerAppRevisionReplica_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsRevisionReplicasGetReplicaViaIdentity(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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.RevisionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.RevisionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ReplicaName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ReplicaName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsRevisionReplicasGetReplica(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, InputObject.RevisionName ?? null, InputObject.ReplicaName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevisionReplica_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevisionReplica_List.cs new file mode 100644 index 000000000000..d865c8100d9d --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevisionReplica_List.cs @@ -0,0 +1,418 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// List replicas for a Container App Revision. + /// + /// [OpenAPI] ListReplicas=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}/replicas" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppRevisionReplica_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplica))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"List replicas for a Container App Revision.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppRevisionReplica_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _revisionName; + + /// Name of the Container App Revision. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App Revision.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App Revision.", + SerializedName = @"revisionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string RevisionName { get => this._revisionName; set => this._revisionName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppRevisionReplica_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsRevisionReplicasListReplicas(SubscriptionId, ResourceGroupName, ContainerAppName, RevisionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,RevisionName=RevisionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, RevisionName=RevisionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName, RevisionName=RevisionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IReplicaCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevision_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevision_Get.cs new file mode 100644 index 000000000000..6c79f7a0a26f --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevision_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a revision of a Container App. + /// + /// [OpenAPI] GetRevision=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppRevision_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a revision of a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppRevision_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _revisionName; + + /// Name of the Container App Revision. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App Revision.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App Revision.", + SerializedName = @"revisionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string RevisionName { get => this._revisionName; set => this._revisionName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppRevision_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsRevisionsGetRevision(SubscriptionId, ResourceGroupName, ContainerAppName, RevisionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,RevisionName=RevisionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, RevisionName=RevisionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName, RevisionName=RevisionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevision_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevision_GetViaIdentity.cs new file mode 100644 index 000000000000..41012d7ef76e --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevision_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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a revision of a Container App. + /// + /// [OpenAPI] GetRevision=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppRevision_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a revision of a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppRevision_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppRevision_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsRevisionsGetRevisionViaIdentity(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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.RevisionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.RevisionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsRevisionsGetRevision(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, InputObject.RevisionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevision_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevision_List.cs new file mode 100644 index 000000000000..1ac7733f2d56 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppRevision_List.cs @@ -0,0 +1,439 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the Revisions for a given Container App. + /// + /// [OpenAPI] ListRevisions=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppRevision_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevision))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the Revisions for a given Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppRevision_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App for which Revisions are needed. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App for which Revisions are needed.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App for which Revisions are needed.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// The filter to apply on the operation. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The filter to apply on the operation.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The filter to apply on the operation.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Query)] + public string Filter { get => this._filter; set => this._filter = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppRevision_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsRevisionsListRevisions(SubscriptionId, ResourceGroupName, ContainerAppName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : 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, ContainerAppName=ContainerAppName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRevisionCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsRevisionsListRevisions_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppSecret_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppSecret_List.cs new file mode 100644 index 000000000000..3eec1fd3cd70 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppSecret_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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// List secrets for a container app + /// + /// [OpenAPI] ListSecrets=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/listSecrets" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppSecret_List", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppSecret))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"List secrets for a container app")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppSecret_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppSecret_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsListSecrets' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsListSecrets(SubscriptionId, ResourceGroupName, ContainerAppName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecretsCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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/app/generated/cmdlets/GetAzContainerAppsApiContainerAppSourceControl_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppSourceControl_List.cs new file mode 100644 index 000000000000..d1e0a37cb7da --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppSourceControl_List.cs @@ -0,0 +1,425 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the Container App SourceControls in a given resource group. + /// + /// [OpenAPI] ListByContainerApp=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/sourcecontrols" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppSourceControl_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the Container App SourceControls in a given resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppSourceControl_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppSourceControl_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsSourceControlsListByContainerApp(SubscriptionId, ResourceGroupName, ContainerAppName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControlCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsSourceControlsListByContainerApp_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_Get.cs new file mode 100644 index 000000000000..33f91bc8a61e --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_Get.cs @@ -0,0 +1,445 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the properties of a Container App. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerApp_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the properties of a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerApp_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ContainerAppName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNotFound will be called before the regular onNotFound has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNotFound method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNotFound(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerApp_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsGet(SubscriptionId, ResourceGroupName, Name, onOk, onNotFound, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 404 (NotFound). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNotFound(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNotFound(responseMessage, ref _returnNow); + // if overrideOnNotFound has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNotFound - response for 404 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_GetViaIdentity.cs new file mode 100644 index 000000000000..e5cebdfd0ae6 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_GetViaIdentity.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the properties of a Container App. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerApp_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the properties of a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerApp_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNotFound will be called before the regular onNotFound has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNotFound method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNotFound(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerApp_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsGetViaIdentity(InputObject.Id, onOk, onNotFound, 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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, onOk, onNotFound, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 404 (NotFound). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNotFound(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNotFound(responseMessage, ref _returnNow); + // if overrideOnNotFound has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNotFound - response for 404 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_List.cs new file mode 100644 index 000000000000..fb2550cc61a2 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_List.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the Container Apps in a given subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.App/containerApps" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerApp_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the Container Apps in a given subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerApp_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerApp_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsListBySubscription(SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_List1.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_List1.cs new file mode 100644 index 000000000000..d1c722ee1be2 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerApp_List1.cs @@ -0,0 +1,411 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the Container Apps in a given resource group. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerApp_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the Container Apps in a given resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerApp_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerApp_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsListByResourceGroup(SubscriptionId, ResourceGroupName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerAppCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsListByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsAuthConfig_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsAuthConfig_Get.cs new file mode 100644 index 000000000000..6df11b34ad6d --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsAuthConfig_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a AuthConfig of a Container App. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/authConfigs/{authConfigName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppsAuthConfig_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a AuthConfig of a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppsAuthConfig_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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 _authConfigName; + + /// Name of the Container App AuthConfig. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App AuthConfig.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App AuthConfig.", + SerializedName = @"authConfigName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string AuthConfigName { get => this._authConfigName; set => this._authConfigName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppsAuthConfig_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsAuthConfigsGet(SubscriptionId, ResourceGroupName, ContainerAppName, AuthConfigName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,AuthConfigName=AuthConfigName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, AuthConfigName=AuthConfigName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName, AuthConfigName=AuthConfigName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsAuthConfig_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsAuthConfig_GetViaIdentity.cs new file mode 100644 index 000000000000..7d3dedf2c947 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsAuthConfig_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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a AuthConfig of a Container App. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/authConfigs/{authConfigName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppsAuthConfig_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a AuthConfig of a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppsAuthConfig_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppsAuthConfig_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsAuthConfigsGetViaIdentity(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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AuthConfigName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AuthConfigName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsAuthConfigsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, InputObject.AuthConfigName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsSourceControl_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsSourceControl_Get.cs new file mode 100644 index 000000000000..ba742ce06bdc --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsSourceControl_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a SourceControl of a Container App. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/sourcecontrols/{sourceControlName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppsSourceControl_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a SourceControl of a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppsSourceControl_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _sourceControlName; + + /// Name of the Container App SourceControl. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App SourceControl.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App SourceControl.", + SerializedName = @"sourceControlName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SourceControlName { get => this._sourceControlName; set => this._sourceControlName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiContainerAppsSourceControl_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsSourceControlsGet(SubscriptionId, ResourceGroupName, ContainerAppName, SourceControlName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,SourceControlName=SourceControlName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, SourceControlName=SourceControlName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName, SourceControlName=SourceControlName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsSourceControl_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsSourceControl_GetViaIdentity.cs new file mode 100644 index 000000000000..83447eeb405c --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiContainerAppsSourceControl_GetViaIdentity.cs @@ -0,0 +1,387 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a SourceControl of a Container App. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/sourcecontrols/{sourceControlName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiContainerAppsSourceControl_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a SourceControl of a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiContainerAppsSourceControl_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzContainerAppsApiContainerAppsSourceControl_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsSourceControlsGetViaIdentity(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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SourceControlName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SourceControlName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsSourceControlsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, InputObject.SourceControlName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponentSecret_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponentSecret_List.cs new file mode 100644 index 000000000000..361c4938a62d --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponentSecret_List.cs @@ -0,0 +1,421 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// List secrets for a dapr component + /// + /// [OpenAPI] ListSecrets=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/daprComponents/{componentName}/listSecrets" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiDaprComponentSecret_List", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"List secrets for a dapr component")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiDaprComponentSecret_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _componentName; + + /// Name of the Dapr Component. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Dapr Component.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Dapr Component.", + SerializedName = @"componentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ComponentName { get => this._componentName; set => this._componentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiDaprComponentSecret_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DaprComponentsListSecrets' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DaprComponentsListSecrets(SubscriptionId, ResourceGroupName, EnvironmentName, ComponentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,ComponentName=ComponentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, ComponentName=ComponentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, ComponentName=ComponentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprSecretsCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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/app/generated/cmdlets/GetAzContainerAppsApiDaprComponent_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponent_Get.cs new file mode 100644 index 000000000000..592dd089df3e --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponent_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a dapr component. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/daprComponents/{componentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiDaprComponent_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a dapr component.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiDaprComponent_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _componentName; + + /// Name of the Dapr Component. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Dapr Component.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Dapr Component.", + SerializedName = @"componentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ComponentName { get => this._componentName; set => this._componentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiDaprComponent_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DaprComponentsGet(SubscriptionId, ResourceGroupName, EnvironmentName, ComponentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,ComponentName=ComponentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, ComponentName=ComponentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, ComponentName=ComponentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponent_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponent_GetViaIdentity.cs new file mode 100644 index 000000000000..78dd484e20dc --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponent_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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get a dapr component. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/daprComponents/{componentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiDaprComponent_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get a dapr component.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiDaprComponent_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiDaprComponent_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DaprComponentsGetViaIdentity(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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ComponentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ComponentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DaprComponentsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, InputObject.ComponentName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponent_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponent_List.cs new file mode 100644 index 000000000000..508b412ab366 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiDaprComponent_List.cs @@ -0,0 +1,425 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the Dapr Components for a managed environment. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/daprComponents" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiDaprComponent_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the Dapr Components for a managed environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiDaprComponent_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiDaprComponent_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DaprComponentsList(SubscriptionId, ResourceGroupName, EnvironmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponentsCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DaprComponentsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedCertificate_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedCertificate_Get.cs new file mode 100644 index 000000000000..1a6c0b2fb54d --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedCertificate_Get.cs @@ -0,0 +1,418 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the specified Managed Certificate. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/managedCertificates/{managedCertificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedCertificate_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the specified Managed Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedCertificate_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the Managed Certificate. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Certificate.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Certificate.", + SerializedName = @"managedCertificateName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ManagedCertificateName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiManagedCertificate_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedCertificatesGet(SubscriptionId, ResourceGroupName, EnvironmentName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, 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, EnvironmentName=EnvironmentName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedCertificate_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedCertificate_GetViaIdentity.cs new file mode 100644 index 000000000000..8dd0b7740f58 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedCertificate_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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the specified Managed Certificate. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/managedCertificates/{managedCertificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedCertificate_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the specified Managed Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedCertificate_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiManagedCertificate_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedCertificatesGetViaIdentity(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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ManagedCertificateName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ManagedCertificateName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedCertificatesGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, InputObject.ManagedCertificateName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedCertificate_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedCertificate_List.cs new file mode 100644 index 000000000000..e90e541123db --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedCertificate_List.cs @@ -0,0 +1,425 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the Managed Certificates in a given managed environment. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/managedCertificates" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedCertificate_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the Managed Certificates in a given managed environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedCertificate_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiManagedCertificate_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedCertificatesList(SubscriptionId, ResourceGroupName, EnvironmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificateCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedCertificatesList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentAuthToken_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentAuthToken_Get.cs new file mode 100644 index 000000000000..7570af57488c --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentAuthToken_Get.cs @@ -0,0 +1,406 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Checks if resource name is available. + /// + /// [OpenAPI] GetAuthToken=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/getAuthtoken" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironmentAuthToken_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Checks if resource name is available.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironmentAuthToken_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiManagedEnvironmentAuthToken_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedEnvironmentsGetAuthToken' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsGetAuthToken(SubscriptionId, ResourceGroupName, EnvironmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentAuthToken_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentAuthToken_GetViaIdentity.cs new file mode 100644 index 000000000000..2b7812670dbd --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentAuthToken_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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Checks if resource name is available. + /// + /// [OpenAPI] GetAuthToken=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/getAuthtoken" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironmentAuthToken_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Checks if resource name is available.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironmentAuthToken_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzContainerAppsApiManagedEnvironmentAuthToken_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedEnvironmentsGetAuthToken' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedEnvironmentsGetAuthTokenViaIdentity(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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedEnvironmentsGetAuthToken(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IEnvironmentAuthToken + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_Get.cs new file mode 100644 index 000000000000..e3069d5171aa --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the diagnostics data for a Managed Environment used to host container apps. + /// + /// [OpenAPI] GetDetector=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/detectors/{detectorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironmentDiagnosticDetector_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the diagnostics data for a Managed Environment used to host container apps.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _detectorName; + + /// Name of the Managed Environment detector. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment detector.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment detector.", + SerializedName = @"detectorName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string DetectorName { get => this._detectorName; set => this._detectorName = value; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentDiagnosticsGetDetector(SubscriptionId, ResourceGroupName, EnvironmentName, DetectorName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,DetectorName=DetectorName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, DetectorName=DetectorName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, DetectorName=DetectorName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_GetViaIdentity.cs new file mode 100644 index 000000000000..f9708e0b78f8 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_GetViaIdentity.cs @@ -0,0 +1,387 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the diagnostics data for a Managed Environment used to host container apps. + /// + /// [OpenAPI] GetDetector=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/detectors/{detectorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironmentDiagnosticDetector_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the diagnostics data for a Managed Environment used to host container apps.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedEnvironmentDiagnosticsGetDetectorViaIdentity(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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DetectorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DetectorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedEnvironmentDiagnosticsGetDetector(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, InputObject.DetectorName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnostics + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_List.cs new file mode 100644 index 000000000000..1ef8e568cec7 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_List.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// + /// Get the list of diagnostics for a Managed Environment used to host container apps. + /// + /// + /// [OpenAPI] ListDetectors=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/detectors" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironmentDiagnosticDetector_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the list of diagnostics for a Managed Environment used to host container apps.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzContainerAppsApiManagedEnvironmentDiagnosticDetector_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentDiagnosticsListDetectors(SubscriptionId, ResourceGroupName, EnvironmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDiagnosticsCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentDiagnosticsListDetectors_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticRoot_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticRoot_Get.cs new file mode 100644 index 000000000000..67acf49ed66a --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticRoot_Get.cs @@ -0,0 +1,403 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the properties of a Managed Environment used to host container apps. + /// + /// [OpenAPI] GetRoot=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/detectorProperties/rootApi/" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironmentDiagnosticRoot_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the properties of a Managed Environment used to host container apps.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironmentDiagnosticRoot_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiManagedEnvironmentDiagnosticRoot_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsDiagnosticsGetRoot(SubscriptionId, ResourceGroupName, EnvironmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticRoot_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticRoot_GetViaIdentity.cs new file mode 100644 index 000000000000..d230cdeec47d --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentDiagnosticRoot_GetViaIdentity.cs @@ -0,0 +1,383 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the properties of a Managed Environment used to host container apps. + /// + /// [OpenAPI] GetRoot=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/detectorProperties/rootApi/" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironmentDiagnosticRoot_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the properties of a Managed Environment used to host container apps.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironmentDiagnosticRoot_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzContainerAppsApiManagedEnvironmentDiagnosticRoot_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedEnvironmentsDiagnosticsGetRootViaIdentity(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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedEnvironmentsDiagnosticsGetRoot(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentWorkloadProfileState_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentWorkloadProfileState_List.cs new file mode 100644 index 000000000000..7a7aa058a907 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentWorkloadProfileState_List.cs @@ -0,0 +1,426 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get all workload Profile States for a Premium Managed Environment. + /// + /// [OpenAPI] ListWorkloadProfileStates=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/workloadProfileStates" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironmentWorkloadProfileState_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStates))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get all workload Profile States for a Premium Managed Environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironmentWorkloadProfileState_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzContainerAppsApiManagedEnvironmentWorkloadProfileState_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsListWorkloadProfileStates(SubscriptionId, ResourceGroupName, EnvironmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfileStatesCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsListWorkloadProfileStates_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_Get.cs new file mode 100644 index 000000000000..1c6af1f582ba --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_Get.cs @@ -0,0 +1,403 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the properties of a Managed Environment used to host container apps. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironment_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the properties of a Managed Environment used to host container apps.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironment_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiManagedEnvironment_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsGet(SubscriptionId, ResourceGroupName, EnvironmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_GetViaIdentity.cs new file mode 100644 index 000000000000..312bf698f080 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_GetViaIdentity.cs @@ -0,0 +1,382 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get the properties of a Managed Environment used to host container apps. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironment_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get the properties of a Managed Environment used to host container apps.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironment_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiManagedEnvironment_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedEnvironmentsGetViaIdentity(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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedEnvironmentsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_List.cs new file mode 100644 index 000000000000..a9086b6a3522 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_List.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get all Managed Environments for a subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.App/managedEnvironments" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironment_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get all Managed Environments for a subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironment_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiManagedEnvironment_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsListBySubscription(SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_List1.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_List1.cs new file mode 100644 index 000000000000..924e33c802ac --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironment_List1.cs @@ -0,0 +1,411 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get all the Managed Environments in a resource group. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironment_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get all the Managed Environments in a resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironment_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiManagedEnvironment_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsListByResourceGroup(SubscriptionId, ResourceGroupName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentsCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsListByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentsStorage_Get.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentsStorage_Get.cs new file mode 100644 index 000000000000..7e34a7e8a960 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentsStorage_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get storage for a managedEnvironment. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironmentsStorage_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get storage for a managedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironmentsStorage_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _storageName; + + /// Name of the storage. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the storage.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the storage.", + SerializedName = @"storageName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string StorageName { get => this._storageName; set => this._storageName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiManagedEnvironmentsStorage_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsStoragesGet(SubscriptionId, ResourceGroupName, EnvironmentName, StorageName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,StorageName=StorageName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, StorageName=StorageName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, StorageName=StorageName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentsStorage_GetViaIdentity.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentsStorage_GetViaIdentity.cs new file mode 100644 index 000000000000..9dd744d5d7a1 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentsStorage_GetViaIdentity.cs @@ -0,0 +1,387 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get storage for a managedEnvironment. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironmentsStorage_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get storage for a managedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironmentsStorage_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzContainerAppsApiManagedEnvironmentsStorage_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedEnvironmentsStoragesGetViaIdentity(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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.StorageName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.StorageName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedEnvironmentsStoragesGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, InputObject.StorageName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentsStorage_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentsStorage_List.cs new file mode 100644 index 000000000000..c4f7557796fc --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiManagedEnvironmentsStorage_List.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Get all storages for a managedEnvironment. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/storages" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiManagedEnvironmentsStorage_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Get all storages for a managedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiManagedEnvironmentsStorage_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollection + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiManagedEnvironmentsStorage_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsStoragesList(SubscriptionId, ResourceGroupName, EnvironmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStoragesCollection + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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/app/generated/cmdlets/GetAzContainerAppsApiOperation_List.cs b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiOperation_List.cs new file mode 100644 index 000000000000..98d2a5265183 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/GetAzContainerAppsApiOperation_List.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Lists all of the available RP operations. + /// + /// [OpenAPI] List=>GET:"/providers/Microsoft.App/operations" + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.InternalExport] + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzContainerAppsApiOperation_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Lists all of the available RP operations.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class GetAzContainerAppsApiOperation_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperations + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzContainerAppsApiOperation_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.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.OperationsList(onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAvailableOperations + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/InitializeAzContainerAppsApiContainerAppRevision_Activate.cs b/swaggerci/app/generated/cmdlets/InitializeAzContainerAppsApiContainerAppRevision_Activate.cs new file mode 100644 index 000000000000..e194ecd09e75 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/InitializeAzContainerAppsApiContainerAppRevision_Activate.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Activates a revision for a Container App + /// + /// [OpenAPI] ActivateRevision=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}/activate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Initialize, @"AzContainerAppsApiContainerAppRevision_Activate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Activates a revision for a Container App")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class InitializeAzContainerAppsApiContainerAppRevision_Activate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _revisionName; + + /// Name of the Container App Revision. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App Revision.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App Revision.", + SerializedName = @"revisionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string RevisionName { get => this._revisionName; set => this._revisionName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InitializeAzContainerAppsApiContainerAppRevision_Activate() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsRevisionsActivateRevision' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsRevisionsActivateRevision(SubscriptionId, ResourceGroupName, ContainerAppName, RevisionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,RevisionName=RevisionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, RevisionName=RevisionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName, RevisionName=RevisionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.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/app/generated/cmdlets/InitializeAzContainerAppsApiContainerAppRevision_ActivateViaIdentity.cs b/swaggerci/app/generated/cmdlets/InitializeAzContainerAppsApiContainerAppRevision_ActivateViaIdentity.cs new file mode 100644 index 000000000000..e2f7f6968441 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/InitializeAzContainerAppsApiContainerAppRevision_ActivateViaIdentity.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Activates a revision for a Container App + /// + /// [OpenAPI] ActivateRevision=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}/activate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Initialize, @"AzContainerAppsApiContainerAppRevision_ActivateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Activates a revision for a Container App")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class InitializeAzContainerAppsApiContainerAppRevision_ActivateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public InitializeAzContainerAppsApiContainerAppRevision_ActivateViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsRevisionsActivateRevision' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsRevisionsActivateRevisionViaIdentity(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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.RevisionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.RevisionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsRevisionsActivateRevision(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, InputObject.RevisionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/InvokeAzContainerAppsApiDeactivateContainerAppRevision_Deactivate.cs b/swaggerci/app/generated/cmdlets/InvokeAzContainerAppsApiDeactivateContainerAppRevision_Deactivate.cs new file mode 100644 index 000000000000..88950aad100d --- /dev/null +++ b/swaggerci/app/generated/cmdlets/InvokeAzContainerAppsApiDeactivateContainerAppRevision_Deactivate.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Deactivates a revision for a Container App + /// + /// [OpenAPI] DeactivateRevision=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}/deactivate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzContainerAppsApiDeactivateContainerAppRevision_Deactivate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Deactivates a revision for a Container App")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class InvokeAzContainerAppsApiDeactivateContainerAppRevision_Deactivate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _revisionName; + + /// Name of the Container App Revision. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App Revision.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App Revision.", + SerializedName = @"revisionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string RevisionName { get => this._revisionName; set => this._revisionName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public InvokeAzContainerAppsApiDeactivateContainerAppRevision_Deactivate() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsRevisionsDeactivateRevision' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsRevisionsDeactivateRevision(SubscriptionId, ResourceGroupName, ContainerAppName, RevisionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,RevisionName=RevisionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, RevisionName=RevisionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName, RevisionName=RevisionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.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/app/generated/cmdlets/InvokeAzContainerAppsApiDeactivateContainerAppRevision_DeactivateViaIdentity.cs b/swaggerci/app/generated/cmdlets/InvokeAzContainerAppsApiDeactivateContainerAppRevision_DeactivateViaIdentity.cs new file mode 100644 index 000000000000..eaa419851a49 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/InvokeAzContainerAppsApiDeactivateContainerAppRevision_DeactivateViaIdentity.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Deactivates a revision for a Container App + /// + /// [OpenAPI] DeactivateRevision=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}/deactivate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzContainerAppsApiDeactivateContainerAppRevision_DeactivateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Deactivates a revision for a Container App")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class InvokeAzContainerAppsApiDeactivateContainerAppRevision_DeactivateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzContainerAppsApiDeactivateContainerAppRevision_DeactivateViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsRevisionsDeactivateRevision' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsRevisionsDeactivateRevisionViaIdentity(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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.RevisionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.RevisionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsRevisionsDeactivateRevision(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, InputObject.RevisionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/NewAzContainerAppsApiCertificate_CreateExpanded.cs b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiCertificate_CreateExpanded.cs new file mode 100644 index 000000000000..e24731fcfb95 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiCertificate_CreateExpanded.cs @@ -0,0 +1,480 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Create or Update a Certificate. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzContainerAppsApiCertificate_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Create or Update a Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class NewAzContainerAppsApiCertificate_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// + /// Certificate used for Custom Domain bindings of Container Apps in a Managed Environment + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate _certificateEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Certificate(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Input File for Value (PFX or PEM blob) + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Input File for Value (PFX or PEM blob)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + public string InputFile + { + set + { + var paths = this.SessionState.Path.GetResolvedProviderPathFromPSPath(value, out var provider); + if (provider.Name != "FileSystem" || paths.Count == 0) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Invalid input path."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + if (paths.Count > 1) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Multiple input paths not allowed."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + Value = global::System.IO.File.ReadAllBytes(paths[0]); + } + } + + /// 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 where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _certificateEnvelopeBody.Location ?? null; set => _certificateEnvelopeBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the Certificate. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Certificate.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Certificate.", + SerializedName = @"certificateName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("CertificateName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// Certificate password. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Certificate password.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Certificate password.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + public string Password { get => _certificateEnvelopeBody.Password ?? null; set => _certificateEnvelopeBody.Password = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => _certificateEnvelopeBody.Tag ?? null /* object */; set => _certificateEnvelopeBody.Tag = value; } + + /// PFX or PEM blob + internal byte[] Value { get => _certificateEnvelopeBody.Value ?? null /* byte array */; set => _certificateEnvelopeBody.Value = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 NewAzContainerAppsApiCertificate_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CertificatesCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CertificatesCreateOrUpdate(SubscriptionId, ResourceGroupName, EnvironmentName, Name, _certificateEnvelopeBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,Name=Name,body=_certificateEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, Name=Name, body=_certificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, Name=Name, body=_certificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironmentCertificate_CreateExpanded.cs b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironmentCertificate_CreateExpanded.cs new file mode 100644 index 000000000000..fee1633ef94f --- /dev/null +++ b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironmentCertificate_CreateExpanded.cs @@ -0,0 +1,480 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Create or Update a Certificate. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzContainerAppsApiConnectedEnvironmentCertificate_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Create or Update a Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class NewAzContainerAppsApiConnectedEnvironmentCertificate_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// + /// Certificate used for Custom Domain bindings of Container Apps in a Managed Environment + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate _certificateEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.Certificate(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _certificateName; + + /// Name of the Certificate. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Certificate.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Certificate.", + SerializedName = @"certificateName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string CertificateName { get => this._certificateName; set => this._certificateName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the Connected Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Connected Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Connected Environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Input File for Value (PFX or PEM blob) + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Input File for Value (PFX or PEM blob)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + public string InputFile + { + set + { + var paths = this.SessionState.Path.GetResolvedProviderPathFromPSPath(value, out var provider); + if (provider.Name != "FileSystem" || paths.Count == 0) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Invalid input path."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + if (paths.Count > 1) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Multiple input paths not allowed."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + Value = global::System.IO.File.ReadAllBytes(paths[0]); + } + } + + /// 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 where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _certificateEnvelopeBody.Location ?? null; set => _certificateEnvelopeBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Certificate password. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Certificate password.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Certificate password.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + public string Password { get => _certificateEnvelopeBody.Password ?? null; set => _certificateEnvelopeBody.Password = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => _certificateEnvelopeBody.Tag ?? null /* object */; set => _certificateEnvelopeBody.Tag = value; } + + /// PFX or PEM blob + internal byte[] Value { get => _certificateEnvelopeBody.Value ?? null /* byte array */; set => _certificateEnvelopeBody.Value = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 NewAzContainerAppsApiConnectedEnvironmentCertificate_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsCertificatesCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsCertificatesCreateOrUpdate(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, CertificateName, _certificateEnvelopeBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName,CertificateName=CertificateName,body=_certificateEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName, CertificateName=CertificateName, body=_certificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName, CertificateName=CertificateName, body=_certificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironmentDaprComponent_CreateExpanded.cs b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironmentDaprComponent_CreateExpanded.cs new file mode 100644 index 000000000000..74dc9488ae68 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironmentDaprComponent_CreateExpanded.cs @@ -0,0 +1,512 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Creates or updates a Dapr Component in a connected environment. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/daprComponents/{componentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzContainerAppsApiConnectedEnvironmentDaprComponent_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Creates or updates a Dapr Component in a connected environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class NewAzContainerAppsApiConnectedEnvironmentDaprComponent_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Dapr Component. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent _daprComponentEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponent(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _componentName; + + /// Name of the Dapr Component. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Dapr Component.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Dapr Component.", + SerializedName = @"componentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ComponentName { get => this._componentName; set => this._componentName = value; } + + /// Component type + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Component type")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Component type", + SerializedName = @"componentType", + PossibleTypes = new [] { typeof(string) })] + public string ComponentType { get => _daprComponentEnvelopeBody.ComponentType ?? null; set => _daprComponentEnvelopeBody.ComponentType = value; } + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the connected environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the connected environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the connected environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Boolean describing if the component errors are ignores + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Boolean describing if the component errors are ignores")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean describing if the component errors are ignores", + SerializedName = @"ignoreErrors", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter IgnoreError { get => _daprComponentEnvelopeBody.IgnoreError ?? default(global::System.Management.Automation.SwitchParameter); set => _daprComponentEnvelopeBody.IgnoreError = value; } + + /// Initialization timeout + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Initialization timeout")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Initialization timeout", + SerializedName = @"initTimeout", + PossibleTypes = new [] { typeof(string) })] + public string InitTimeout { get => _daprComponentEnvelopeBody.InitTimeout ?? null; set => _daprComponentEnvelopeBody.InitTimeout = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Component metadata + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Component metadata")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Component metadata", + SerializedName = @"metadata", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[] Metadata { get => _daprComponentEnvelopeBody.Metadata ?? null /* arrayOf */; set => _daprComponentEnvelopeBody.Metadata = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Names of container apps that can use this Dapr component + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Names of container apps that can use this Dapr component")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Names of container apps that can use this Dapr component", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + public string[] Scope { get => _daprComponentEnvelopeBody.Scope ?? null /* arrayOf */; set => _daprComponentEnvelopeBody.Scope = value; } + + /// Collection of secrets used by a Dapr component + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of secrets used by a Dapr component")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of secrets used by a Dapr component", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] Secret { get => _daprComponentEnvelopeBody.Secret ?? null /* arrayOf */; set => _daprComponentEnvelopeBody.Secret = value; } + + /// Name of a Dapr component to retrieve component secrets from + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of a Dapr component to retrieve component secrets from")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a Dapr component to retrieve component secrets from", + SerializedName = @"secretStoreComponent", + PossibleTypes = new [] { typeof(string) })] + public string SecretStoreComponent { get => _daprComponentEnvelopeBody.SecretStoreComponent ?? null; set => _daprComponentEnvelopeBody.SecretStoreComponent = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Component version + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Component version")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Component version", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + public string Version { get => _daprComponentEnvelopeBody.Version ?? null; set => _daprComponentEnvelopeBody.Version = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 NewAzContainerAppsApiConnectedEnvironmentDaprComponent_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsDaprComponentsCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsDaprComponentsCreateOrUpdate(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, ComponentName, _daprComponentEnvelopeBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName,ComponentName=ComponentName,body=_daprComponentEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName, ComponentName=ComponentName, body=_daprComponentEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName, ComponentName=ComponentName, body=_daprComponentEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironmentStorage_CreateExpanded.cs b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironmentStorage_CreateExpanded.cs new file mode 100644 index 000000000000..4e56ab233460 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironmentStorage_CreateExpanded.cs @@ -0,0 +1,466 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Create or update storage for a connectedEnvironment. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzContainerAppsApiConnectedEnvironmentStorage_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Create or update storage for a connectedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class NewAzContainerAppsApiConnectedEnvironmentStorage_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Storage resource for connectedEnvironment. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage _storageEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironmentStorage(); + + /// Access mode for storage + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Access mode for storage")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Access mode for storage", + SerializedName = @"accessMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode AzureFileAccessMode { get => _storageEnvelopeBody.AzureFileAccessMode ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode)""); set => _storageEnvelopeBody.AzureFileAccessMode = value; } + + /// Storage account key for azure file. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Storage account key for azure file.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage account key for azure file.", + SerializedName = @"accountKey", + PossibleTypes = new [] { typeof(string) })] + public string AzureFileAccountKey { get => _storageEnvelopeBody.AzureFileAccountKey ?? null; set => _storageEnvelopeBody.AzureFileAccountKey = value; } + + /// Storage account name for azure file. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Storage account name for azure file.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage account name for azure file.", + SerializedName = @"accountName", + PossibleTypes = new [] { typeof(string) })] + public string AzureFileAccountName { get => _storageEnvelopeBody.AzureFileAccountName ?? null; set => _storageEnvelopeBody.AzureFileAccountName = value; } + + /// Azure file share name. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure file share name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure file share name.", + SerializedName = @"shareName", + PossibleTypes = new [] { typeof(string) })] + public string AzureFileShareName { get => _storageEnvelopeBody.AzureFileShareName ?? null; set => _storageEnvelopeBody.AzureFileShareName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _storageName; + + /// Name of the storage. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the storage.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the storage.", + SerializedName = @"storageName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string StorageName { get => this._storageName; set => this._storageName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 NewAzContainerAppsApiConnectedEnvironmentStorage_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsStoragesCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsStoragesCreateOrUpdate(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, StorageName, _storageEnvelopeBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName,StorageName=StorageName,body=_storageEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName, StorageName=StorageName, body=_storageEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName, StorageName=StorageName, body=_storageEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironmentStorage + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironment_CreateExpanded.cs b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironment_CreateExpanded.cs new file mode 100644 index 000000000000..5ce1cb59ffaa --- /dev/null +++ b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiConnectedEnvironment_CreateExpanded.cs @@ -0,0 +1,607 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Creates or updates an connectedEnvironment. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzContainerAppsApiConnectedEnvironment_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Creates or updates an connectedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class NewAzContainerAppsApiConnectedEnvironment_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// + /// An environment for Kubernetes cluster specialized for web workloads by Azure App Service + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment _environmentEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ConnectedEnvironment(); + + /// 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Certificate password + internal byte[] CustomDomainConfigurationCertificatePassword { get => _environmentEnvelopeBody.CustomDomainConfigurationCertificatePassword ?? null /* byte array */; set => _environmentEnvelopeBody.CustomDomainConfigurationCertificatePassword = value; } + + /// + /// Input File for CustomDomainConfigurationCertificatePassword (Certificate password) + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Input File for CustomDomainConfigurationCertificatePassword (Certificate password)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + public string CustomDomainConfigurationCertificatePasswordInputFile + { + set + { + var paths = this.SessionState.Path.GetResolvedProviderPathFromPSPath(value, out var provider); + if (provider.Name != "FileSystem" || paths.Count == 0) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Invalid input path."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + if (paths.Count > 1) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Multiple input paths not allowed."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + CustomDomainConfigurationCertificatePassword = global::System.IO.File.ReadAllBytes(paths[0]); + } + } + + /// PFX or PEM blob + internal byte[] CustomDomainConfigurationCertificateValue { get => _environmentEnvelopeBody.CustomDomainConfigurationCertificateValue ?? null /* byte array */; set => _environmentEnvelopeBody.CustomDomainConfigurationCertificateValue = value; } + + /// Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob) + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + public string CustomDomainConfigurationCertificateValueInputFile + { + set + { + var paths = this.SessionState.Path.GetResolvedProviderPathFromPSPath(value, out var provider); + if (provider.Name != "FileSystem" || paths.Count == 0) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Invalid input path."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + if (paths.Count > 1) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Multiple input paths not allowed."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + CustomDomainConfigurationCertificateValue = global::System.IO.File.ReadAllBytes(paths[0]); + } + } + + /// Dns suffix for the environment domain + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Dns suffix for the environment domain")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dns suffix for the environment domain", + SerializedName = @"dnsSuffix", + PossibleTypes = new [] { typeof(string) })] + public string CustomDomainConfigurationDnsSuffix { get => _environmentEnvelopeBody.CustomDomainConfigurationDnsSuffix ?? null; set => _environmentEnvelopeBody.CustomDomainConfigurationDnsSuffix = value; } + + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Application Insights connection string used by Dapr to export Service to Service communication telemetry")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application Insights connection string used by Dapr to export Service to Service communication telemetry", + SerializedName = @"daprAIConnectionString", + PossibleTypes = new [] { typeof(string) })] + public string DaprAiConnectionString { get => _environmentEnvelopeBody.DaprAiConnectionString ?? null; set => _environmentEnvelopeBody.DaprAiConnectionString = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// The name of the extended location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the extended location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the extended location.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string ExtendedLocationName { get => _environmentEnvelopeBody.ExtendedLocationName ?? null; set => _environmentEnvelopeBody.ExtendedLocationName = value; } + + /// The type of the extended location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of the extended location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the extended location.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes ExtendedLocationType { get => _environmentEnvelopeBody.ExtendedLocationType ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes)""); set => _environmentEnvelopeBody.ExtendedLocationType = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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 where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _environmentEnvelopeBody.Location ?? null; set => _environmentEnvelopeBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the connectedEnvironment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the connectedEnvironment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the connectedEnvironment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ConnectedEnvironmentName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Static IP of the connectedEnvironment + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Static IP of the connectedEnvironment")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Static IP of the connectedEnvironment", + SerializedName = @"staticIp", + PossibleTypes = new [] { typeof(string) })] + public string StaticIP { get => _environmentEnvelopeBody.StaticIP ?? null; set => _environmentEnvelopeBody.StaticIP = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => _environmentEnvelopeBody.Tag ?? null /* object */; set => _environmentEnvelopeBody.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 Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of NewAzContainerAppsApiConnectedEnvironment_CreateExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.NewAzContainerAppsApiConnectedEnvironment_CreateExpanded Clone() + { + var clone = new NewAzContainerAppsApiConnectedEnvironment_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._environmentEnvelopeBody = this._environmentEnvelopeBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 NewAzContainerAppsApiConnectedEnvironment_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsCreateOrUpdate(SubscriptionId, ResourceGroupName, Name, _environmentEnvelopeBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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=_environmentEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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=_environmentEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=_environmentEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IConnectedEnvironment + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiContainerAppAuthConfig_CreateExpanded.cs b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiContainerAppAuthConfig_CreateExpanded.cs new file mode 100644 index 000000000000..8487518b2f14 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiContainerAppAuthConfig_CreateExpanded.cs @@ -0,0 +1,648 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Create or update the AuthConfig for a Container App. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/authConfigs/{authConfigName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzContainerAppsApiContainerAppAuthConfig_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Create or update the AuthConfig for a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class NewAzContainerAppsApiContainerAppAuthConfig_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// Configuration settings for the Azure ContainerApp Service Authentication / Authorization feature. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig _authConfigEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.AuthConfig(); + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Backing field for property. + private string _authConfigName; + + /// Name of the Container App AuthConfig. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App AuthConfig.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App AuthConfig.", + SerializedName = @"authConfigName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string AuthConfigName { get => this._authConfigName; set => this._authConfigName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = value; } + + /// The convention used when determining the session cookie's expiration. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The convention used when determining the session cookie's expiration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The convention used when determining the session cookie's expiration.", + SerializedName = @"convention", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention CookieExpirationConvention { get => _authConfigEnvelopeBody.CookieExpirationConvention ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.CookieExpirationConvention)""); set => _authConfigEnvelopeBody.CookieExpirationConvention = value; } + + /// The time after the request is made when the session cookie should expire. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The time after the request is made when the session cookie should expire.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time after the request is made when the session cookie should expire.", + SerializedName = @"timeToExpiration", + PossibleTypes = new [] { typeof(string) })] + public string CookieExpirationTimeToExpiration { get => _authConfigEnvelopeBody.CookieExpirationTimeToExpiration ?? null; set => _authConfigEnvelopeBody.CookieExpirationTimeToExpiration = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// The convention used to determine the url of the request made. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The convention used to determine the url of the request made.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The convention used to determine the url of the request made.", + SerializedName = @"convention", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention ForwardProxyConvention { get => _authConfigEnvelopeBody.ForwardProxyConvention ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ForwardProxyConvention)""); set => _authConfigEnvelopeBody.ForwardProxyConvention = value; } + + /// The name of the header containing the host of the request. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the header containing the host of the request.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the header containing the host of the request.", + SerializedName = @"customHostHeaderName", + PossibleTypes = new [] { typeof(string) })] + public string ForwardProxyCustomHostHeaderName { get => _authConfigEnvelopeBody.ForwardProxyCustomHostHeaderName ?? null; set => _authConfigEnvelopeBody.ForwardProxyCustomHostHeaderName = value; } + + /// The name of the header containing the scheme of the request. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the header containing the scheme of the request.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the header containing the scheme of the request.", + SerializedName = @"customProtoHeaderName", + PossibleTypes = new [] { typeof(string) })] + public string ForwardProxyCustomProtoHeaderName { get => _authConfigEnvelopeBody.ForwardProxyCustomProtoHeaderName ?? null; set => _authConfigEnvelopeBody.ForwardProxyCustomProtoHeaderName = value; } + + /// + /// The paths for which unauthenticated flow would not be redirected to the login page. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The paths for which unauthenticated flow would not be redirected to the login page.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The paths for which unauthenticated flow would not be redirected to the login page.", + SerializedName = @"excludedPaths", + PossibleTypes = new [] { typeof(string) })] + public string[] GlobalValidationExcludedPath { get => _authConfigEnvelopeBody.GlobalValidationExcludedPath ?? null /* arrayOf */; set => _authConfigEnvelopeBody.GlobalValidationExcludedPath = value; } + + /// + /// The default authentication provider to use when multiple providers are configured.This setting is only needed if multiple + /// providers are configured and the unauthenticated clientaction is set to "RedirectToLoginPage". + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The default authentication provider to use when multiple providers are configured.This setting is only needed if multiple providers are configured and the unauthenticated clientaction is set to \"RedirectToLoginPage\".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default authentication provider to use when multiple providers are configured.This setting is only needed if multiple providers are configured and the unauthenticated clientaction is set to ""RedirectToLoginPage"".", + SerializedName = @"redirectToProvider", + PossibleTypes = new [] { typeof(string) })] + public string GlobalValidationRedirectToProvider { get => _authConfigEnvelopeBody.GlobalValidationRedirectToProvider ?? null; set => _authConfigEnvelopeBody.GlobalValidationRedirectToProvider = value; } + + /// The action to take when an unauthenticated client attempts to access the app. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The action to take when an unauthenticated client attempts to access the app.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The action to take when an unauthenticated client attempts to access the app.", + SerializedName = @"unauthenticatedClientAction", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2 GlobalValidationUnauthenticatedClientAction { get => _authConfigEnvelopeBody.GlobalValidationUnauthenticatedClientAction ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.UnauthenticatedClientActionV2)""); set => _authConfigEnvelopeBody.GlobalValidationUnauthenticatedClientAction = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// + /// false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, + /// true. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, true.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, true.", + SerializedName = @"requireHttps", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter HttpSettingRequireHttps { get => _authConfigEnvelopeBody.HttpSettingRequireHttps ?? default(global::System.Management.Automation.SwitchParameter); set => _authConfigEnvelopeBody.HttpSettingRequireHttps = value; } + + /// + /// The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization.", + SerializedName = @"identityProviders", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIdentityProviders IdentityProvider { get => _authConfigEnvelopeBody.IdentityProvider ?? null /* object */; set => _authConfigEnvelopeBody.IdentityProvider = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part + /// of the URL is ignored.This is an advanced setting typically only needed by Windows Store application backends.Note that + /// URLs within the current domain are always implicitly allowed. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part of the URL is ignored.This is an advanced setting typically only needed by Windows Store application backends.Note that URLs within the current domain are always implicitly allowed.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part of the URL is ignored.This is an advanced setting typically only needed by Windows Store application backends.Note that URLs within the current domain are always implicitly allowed.", + SerializedName = @"allowedExternalRedirectUrls", + PossibleTypes = new [] { typeof(string) })] + public string[] LoginAllowedExternalRedirectUrl { get => _authConfigEnvelopeBody.LoginAllowedExternalRedirectUrl ?? null /* arrayOf */; set => _authConfigEnvelopeBody.LoginAllowedExternalRedirectUrl = value; } + + /// + /// true if the fragments from the request are preserved after the login request is made; otherwise, false. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "true if the fragments from the request are preserved after the login request is made; otherwise, false.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"true if the fragments from the request are preserved after the login request is made; otherwise, false.", + SerializedName = @"preserveUrlFragmentsForLogins", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter LoginPreserveUrlFragmentsForLogin { get => _authConfigEnvelopeBody.LoginPreserveUrlFragmentsForLogin ?? default(global::System.Management.Automation.SwitchParameter); set => _authConfigEnvelopeBody.LoginPreserveUrlFragmentsForLogin = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// The time after the request is made when the nonce should expire. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The time after the request is made when the nonce should expire.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time after the request is made when the nonce should expire.", + SerializedName = @"nonceExpirationInterval", + PossibleTypes = new [] { typeof(string) })] + public string NonceExpirationInterval { get => _authConfigEnvelopeBody.NonceExpirationInterval ?? null; set => _authConfigEnvelopeBody.NonceExpirationInterval = value; } + + /// + /// false if the nonce should not be validated while completing the login flow; otherwise, true. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "false if the nonce should not be validated while completing the login flow; otherwise, true.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"false if the nonce should not be validated while completing the login flow; otherwise, true.", + SerializedName = @"validateNonce", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter NonceValidateNonce { get => _authConfigEnvelopeBody.NonceValidateNonce ?? default(global::System.Management.Automation.SwitchParameter); set => _authConfigEnvelopeBody.NonceValidateNonce = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// + /// true if the Authentication / Authorization feature is enabled for the current app; otherwise, false. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "true if the Authentication / Authorization feature is enabled for the current app; otherwise, false.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"true if the Authentication / Authorization feature is enabled for the current app; otherwise, false.", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter PlatformEnabled { get => _authConfigEnvelopeBody.PlatformEnabled ?? default(global::System.Management.Automation.SwitchParameter); set => _authConfigEnvelopeBody.PlatformEnabled = value; } + + /// + /// The RuntimeVersion of the Authentication / Authorization feature in use for the current app.The setting in this value + /// can control the behavior of certain features in the Authentication / Authorization module. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The RuntimeVersion of the Authentication / Authorization feature in use for the current app.The setting in this value can control the behavior of certain features in the Authentication / Authorization module.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The RuntimeVersion of the Authentication / Authorization feature in use for the current app.The setting in this value can control the behavior of certain features in the Authentication / Authorization module.", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(string) })] + public string PlatformRuntimeVersion { get => _authConfigEnvelopeBody.PlatformRuntimeVersion ?? null; set => _authConfigEnvelopeBody.PlatformRuntimeVersion = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// The prefix that should precede all the authentication/authorization paths. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The prefix that should precede all the authentication/authorization paths.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The prefix that should precede all the authentication/authorization paths.", + SerializedName = @"apiPrefix", + PossibleTypes = new [] { typeof(string) })] + public string RouteApiPrefix { get => _authConfigEnvelopeBody.RouteApiPrefix ?? null; set => _authConfigEnvelopeBody.RouteApiPrefix = value; } + + /// The endpoint at which a logout request should be made. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The endpoint at which a logout request should be made.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoint at which a logout request should be made.", + SerializedName = @"logoutEndpoint", + PossibleTypes = new [] { typeof(string) })] + public string RouteLogoutEndpoint { get => _authConfigEnvelopeBody.RouteLogoutEndpoint ?? null; set => _authConfigEnvelopeBody.RouteLogoutEndpoint = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 NewAzContainerAppsApiContainerAppAuthConfig_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsAuthConfigsCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsAuthConfigsCreateOrUpdate(SubscriptionId, ResourceGroupName, ContainerAppName, AuthConfigName, _authConfigEnvelopeBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,AuthConfigName=AuthConfigName,body=_authConfigEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, AuthConfigName=AuthConfigName, body=_authConfigEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName, AuthConfigName=AuthConfigName, body=_authConfigEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IAuthConfig + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiContainerAppSourceControl_CreateExpanded.cs b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiContainerAppSourceControl_CreateExpanded.cs new file mode 100644 index 000000000000..09480c487bd6 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiContainerAppSourceControl_CreateExpanded.cs @@ -0,0 +1,655 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Create or update the SourceControl for a Container App. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/sourcecontrols/{sourceControlName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzContainerAppsApiContainerAppSourceControl_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Create or update the SourceControl for a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class NewAzContainerAppsApiContainerAppSourceControl_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Container App SourceControl. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl _sourceControlEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.SourceControl(); + + /// 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Client Id. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Client Id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Client Id.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + public string AzureCredentialsClientId { get => _sourceControlEnvelopeBody.AzureCredentialsClientId ?? null; set => _sourceControlEnvelopeBody.AzureCredentialsClientId = value; } + + /// Client Secret. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Client Secret.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Client Secret.", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + public string AzureCredentialsClientSecret { get => _sourceControlEnvelopeBody.AzureCredentialsClientSecret ?? null; set => _sourceControlEnvelopeBody.AzureCredentialsClientSecret = value; } + + /// Subscription Id. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Subscription Id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Subscription Id.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + public string AzureCredentialsSubscriptionId { get => _sourceControlEnvelopeBody.AzureCredentialsSubscriptionId ?? null; set => _sourceControlEnvelopeBody.AzureCredentialsSubscriptionId = value; } + + /// Tenant Id. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tenant Id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tenant Id.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string AzureCredentialsTenantId { get => _sourceControlEnvelopeBody.AzureCredentialsTenantId ?? null; set => _sourceControlEnvelopeBody.AzureCredentialsTenantId = value; } + + /// The branch which will trigger the auto deployment + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The branch which will trigger the auto deployment")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The branch which will trigger the auto deployment", + SerializedName = @"branch", + PossibleTypes = new [] { typeof(string) })] + public string Branch { get => _sourceControlEnvelopeBody.Branch ?? null; set => _sourceControlEnvelopeBody.Branch = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Context path + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Context path")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Context path", + SerializedName = @"contextPath", + PossibleTypes = new [] { typeof(string) })] + public string GithubActionConfigurationContextPath { get => _sourceControlEnvelopeBody.GithubActionConfigurationContextPath ?? null; set => _sourceControlEnvelopeBody.GithubActionConfigurationContextPath = value; } + + /// Image name + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Image name")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Image name", + SerializedName = @"image", + PossibleTypes = new [] { typeof(string) })] + public string GithubActionConfigurationImage { get => _sourceControlEnvelopeBody.GithubActionConfigurationImage ?? null; set => _sourceControlEnvelopeBody.GithubActionConfigurationImage = value; } + + /// Operation system + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Operation system")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Operation system", + SerializedName = @"os", + PossibleTypes = new [] { typeof(string) })] + public string GithubActionConfigurationOS { get => _sourceControlEnvelopeBody.GithubActionConfigurationOS ?? null; set => _sourceControlEnvelopeBody.GithubActionConfigurationOS = value; } + + /// Code or Image + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Code or Image")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Code or Image", + SerializedName = @"publishType", + PossibleTypes = new [] { typeof(string) })] + public string GithubActionConfigurationPublishType { get => _sourceControlEnvelopeBody.GithubActionConfigurationPublishType ?? null; set => _sourceControlEnvelopeBody.GithubActionConfigurationPublishType = value; } + + /// Runtime stack + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Runtime stack")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime stack", + SerializedName = @"runtimeStack", + PossibleTypes = new [] { typeof(string) })] + public string GithubActionConfigurationRuntimeStack { get => _sourceControlEnvelopeBody.GithubActionConfigurationRuntimeStack ?? null; set => _sourceControlEnvelopeBody.GithubActionConfigurationRuntimeStack = value; } + + /// Runtime version + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Runtime version")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime version", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(string) })] + public string GithubActionConfigurationRuntimeVersion { get => _sourceControlEnvelopeBody.GithubActionConfigurationRuntimeVersion ?? null; set => _sourceControlEnvelopeBody.GithubActionConfigurationRuntimeVersion = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// registry secret. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "registry secret.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry secret.", + SerializedName = @"registryPassword", + PossibleTypes = new [] { typeof(string) })] + public string RegistryInfoRegistryPassword { get => _sourceControlEnvelopeBody.RegistryInfoRegistryPassword ?? null; set => _sourceControlEnvelopeBody.RegistryInfoRegistryPassword = value; } + + /// registry server Url. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "registry server Url.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry server Url.", + SerializedName = @"registryUrl", + PossibleTypes = new [] { typeof(string) })] + public string RegistryInfoRegistryUrl { get => _sourceControlEnvelopeBody.RegistryInfoRegistryUrl ?? null; set => _sourceControlEnvelopeBody.RegistryInfoRegistryUrl = value; } + + /// registry username. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "registry username.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"registry username.", + SerializedName = @"registryUserName", + PossibleTypes = new [] { typeof(string) })] + public string RegistryInfoRegistryUserName { get => _sourceControlEnvelopeBody.RegistryInfoRegistryUserName ?? null; set => _sourceControlEnvelopeBody.RegistryInfoRegistryUserName = value; } + + /// The repo url which will be integrated to ContainerApp. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The repo url which will be integrated to ContainerApp.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The repo url which will be integrated to ContainerApp.", + SerializedName = @"repoUrl", + PossibleTypes = new [] { typeof(string) })] + public string RepoUrl { get => _sourceControlEnvelopeBody.RepoUrl ?? null; set => _sourceControlEnvelopeBody.RepoUrl = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _sourceControlName; + + /// Name of the Container App SourceControl. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App SourceControl.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App SourceControl.", + SerializedName = @"sourceControlName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SourceControlName { get => this._sourceControlName; set => this._sourceControlName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of NewAzContainerAppsApiContainerAppSourceControl_CreateExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.NewAzContainerAppsApiContainerAppSourceControl_CreateExpanded Clone() + { + var clone = new NewAzContainerAppsApiContainerAppSourceControl_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._sourceControlEnvelopeBody = this._sourceControlEnvelopeBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ContainerAppName = this.ContainerAppName; + clone.SourceControlName = this.SourceControlName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 NewAzContainerAppsApiContainerAppSourceControl_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsSourceControlsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsSourceControlsCreateOrUpdate(SubscriptionId, ResourceGroupName, ContainerAppName, SourceControlName, _sourceControlEnvelopeBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,SourceControlName=SourceControlName,body=_sourceControlEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, SourceControlName=SourceControlName, body=_sourceControlEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName, SourceControlName=SourceControlName, body=_sourceControlEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISourceControl + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiContainerApp_CreateExpanded.cs b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiContainerApp_CreateExpanded.cs new file mode 100644 index 000000000000..bd103c72c4b9 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiContainerApp_CreateExpanded.cs @@ -0,0 +1,911 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Create or update a Container App. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzContainerAppsApiContainerApp_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Create or update a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class NewAzContainerAppsApiContainerApp_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Container App. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp _containerAppEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerApp(); + + /// 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app:Multiple: multiple revisions + /// can be active.Single: Only one revision can be active at a time. Revision weights can not be used in this + /// mode. If no value if provided, this is the default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "ActiveRevisionsMode controls how active revisions are handled for the Container app:Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. Revision weights can not be used in this mode. If no value if provided, this is the default.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ActiveRevisionsMode controls how active revisions are handled for the Container app:Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. Revision weights can not be used in this mode. If no value if provided, this is the default.", + SerializedName = @"activeRevisionsMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode ConfigurationActiveRevisionsMode { get => _containerAppEnvelopeBody.ConfigurationActiveRevisionsMode ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode)""); set => _containerAppEnvelopeBody.ConfigurationActiveRevisionsMode = value; } + + /// Optional. Max inactive revisions a Container App can have. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Optional. Max inactive revisions a Container App can have.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Max inactive revisions a Container App can have.", + SerializedName = @"maxInactiveRevisions", + PossibleTypes = new [] { typeof(int) })] + public int ConfigurationMaxInactiveRevision { get => _containerAppEnvelopeBody.ConfigurationMaxInactiveRevision ?? default(int); set => _containerAppEnvelopeBody.ConfigurationMaxInactiveRevision = value; } + + /// + /// Collection of private container registry credentials for containers used by the Container app + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of private container registry credentials for containers used by the Container app")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of private container registry credentials for containers used by the Container app", + SerializedName = @"registries", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] ConfigurationRegistry { get => _containerAppEnvelopeBody.ConfigurationRegistry ?? null /* arrayOf */; set => _containerAppEnvelopeBody.ConfigurationRegistry = value; } + + /// Collection of secrets used by a Container app + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of secrets used by a Container app")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of secrets used by a Container app", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] ConfigurationSecret { get => _containerAppEnvelopeBody.ConfigurationSecret ?? null /* arrayOf */; set => _containerAppEnvelopeBody.ConfigurationSecret = value; } + + /// Dapr application identifier + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Dapr application identifier")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dapr application identifier", + SerializedName = @"appId", + PossibleTypes = new [] { typeof(string) })] + public string DaprAppId { get => _containerAppEnvelopeBody.DaprAppId ?? null; set => _containerAppEnvelopeBody.DaprAppId = value; } + + /// Tells Dapr which port your application is listening on + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tells Dapr which port your application is listening on")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tells Dapr which port your application is listening on", + SerializedName = @"appPort", + PossibleTypes = new [] { typeof(int) })] + public int DaprAppPort { get => _containerAppEnvelopeBody.DaprAppPort ?? default(int); set => _containerAppEnvelopeBody.DaprAppPort = value; } + + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http", + SerializedName = @"appProtocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol DaprAppProtocol { get => _containerAppEnvelopeBody.DaprAppProtocol ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol)""); set => _containerAppEnvelopeBody.DaprAppProtocol = value; } + + /// Enables API logging for the Dapr sidecar + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Enables API logging for the Dapr sidecar")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enables API logging for the Dapr sidecar", + SerializedName = @"enableApiLogging", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DaprEnableApiLogging { get => _containerAppEnvelopeBody.DaprEnableApiLogging ?? default(global::System.Management.Automation.SwitchParameter); set => _containerAppEnvelopeBody.DaprEnableApiLogging = value; } + + /// Boolean indicating if the Dapr side car is enabled + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Boolean indicating if the Dapr side car is enabled")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean indicating if the Dapr side car is enabled", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DaprEnabled { get => _containerAppEnvelopeBody.DaprEnabled ?? default(global::System.Management.Automation.SwitchParameter); set => _containerAppEnvelopeBody.DaprEnabled = value; } + + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is 4 MB.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is 4 MB.", + SerializedName = @"httpMaxRequestSize", + PossibleTypes = new [] { typeof(int) })] + public int DaprHttpMaxRequestSize { get => _containerAppEnvelopeBody.DaprHttpMaxRequestSize ?? default(int); set => _containerAppEnvelopeBody.DaprHttpMaxRequestSize = value; } + + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB.", + SerializedName = @"httpReadBufferSize", + PossibleTypes = new [] { typeof(int) })] + public int DaprHttpReadBufferSize { get => _containerAppEnvelopeBody.DaprHttpReadBufferSize ?? default(int); set => _containerAppEnvelopeBody.DaprHttpReadBufferSize = value; } + + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info.", + SerializedName = @"logLevel", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel DaprLogLevel { get => _containerAppEnvelopeBody.DaprLogLevel ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel)""); set => _containerAppEnvelopeBody.DaprLogLevel = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Resource ID of environment. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource ID of environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of environment.", + SerializedName = @"environmentId", + PossibleTypes = new [] { typeof(string) })] + public string EnvironmentId { get => _containerAppEnvelopeBody.EnvironmentId ?? null; set => _containerAppEnvelopeBody.EnvironmentId = value; } + + /// The name of the extended location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the extended location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the extended location.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string ExtendedLocationName { get => _containerAppEnvelopeBody.ExtendedLocationName ?? null; set => _containerAppEnvelopeBody.ExtendedLocationName = value; } + + /// The type of the extended location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of the extended location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the extended location.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes ExtendedLocationType { get => _containerAppEnvelopeBody.ExtendedLocationType ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes)""); set => _containerAppEnvelopeBody.ExtendedLocationType = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// + /// Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType IdentityType { get => _containerAppEnvelopeBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType)""); set => _containerAppEnvelopeBody.IdentityType = value; } + + /// + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities IdentityUserAssignedIdentity { get => _containerAppEnvelopeBody.IdentityUserAssignedIdentity ?? null /* object */; set => _containerAppEnvelopeBody.IdentityUserAssignedIdentity = value; } + + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS connections")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS connections", + SerializedName = @"allowInsecure", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter IngressAllowInsecure { get => _containerAppEnvelopeBody.IngressAllowInsecure ?? default(global::System.Management.Automation.SwitchParameter); set => _containerAppEnvelopeBody.IngressAllowInsecure = value; } + + /// custom domain bindings for Container Apps' hostnames. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "custom domain bindings for Container Apps' hostnames.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"custom domain bindings for Container Apps' hostnames.", + SerializedName = @"customDomains", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] IngressCustomDomain { get => _containerAppEnvelopeBody.IngressCustomDomain ?? null /* arrayOf */; set => _containerAppEnvelopeBody.IngressCustomDomain = value; } + + /// Exposed Port in containers for TCP traffic from ingress + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Exposed Port in containers for TCP traffic from ingress")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Exposed Port in containers for TCP traffic from ingress", + SerializedName = @"exposedPort", + PossibleTypes = new [] { typeof(int) })] + public int IngressExposedPort { get => _containerAppEnvelopeBody.IngressExposedPort ?? default(int); set => _containerAppEnvelopeBody.IngressExposedPort = value; } + + /// Bool indicating if app exposes an external http endpoint + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Bool indicating if app exposes an external http endpoint")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Bool indicating if app exposes an external http endpoint", + SerializedName = @"external", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter IngressExternal { get => _containerAppEnvelopeBody.IngressExternal ?? default(global::System.Management.Automation.SwitchParameter); set => _containerAppEnvelopeBody.IngressExternal = value; } + + /// Rules to restrict incoming IP address. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Rules to restrict incoming IP address.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Rules to restrict incoming IP address.", + SerializedName = @"ipSecurityRestrictions", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IngressIPSecurityRestriction { get => _containerAppEnvelopeBody.IngressIPSecurityRestriction ?? null /* arrayOf */; set => _containerAppEnvelopeBody.IngressIPSecurityRestriction = value; } + + /// Target Port in containers for traffic from ingress + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Target Port in containers for traffic from ingress")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Target Port in containers for traffic from ingress", + SerializedName = @"targetPort", + PossibleTypes = new [] { typeof(int) })] + public int IngressTargetPort { get => _containerAppEnvelopeBody.IngressTargetPort ?? default(int); set => _containerAppEnvelopeBody.IngressTargetPort = value; } + + /// Traffic weights for app's revisions + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Traffic weights for app's revisions")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Traffic weights for app's revisions", + SerializedName = @"traffic", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] IngressTraffic { get => _containerAppEnvelopeBody.IngressTraffic ?? null /* arrayOf */; set => _containerAppEnvelopeBody.IngressTraffic = value; } + + /// Ingress transport protocol + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Ingress transport protocol")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress transport protocol", + SerializedName = @"transport", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod IngressTransport { get => _containerAppEnvelopeBody.IngressTransport ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod)""); set => _containerAppEnvelopeBody.IngressTransport = 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 where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _containerAppEnvelopeBody.Location ?? null; set => _containerAppEnvelopeBody.Location = value; } + + /// Deprecated. Resource ID of the Container App's environment. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Deprecated. Resource ID of the Container App's environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Deprecated. Resource ID of the Container App's environment.", + SerializedName = @"managedEnvironmentId", + PossibleTypes = new [] { typeof(string) })] + public string ManagedEnvironmentId { get => _containerAppEnvelopeBody.ManagedEnvironmentId ?? null; set => _containerAppEnvelopeBody.ManagedEnvironmentId = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ContainerAppName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Optional. Maximum number of container replicas. Defaults to 10 if not set.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Maximum number of container replicas. Defaults to 10 if not set.", + SerializedName = @"maxReplicas", + PossibleTypes = new [] { typeof(int) })] + public int ScaleMaxReplica { get => _containerAppEnvelopeBody.ScaleMaxReplica ?? default(int); set => _containerAppEnvelopeBody.ScaleMaxReplica = value; } + + /// Optional. Minimum number of container replicas. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Optional. Minimum number of container replicas.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Minimum number of container replicas.", + SerializedName = @"minReplicas", + PossibleTypes = new [] { typeof(int) })] + public int ScaleMinReplica { get => _containerAppEnvelopeBody.ScaleMinReplica ?? default(int); set => _containerAppEnvelopeBody.ScaleMinReplica = value; } + + /// Scaling rules. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Scaling rules.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Scaling rules.", + SerializedName = @"rules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get => _containerAppEnvelopeBody.ScaleRule ?? null /* arrayOf */; set => _containerAppEnvelopeBody.ScaleRule = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => _containerAppEnvelopeBody.Tag ?? null /* object */; set => _containerAppEnvelopeBody.Tag = value; } + + /// List of container definitions for the Container App. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of container definitions for the Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of container definitions for the Container App.", + SerializedName = @"containers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get => _containerAppEnvelopeBody.TemplateContainer ?? null /* arrayOf */; set => _containerAppEnvelopeBody.TemplateContainer = value; } + + /// List of specialized containers that run before app containers. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of specialized containers that run before app containers.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of specialized containers that run before app containers.", + SerializedName = @"initContainers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get => _containerAppEnvelopeBody.TemplateInitContainer ?? null /* arrayOf */; set => _containerAppEnvelopeBody.TemplateInitContainer = value; } + + /// User friendly suffix that is appended to the revision name + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "User friendly suffix that is appended to the revision name")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly suffix that is appended to the revision name", + SerializedName = @"revisionSuffix", + PossibleTypes = new [] { typeof(string) })] + public string TemplateRevisionSuffix { get => _containerAppEnvelopeBody.TemplateRevisionSuffix ?? null; set => _containerAppEnvelopeBody.TemplateRevisionSuffix = value; } + + /// List of volume definitions for the Container App. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of volume definitions for the Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of volume definitions for the Container App.", + SerializedName = @"volumes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get => _containerAppEnvelopeBody.TemplateVolume ?? null /* arrayOf */; set => _containerAppEnvelopeBody.TemplateVolume = value; } + + /// Workload profile type to pin for container app execution. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Workload profile type to pin for container app execution.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Workload profile type to pin for container app execution.", + SerializedName = @"workloadProfileType", + PossibleTypes = new [] { typeof(string) })] + public string WorkloadProfileType { get => _containerAppEnvelopeBody.WorkloadProfileType ?? null; set => _containerAppEnvelopeBody.WorkloadProfileType = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzContainerAppsApiContainerApp_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.NewAzContainerAppsApiContainerApp_CreateExpanded Clone() + { + var clone = new NewAzContainerAppsApiContainerApp_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._containerAppEnvelopeBody = this._containerAppEnvelopeBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 NewAzContainerAppsApiContainerApp_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsCreateOrUpdate(SubscriptionId, ResourceGroupName, Name, _containerAppEnvelopeBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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=_containerAppEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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=_containerAppEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=_containerAppEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiDaprComponent_CreateExpanded.cs b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiDaprComponent_CreateExpanded.cs new file mode 100644 index 000000000000..67374485e688 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiDaprComponent_CreateExpanded.cs @@ -0,0 +1,511 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Creates or updates a Dapr Component in a Managed Environment. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/daprComponents/{componentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzContainerAppsApiDaprComponent_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Creates or updates a Dapr Component in a Managed Environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class NewAzContainerAppsApiDaprComponent_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Dapr Component. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent _daprComponentEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.DaprComponent(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _componentName; + + /// Name of the Dapr Component. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Dapr Component.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Dapr Component.", + SerializedName = @"componentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ComponentName { get => this._componentName; set => this._componentName = value; } + + /// Component type + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Component type")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Component type", + SerializedName = @"componentType", + PossibleTypes = new [] { typeof(string) })] + public string ComponentType { get => _daprComponentEnvelopeBody.ComponentType ?? null; set => _daprComponentEnvelopeBody.ComponentType = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Boolean describing if the component errors are ignores + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Boolean describing if the component errors are ignores")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean describing if the component errors are ignores", + SerializedName = @"ignoreErrors", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter IgnoreError { get => _daprComponentEnvelopeBody.IgnoreError ?? default(global::System.Management.Automation.SwitchParameter); set => _daprComponentEnvelopeBody.IgnoreError = value; } + + /// Initialization timeout + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Initialization timeout")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Initialization timeout", + SerializedName = @"initTimeout", + PossibleTypes = new [] { typeof(string) })] + public string InitTimeout { get => _daprComponentEnvelopeBody.InitTimeout ?? null; set => _daprComponentEnvelopeBody.InitTimeout = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Component metadata + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Component metadata")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Component metadata", + SerializedName = @"metadata", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprMetadata[] Metadata { get => _daprComponentEnvelopeBody.Metadata ?? null /* arrayOf */; set => _daprComponentEnvelopeBody.Metadata = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Names of container apps that can use this Dapr component + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Names of container apps that can use this Dapr component")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Names of container apps that can use this Dapr component", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + public string[] Scope { get => _daprComponentEnvelopeBody.Scope ?? null /* arrayOf */; set => _daprComponentEnvelopeBody.Scope = value; } + + /// Collection of secrets used by a Dapr component + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of secrets used by a Dapr component")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of secrets used by a Dapr component", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] Secret { get => _daprComponentEnvelopeBody.Secret ?? null /* arrayOf */; set => _daprComponentEnvelopeBody.Secret = value; } + + /// Name of a Dapr component to retrieve component secrets from + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of a Dapr component to retrieve component secrets from")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a Dapr component to retrieve component secrets from", + SerializedName = @"secretStoreComponent", + PossibleTypes = new [] { typeof(string) })] + public string SecretStoreComponent { get => _daprComponentEnvelopeBody.SecretStoreComponent ?? null; set => _daprComponentEnvelopeBody.SecretStoreComponent = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Component version + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Component version")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Component version", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + public string Version { get => _daprComponentEnvelopeBody.Version ?? null; set => _daprComponentEnvelopeBody.Version = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 NewAzContainerAppsApiDaprComponent_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DaprComponentsCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DaprComponentsCreateOrUpdate(SubscriptionId, ResourceGroupName, EnvironmentName, ComponentName, _daprComponentEnvelopeBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,ComponentName=ComponentName,body=_daprComponentEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, ComponentName=ComponentName, body=_daprComponentEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, ComponentName=ComponentName, body=_daprComponentEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDaprComponent + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiManagedCertificate_CreateExpanded.cs b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiManagedCertificate_CreateExpanded.cs new file mode 100644 index 000000000000..f8694690b021 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiManagedCertificate_CreateExpanded.cs @@ -0,0 +1,578 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Create or Update a Managed Certificate. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/managedCertificates/{managedCertificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzContainerAppsApiManagedCertificate_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Create or Update a Managed Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class NewAzContainerAppsApiManagedCertificate_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// + /// Managed certificates used for Custom Domain bindings of Container Apps in a Managed Environment + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate _managedCertificateEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificate(); + + /// 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Selected type of domain control validation for managed certificates. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Selected type of domain control validation for managed certificates.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Selected type of domain control validation for managed certificates.", + SerializedName = @"domainControlValidation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation DomainControlValidation { get => _managedCertificateEnvelopeBody.DomainControlValidation ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedCertificateDomainControlValidation)""); set => _managedCertificateEnvelopeBody.DomainControlValidation = value; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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 where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _managedCertificateEnvelopeBody.Location ?? null; set => _managedCertificateEnvelopeBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the Managed Certificate. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Certificate.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Certificate.", + SerializedName = @"managedCertificateName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ManagedCertificateName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Subject name of the certificate. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Subject name of the certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Subject name of the certificate.", + SerializedName = @"subjectName", + PossibleTypes = new [] { typeof(string) })] + public string SubjectName { get => _managedCertificateEnvelopeBody.SubjectName ?? null; set => _managedCertificateEnvelopeBody.SubjectName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => _managedCertificateEnvelopeBody.Tag ?? null /* object */; set => _managedCertificateEnvelopeBody.Tag = value; } + + /// + /// overrideOnBadRequest will be called before the regular onBadRequest has been processed, allowing customization + /// of what happens on 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 onBadRequest method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnBadRequest(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzContainerAppsApiManagedCertificate_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.NewAzContainerAppsApiManagedCertificate_CreateExpanded Clone() + { + var clone = new NewAzContainerAppsApiManagedCertificate_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._managedCertificateEnvelopeBody = this._managedCertificateEnvelopeBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.EnvironmentName = this.EnvironmentName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 NewAzContainerAppsApiManagedCertificate_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedCertificatesCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedCertificatesCreateOrUpdate(SubscriptionId, ResourceGroupName, EnvironmentName, Name, _managedCertificateEnvelopeBody, onOk, onBadRequest, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,Name=Name,body=_managedCertificateEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 400 (BadRequest). + /// 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 onBadRequest(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnBadRequest(responseMessage, ref _returnNow); + // if overrideOnBadRequest has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onBadRequest - response for 400 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, Name=Name, body=_managedCertificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, Name=Name, body=_managedCertificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiManagedEnvironmentStorage_CreateExpanded.cs b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiManagedEnvironmentStorage_CreateExpanded.cs new file mode 100644 index 000000000000..927bf5e8f705 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiManagedEnvironmentStorage_CreateExpanded.cs @@ -0,0 +1,465 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Create or update storage for a managedEnvironment. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzContainerAppsApiManagedEnvironmentStorage_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Create or update storage for a managedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class NewAzContainerAppsApiManagedEnvironmentStorage_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Storage resource for managedEnvironment. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage _storageEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironmentStorage(); + + /// Access mode for storage + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Access mode for storage")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Access mode for storage", + SerializedName = @"accessMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode AzureFileAccessMode { get => _storageEnvelopeBody.AzureFileAccessMode ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AccessMode)""); set => _storageEnvelopeBody.AzureFileAccessMode = value; } + + /// Storage account key for azure file. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Storage account key for azure file.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage account key for azure file.", + SerializedName = @"accountKey", + PossibleTypes = new [] { typeof(string) })] + public string AzureFileAccountKey { get => _storageEnvelopeBody.AzureFileAccountKey ?? null; set => _storageEnvelopeBody.AzureFileAccountKey = value; } + + /// Storage account name for azure file. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Storage account name for azure file.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage account name for azure file.", + SerializedName = @"accountName", + PossibleTypes = new [] { typeof(string) })] + public string AzureFileAccountName { get => _storageEnvelopeBody.AzureFileAccountName ?? null; set => _storageEnvelopeBody.AzureFileAccountName = value; } + + /// Azure file share name. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure file share name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure file share name.", + SerializedName = @"shareName", + PossibleTypes = new [] { typeof(string) })] + public string AzureFileShareName { get => _storageEnvelopeBody.AzureFileShareName ?? null; set => _storageEnvelopeBody.AzureFileShareName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _storageName; + + /// Name of the storage. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the storage.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the storage.", + SerializedName = @"storageName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string StorageName { get => this._storageName; set => this._storageName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 NewAzContainerAppsApiManagedEnvironmentStorage_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedEnvironmentsStoragesCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsStoragesCreateOrUpdate(SubscriptionId, ResourceGroupName, EnvironmentName, StorageName, _storageEnvelopeBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,StorageName=StorageName,body=_storageEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, StorageName=StorageName, body=_storageEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, StorageName=StorageName, body=_storageEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironmentStorage + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiManagedEnvironment_CreateExpanded.cs b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiManagedEnvironment_CreateExpanded.cs new file mode 100644 index 000000000000..39eef312400c --- /dev/null +++ b/swaggerci/app/generated/cmdlets/NewAzContainerAppsApiManagedEnvironment_CreateExpanded.cs @@ -0,0 +1,754 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Creates or updates a Managed Environment used to host container apps. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzContainerAppsApiManagedEnvironment_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Creates or updates a Managed Environment used to host container apps.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class NewAzContainerAppsApiManagedEnvironment_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// An environment for hosting container apps + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment _environmentEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironment(); + + /// Logs destination + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Logs destination")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Logs destination", + SerializedName = @"destination", + PossibleTypes = new [] { typeof(string) })] + public string AppLogConfigurationDestination { get => _environmentEnvelopeBody.AppLogConfigurationDestination ?? null; set => _environmentEnvelopeBody.AppLogConfigurationDestination = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Certificate password + internal byte[] CustomDomainConfigurationCertificatePassword { get => _environmentEnvelopeBody.CustomDomainConfigurationCertificatePassword ?? null /* byte array */; set => _environmentEnvelopeBody.CustomDomainConfigurationCertificatePassword = value; } + + /// + /// Input File for CustomDomainConfigurationCertificatePassword (Certificate password) + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Input File for CustomDomainConfigurationCertificatePassword (Certificate password)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + public string CustomDomainConfigurationCertificatePasswordInputFile + { + set + { + var paths = this.SessionState.Path.GetResolvedProviderPathFromPSPath(value, out var provider); + if (provider.Name != "FileSystem" || paths.Count == 0) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Invalid input path."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + if (paths.Count > 1) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Multiple input paths not allowed."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + CustomDomainConfigurationCertificatePassword = global::System.IO.File.ReadAllBytes(paths[0]); + } + } + + /// PFX or PEM blob + internal byte[] CustomDomainConfigurationCertificateValue { get => _environmentEnvelopeBody.CustomDomainConfigurationCertificateValue ?? null /* byte array */; set => _environmentEnvelopeBody.CustomDomainConfigurationCertificateValue = value; } + + /// Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob) + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + public string CustomDomainConfigurationCertificateValueInputFile + { + set + { + var paths = this.SessionState.Path.GetResolvedProviderPathFromPSPath(value, out var provider); + if (provider.Name != "FileSystem" || paths.Count == 0) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Invalid input path."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + if (paths.Count > 1) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Multiple input paths not allowed."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + CustomDomainConfigurationCertificateValue = global::System.IO.File.ReadAllBytes(paths[0]); + } + } + + /// Dns suffix for the environment domain + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Dns suffix for the environment domain")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dns suffix for the environment domain", + SerializedName = @"dnsSuffix", + PossibleTypes = new [] { typeof(string) })] + public string CustomDomainConfigurationDnsSuffix { get => _environmentEnvelopeBody.CustomDomainConfigurationDnsSuffix ?? null; set => _environmentEnvelopeBody.CustomDomainConfigurationDnsSuffix = value; } + + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Application Insights connection string used by Dapr to export Service to Service communication telemetry")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application Insights connection string used by Dapr to export Service to Service communication telemetry", + SerializedName = @"daprAIConnectionString", + PossibleTypes = new [] { typeof(string) })] + public string DaprAiConnectionString { get => _environmentEnvelopeBody.DaprAiConnectionString ?? null; set => _environmentEnvelopeBody.DaprAiConnectionString = value; } + + /// + /// Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry", + SerializedName = @"daprAIInstrumentationKey", + PossibleTypes = new [] { typeof(string) })] + public string DaprAiInstrumentationKey { get => _environmentEnvelopeBody.DaprAiInstrumentationKey ?? null; set => _environmentEnvelopeBody.DaprAiInstrumentationKey = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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 where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _environmentEnvelopeBody.Location ?? null; set => _environmentEnvelopeBody.Location = value; } + + /// Log analytics customer id + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Log analytics customer id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log analytics customer id", + SerializedName = @"customerId", + PossibleTypes = new [] { typeof(string) })] + public string LogAnalyticConfigurationCustomerId { get => _environmentEnvelopeBody.LogAnalyticConfigurationCustomerId ?? null; set => _environmentEnvelopeBody.LogAnalyticConfigurationCustomerId = value; } + + /// Log analytics customer key + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Log analytics customer key")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log analytics customer key", + SerializedName = @"sharedKey", + PossibleTypes = new [] { typeof(string) })] + public string LogAnalyticConfigurationSharedKey { get => _environmentEnvelopeBody.LogAnalyticConfigurationSharedKey ?? null; set => _environmentEnvelopeBody.LogAnalyticConfigurationSharedKey = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Outbound type for the cluster + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Outbound type for the cluster")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Outbound type for the cluster", + SerializedName = @"outBoundType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType OutboundSettingOutBoundType { get => _environmentEnvelopeBody.OutboundSettingOutBoundType ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType)""); set => _environmentEnvelopeBody.OutboundSettingOutBoundType = value; } + + /// Virtual Appliance IP used as the Egress controller for the Environment + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Virtual Appliance IP used as the Egress controller for the Environment")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Virtual Appliance IP used as the Egress controller for the Environment", + SerializedName = @"virtualNetworkApplianceIp", + PossibleTypes = new [] { typeof(string) })] + public string OutboundSettingVirtualNetworkApplianceIP { get => _environmentEnvelopeBody.OutboundSettingVirtualNetworkApplianceIP ?? null; set => _environmentEnvelopeBody.OutboundSettingVirtualNetworkApplianceIP = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Name of the Sku. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the Sku.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName SkuName { get => _environmentEnvelopeBody.SkuName ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName)""); set => _environmentEnvelopeBody.SkuName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => _environmentEnvelopeBody.Tag ?? null /* object */; set => _environmentEnvelopeBody.Tag = value; } + + /// + /// CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges.", + SerializedName = @"dockerBridgeCidr", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationDockerBridgeCidr { get => _environmentEnvelopeBody.VnetConfigurationDockerBridgeCidr ?? null; set => _environmentEnvelopeBody.VnetConfigurationDockerBridgeCidr = value; } + + /// + /// Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + /// Must not overlap with any other provided IP ranges. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. Must not overlap with any other provided IP ranges.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. Must not overlap with any other provided IP ranges.", + SerializedName = @"infrastructureSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationInfrastructureSubnetId { get => _environmentEnvelopeBody.VnetConfigurationInfrastructureSubnetId ?? null; set => _environmentEnvelopeBody.VnetConfigurationInfrastructureSubnetId = value; } + + /// + /// Boolean indicating the environment only has an internal load balancer. These environments do not have a public static + /// IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Boolean indicating the environment only has an internal load balancer. These environments do not have a public static IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean indicating the environment only has an internal load balancer. These environments do not have a public static IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property", + SerializedName = @"internal", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter VnetConfigurationInternal { get => _environmentEnvelopeBody.VnetConfigurationInternal ?? default(global::System.Management.Automation.SwitchParameter); set => _environmentEnvelopeBody.VnetConfigurationInternal = value; } + + /// + /// IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any + /// other provided IP ranges. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any other provided IP ranges.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any other provided IP ranges.", + SerializedName = @"platformReservedCidr", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationPlatformReservedCidr { get => _environmentEnvelopeBody.VnetConfigurationPlatformReservedCidr ?? null; set => _environmentEnvelopeBody.VnetConfigurationPlatformReservedCidr = value; } + + /// + /// An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = " An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @" An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server.", + SerializedName = @"platformReservedDnsIP", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationPlatformReservedDnsIP { get => _environmentEnvelopeBody.VnetConfigurationPlatformReservedDnsIP ?? null; set => _environmentEnvelopeBody.VnetConfigurationPlatformReservedDnsIP = value; } + + /// + /// Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet + /// defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges.", + SerializedName = @"runtimeSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationRuntimeSubnetId { get => _environmentEnvelopeBody.VnetConfigurationRuntimeSubnetId ?? null; set => _environmentEnvelopeBody.VnetConfigurationRuntimeSubnetId = value; } + + /// Workload profiles configured for the Managed Environment. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Workload profiles configured for the Managed Environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Workload profiles configured for the Managed Environment.", + SerializedName = @"workloadProfiles", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[] WorkloadProfile { get => _environmentEnvelopeBody.WorkloadProfile ?? null /* arrayOf */; set => _environmentEnvelopeBody.WorkloadProfile = value; } + + /// Whether or not this Managed Environment is zone-redundant. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Whether or not this Managed Environment is zone-redundant.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether or not this Managed Environment is zone-redundant.", + SerializedName = @"zoneRedundant", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ZoneRedundant { get => _environmentEnvelopeBody.ZoneRedundant ?? default(global::System.Management.Automation.SwitchParameter); set => _environmentEnvelopeBody.ZoneRedundant = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzContainerAppsApiManagedEnvironment_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.NewAzContainerAppsApiManagedEnvironment_CreateExpanded Clone() + { + var clone = new NewAzContainerAppsApiManagedEnvironment_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._environmentEnvelopeBody = this._environmentEnvelopeBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.EnvironmentName = this.EnvironmentName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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 NewAzContainerAppsApiManagedEnvironment_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedEnvironmentsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsCreateOrUpdate(SubscriptionId, ResourceGroupName, EnvironmentName, _environmentEnvelopeBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,body=_environmentEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, body=_environmentEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, body=_environmentEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiCertificate_Delete.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiCertificate_Delete.cs new file mode 100644 index 000000000000..c84d51781d5d --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiCertificate_Delete.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Deletes the specified Certificate. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiCertificate_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Deletes the specified Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiCertificate_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the Certificate. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Certificate.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Certificate.", + SerializedName = @"certificateName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("CertificateName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CertificatesDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CertificatesDelete(SubscriptionId, ResourceGroupName, EnvironmentName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiCertificate_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, 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, EnvironmentName=EnvironmentName, 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/app/generated/cmdlets/RemoveAzContainerAppsApiCertificate_DeleteViaIdentity.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiCertificate_DeleteViaIdentity.cs new file mode 100644 index 000000000000..2e746964ecf8 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiCertificate_DeleteViaIdentity.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Deletes the specified Certificate. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiCertificate_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Deletes the specified Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiCertificate_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CertificatesDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),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.EnvironmentName ?? null, InputObject.CertificateName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiCertificate_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironment_Delete.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironment_Delete.cs new file mode 100644 index 000000000000..e965b69839ca --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironment_Delete.cs @@ -0,0 +1,509 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete an connectedEnvironment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiConnectedEnvironment_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete an connectedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiConnectedEnvironment_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the connectedEnvironment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the connectedEnvironment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the connectedEnvironment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ConnectedEnvironmentName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzContainerAppsApiConnectedEnvironment_Delete + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.RemoveAzContainerAppsApiConnectedEnvironment_Delete Clone() + { + var clone = new RemoveAzContainerAppsApiConnectedEnvironment_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsDelete(SubscriptionId, ResourceGroupName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiConnectedEnvironment_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironment_DeleteViaIdentity.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironment_DeleteViaIdentity.cs new file mode 100644 index 000000000000..c7d4ed846c47 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironment_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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete an connectedEnvironment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiConnectedEnvironment_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete an connectedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiConnectedEnvironment_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzContainerAppsApiConnectedEnvironment_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.RemoveAzContainerAppsApiConnectedEnvironment_DeleteViaIdentity Clone() + { + var clone = new RemoveAzContainerAppsApiConnectedEnvironment_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConnectedEnvironmentsDeleteViaIdentity(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.ConnectedEnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConnectedEnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConnectedEnvironmentsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ConnectedEnvironmentName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public RemoveAzContainerAppsApiConnectedEnvironment_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsCertificate_Delete.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsCertificate_Delete.cs new file mode 100644 index 000000000000..5459050281c4 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsCertificate_Delete.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Deletes the specified Certificate. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiConnectedEnvironmentsCertificate_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Deletes the specified Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiConnectedEnvironmentsCertificate_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _certificateName; + + /// Name of the Certificate. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Certificate.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Certificate.", + SerializedName = @"certificateName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string CertificateName { get => this._certificateName; set => this._certificateName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the Connected Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Connected Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Connected Environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsCertificatesDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsCertificatesDelete(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, CertificateName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName,CertificateName=CertificateName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public RemoveAzContainerAppsApiConnectedEnvironmentsCertificate_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName, CertificateName=CertificateName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName, CertificateName=CertificateName }) + { + 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/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsCertificate_DeleteViaIdentity.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsCertificate_DeleteViaIdentity.cs new file mode 100644 index 000000000000..95fe40a20aa9 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsCertificate_DeleteViaIdentity.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Deletes the specified Certificate. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiConnectedEnvironmentsCertificate_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Deletes the specified Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiConnectedEnvironmentsCertificate_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsCertificatesDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConnectedEnvironmentsCertificatesDeleteViaIdentity(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.ConnectedEnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConnectedEnvironmentName"),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.ConnectedEnvironmentsCertificatesDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ConnectedEnvironmentName ?? null, InputObject.CertificateName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiConnectedEnvironmentsCertificate_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsDaprComponent_Delete.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsDaprComponent_Delete.cs new file mode 100644 index 000000000000..210e4b2c67f9 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsDaprComponent_Delete.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete a Dapr Component from a connected environment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/daprComponents/{componentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiConnectedEnvironmentsDaprComponent_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete a Dapr Component from a connected environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiConnectedEnvironmentsDaprComponent_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _componentName; + + /// Name of the Dapr Component. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Dapr Component.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Dapr Component.", + SerializedName = @"componentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ComponentName { get => this._componentName; set => this._componentName = value; } + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the connected environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the connected environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the connected environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsDaprComponentsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsDaprComponentsDelete(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, ComponentName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName,ComponentName=ComponentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public RemoveAzContainerAppsApiConnectedEnvironmentsDaprComponent_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName, ComponentName=ComponentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName, ComponentName=ComponentName }) + { + 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/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsDaprComponent_DeleteViaIdentity.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsDaprComponent_DeleteViaIdentity.cs new file mode 100644 index 000000000000..6f3c0c8d1c4b --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsDaprComponent_DeleteViaIdentity.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete a Dapr Component from a connected environment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/daprComponents/{componentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiConnectedEnvironmentsDaprComponent_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete a Dapr Component from a connected environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiConnectedEnvironmentsDaprComponent_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsDaprComponentsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConnectedEnvironmentsDaprComponentsDeleteViaIdentity(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.ConnectedEnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConnectedEnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ComponentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ComponentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConnectedEnvironmentsDaprComponentsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ConnectedEnvironmentName ?? null, InputObject.ComponentName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiConnectedEnvironmentsDaprComponent_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsStorage_Delete.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsStorage_Delete.cs new file mode 100644 index 000000000000..83eec78fdbb8 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsStorage_Delete.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete storage for a connectedEnvironment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiConnectedEnvironmentsStorage_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete storage for a connectedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiConnectedEnvironmentsStorage_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _storageName; + + /// Name of the storage. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the storage.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the storage.", + SerializedName = @"storageName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string StorageName { get => this._storageName; set => this._storageName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsStoragesDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsStoragesDelete(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, StorageName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName,StorageName=StorageName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiConnectedEnvironmentsStorage_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName, StorageName=StorageName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName, StorageName=StorageName }) + { + 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/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsStorage_DeleteViaIdentity.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsStorage_DeleteViaIdentity.cs new file mode 100644 index 000000000000..51b4a9d5e7f8 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiConnectedEnvironmentsStorage_DeleteViaIdentity.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete storage for a connectedEnvironment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiConnectedEnvironmentsStorage_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete storage for a connectedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiConnectedEnvironmentsStorage_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsStoragesDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConnectedEnvironmentsStoragesDeleteViaIdentity(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.ConnectedEnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConnectedEnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.StorageName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.StorageName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConnectedEnvironmentsStoragesDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ConnectedEnvironmentName ?? null, InputObject.StorageName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public RemoveAzContainerAppsApiConnectedEnvironmentsStorage_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/RemoveAzContainerAppsApiContainerApp_Delete.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerApp_Delete.cs new file mode 100644 index 000000000000..a6526ae0eff6 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerApp_Delete.cs @@ -0,0 +1,509 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete a Container App. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiContainerApp_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiContainerApp_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ContainerAppName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzContainerAppsApiContainerApp_Delete + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.RemoveAzContainerAppsApiContainerApp_Delete Clone() + { + var clone = new RemoveAzContainerAppsApiContainerApp_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsDelete(SubscriptionId, ResourceGroupName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiContainerApp_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerApp_DeleteViaIdentity.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerApp_DeleteViaIdentity.cs new file mode 100644 index 000000000000..3128f3474093 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerApp_DeleteViaIdentity.cs @@ -0,0 +1,487 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete a Container App. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiContainerApp_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete a Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiContainerApp_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzContainerAppsApiContainerApp_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.RemoveAzContainerAppsApiContainerApp_DeleteViaIdentity Clone() + { + var clone = new RemoveAzContainerAppsApiContainerApp_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsDeleteViaIdentity(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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiContainerApp_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsAuthConfig_Delete.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsAuthConfig_Delete.cs new file mode 100644 index 000000000000..6519a9101f9d --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsAuthConfig_Delete.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete a Container App AuthConfig. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/authConfigs/{authConfigName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiContainerAppsAuthConfig_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete a Container App AuthConfig.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiContainerAppsAuthConfig_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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 _authConfigName; + + /// Name of the Container App AuthConfig. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App AuthConfig.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App AuthConfig.", + SerializedName = @"authConfigName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string AuthConfigName { get => this._authConfigName; set => this._authConfigName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsAuthConfigsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsAuthConfigsDelete(SubscriptionId, ResourceGroupName, ContainerAppName, AuthConfigName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,AuthConfigName=AuthConfigName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiContainerAppsAuthConfig_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, AuthConfigName=AuthConfigName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName, AuthConfigName=AuthConfigName }) + { + 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/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsAuthConfig_DeleteViaIdentity.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsAuthConfig_DeleteViaIdentity.cs new file mode 100644 index 000000000000..efe09474a547 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsAuthConfig_DeleteViaIdentity.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete a Container App AuthConfig. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/authConfigs/{authConfigName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiContainerAppsAuthConfig_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete a Container App AuthConfig.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiContainerAppsAuthConfig_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsAuthConfigsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsAuthConfigsDeleteViaIdentity(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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AuthConfigName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AuthConfigName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsAuthConfigsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, InputObject.AuthConfigName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public RemoveAzContainerAppsApiContainerAppsAuthConfig_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsSourceControl_Delete.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsSourceControl_Delete.cs new file mode 100644 index 000000000000..a6728e1907ec --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsSourceControl_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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete a Container App SourceControl. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/sourcecontrols/{sourceControlName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiContainerAppsSourceControl_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete a Container App SourceControl.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiContainerAppsSourceControl_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _sourceControlName; + + /// Name of the Container App SourceControl. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App SourceControl.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App SourceControl.", + SerializedName = @"sourceControlName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SourceControlName { get => this._sourceControlName; set => this._sourceControlName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzContainerAppsApiContainerAppsSourceControl_Delete + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.RemoveAzContainerAppsApiContainerAppsSourceControl_Delete Clone() + { + var clone = new RemoveAzContainerAppsApiContainerAppsSourceControl_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.ContainerAppName = this.ContainerAppName; + clone.SourceControlName = this.SourceControlName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsSourceControlsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsSourceControlsDelete(SubscriptionId, ResourceGroupName, ContainerAppName, SourceControlName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,SourceControlName=SourceControlName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiContainerAppsSourceControl_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, SourceControlName=SourceControlName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName, SourceControlName=SourceControlName }) + { + 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/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsSourceControl_DeleteViaIdentity.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsSourceControl_DeleteViaIdentity.cs new file mode 100644 index 000000000000..ce06e64ee112 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiContainerAppsSourceControl_DeleteViaIdentity.cs @@ -0,0 +1,494 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete a Container App SourceControl. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/sourcecontrols/{sourceControlName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiContainerAppsSourceControl_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete a Container App SourceControl.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiContainerAppsSourceControl_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzContainerAppsApiContainerAppsSourceControl_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.RemoveAzContainerAppsApiContainerAppsSourceControl_DeleteViaIdentity Clone() + { + var clone = new RemoveAzContainerAppsApiContainerAppsSourceControl_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsSourceControlsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsSourceControlsDeleteViaIdentity(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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SourceControlName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SourceControlName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsSourceControlsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, InputObject.SourceControlName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public RemoveAzContainerAppsApiContainerAppsSourceControl_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/RemoveAzContainerAppsApiDaprComponent_Delete.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiDaprComponent_Delete.cs new file mode 100644 index 000000000000..0ff2995aedb4 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiDaprComponent_Delete.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete a Dapr Component from a Managed Environment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/daprComponents/{componentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiDaprComponent_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete a Dapr Component from a Managed Environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiDaprComponent_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _componentName; + + /// Name of the Dapr Component. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Dapr Component.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Dapr Component.", + SerializedName = @"componentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ComponentName { get => this._componentName; set => this._componentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DaprComponentsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DaprComponentsDelete(SubscriptionId, ResourceGroupName, EnvironmentName, ComponentName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,ComponentName=ComponentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiDaprComponent_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, ComponentName=ComponentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, ComponentName=ComponentName }) + { + 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/app/generated/cmdlets/RemoveAzContainerAppsApiDaprComponent_DeleteViaIdentity.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiDaprComponent_DeleteViaIdentity.cs new file mode 100644 index 000000000000..622542881b53 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiDaprComponent_DeleteViaIdentity.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete a Dapr Component from a Managed Environment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/daprComponents/{componentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiDaprComponent_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete a Dapr Component from a Managed Environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiDaprComponent_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DaprComponentsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DaprComponentsDeleteViaIdentity(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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ComponentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ComponentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DaprComponentsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, InputObject.ComponentName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiDaprComponent_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/RemoveAzContainerAppsApiManagedCertificate_Delete.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedCertificate_Delete.cs new file mode 100644 index 000000000000..03dfe74c5788 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedCertificate_Delete.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Deletes the specified Managed Certificate. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/managedCertificates/{managedCertificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiManagedCertificate_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Deletes the specified Managed Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiManagedCertificate_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the Managed Certificate. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Certificate.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Certificate.", + SerializedName = @"managedCertificateName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ManagedCertificateName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedCertificatesDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedCertificatesDelete(SubscriptionId, ResourceGroupName, EnvironmentName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiManagedCertificate_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, 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, EnvironmentName=EnvironmentName, 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/app/generated/cmdlets/RemoveAzContainerAppsApiManagedCertificate_DeleteViaIdentity.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedCertificate_DeleteViaIdentity.cs new file mode 100644 index 000000000000..e182794d3802 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedCertificate_DeleteViaIdentity.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Deletes the specified Managed Certificate. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/managedCertificates/{managedCertificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiManagedCertificate_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Deletes the specified Managed Certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiManagedCertificate_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedCertificatesDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedCertificatesDeleteViaIdentity(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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ManagedCertificateName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ManagedCertificateName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedCertificatesDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, InputObject.ManagedCertificateName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiManagedCertificate_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironment_Delete.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironment_Delete.cs new file mode 100644 index 000000000000..ca6262b3f0ba --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironment_Delete.cs @@ -0,0 +1,508 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete a Managed Environment if it does not have any container apps. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiManagedEnvironment_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete a Managed Environment if it does not have any container apps.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiManagedEnvironment_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzContainerAppsApiManagedEnvironment_Delete + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.RemoveAzContainerAppsApiManagedEnvironment_Delete Clone() + { + var clone = new RemoveAzContainerAppsApiManagedEnvironment_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.EnvironmentName = this.EnvironmentName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedEnvironmentsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsDelete(SubscriptionId, ResourceGroupName, EnvironmentName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiManagedEnvironment_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName }) + { + 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/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironment_DeleteViaIdentity.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironment_DeleteViaIdentity.cs new file mode 100644 index 000000000000..168d0cf5af81 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironment_DeleteViaIdentity.cs @@ -0,0 +1,489 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete a Managed Environment if it does not have any container apps. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiManagedEnvironment_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete a Managed Environment if it does not have any container apps.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiManagedEnvironment_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzContainerAppsApiManagedEnvironment_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.RemoveAzContainerAppsApiManagedEnvironment_DeleteViaIdentity Clone() + { + var clone = new RemoveAzContainerAppsApiManagedEnvironment_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedEnvironmentsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedEnvironmentsDeleteViaIdentity(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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedEnvironmentsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiManagedEnvironment_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironmentsStorage_Delete.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironmentsStorage_Delete.cs new file mode 100644 index 000000000000..b9b5f46f35e3 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironmentsStorage_Delete.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete storage for a managedEnvironment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiManagedEnvironmentsStorage_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete storage for a managedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiManagedEnvironmentsStorage_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _storageName; + + /// Name of the storage. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the storage.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the storage.", + SerializedName = @"storageName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string StorageName { get => this._storageName; set => this._storageName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedEnvironmentsStoragesDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsStoragesDelete(SubscriptionId, ResourceGroupName, EnvironmentName, StorageName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,StorageName=StorageName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzContainerAppsApiManagedEnvironmentsStorage_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, StorageName=StorageName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, StorageName=StorageName }) + { + 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/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironmentsStorage_DeleteViaIdentity.cs b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironmentsStorage_DeleteViaIdentity.cs new file mode 100644 index 000000000000..8fd1471caa41 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RemoveAzContainerAppsApiManagedEnvironmentsStorage_DeleteViaIdentity.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Delete storage for a managedEnvironment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzContainerAppsApiManagedEnvironmentsStorage_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Delete storage for a managedEnvironment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RemoveAzContainerAppsApiManagedEnvironmentsStorage_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedEnvironmentsStoragesDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedEnvironmentsStoragesDeleteViaIdentity(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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.StorageName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.StorageName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedEnvironmentsStoragesDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, InputObject.StorageName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public RemoveAzContainerAppsApiManagedEnvironmentsStorage_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/RestartAzContainerAppsApiContainerAppRevision_Restart.cs b/swaggerci/app/generated/cmdlets/RestartAzContainerAppsApiContainerAppRevision_Restart.cs new file mode 100644 index 000000000000..8d5a9eda566d --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RestartAzContainerAppsApiContainerAppRevision_Restart.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Restarts a revision for a Container App + /// + /// [OpenAPI] RestartRevision=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}/restart" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Restart, @"AzContainerAppsApiContainerAppRevision_Restart", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Restarts a revision for a Container App")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RestartAzContainerAppsApiContainerAppRevision_Restart : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _containerAppName; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ContainerAppName { get => this._containerAppName; set => this._containerAppName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _revisionName; + + /// Name of the Container App Revision. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App Revision.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App Revision.", + SerializedName = @"revisionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string RevisionName { get => this._revisionName; set => this._revisionName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsRevisionsRestartRevision' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsRevisionsRestartRevision(SubscriptionId, ResourceGroupName, ContainerAppName, RevisionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ContainerAppName=ContainerAppName,RevisionName=RevisionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RestartAzContainerAppsApiContainerAppRevision_Restart() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ContainerAppName=ContainerAppName, RevisionName=RevisionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ContainerAppName=ContainerAppName, RevisionName=RevisionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.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/app/generated/cmdlets/RestartAzContainerAppsApiContainerAppRevision_RestartViaIdentity.cs b/swaggerci/app/generated/cmdlets/RestartAzContainerAppsApiContainerAppRevision_RestartViaIdentity.cs new file mode 100644 index 000000000000..8b25fb3d76ad --- /dev/null +++ b/swaggerci/app/generated/cmdlets/RestartAzContainerAppsApiContainerAppRevision_RestartViaIdentity.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Restarts a revision for a Container App + /// + /// [OpenAPI] RestartRevision=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/revisions/{revisionName}/restart" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Restart, @"AzContainerAppsApiContainerAppRevision_RestartViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Restarts a revision for a Container App")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class RestartAzContainerAppsApiContainerAppRevision_RestartViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsRevisionsRestartRevision' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsRevisionsRestartRevisionViaIdentity(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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.RevisionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.RevisionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsRevisionsRestartRevision(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, InputObject.RevisionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public RestartAzContainerAppsApiContainerAppRevision_RestartViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_Check.cs b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_Check.cs new file mode 100644 index 000000000000..11d357344303 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_Check.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Checks if resource connectedEnvironmentName is available. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzContainerAppsApiConnectedEnvironmentNameAvailability_Check", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Checks if resource connectedEnvironmentName is available.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class TestAzContainerAppsApiConnectedEnvironmentNameAvailability_Check : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest _checkNameAvailabilityRequest; + + /// The check availability request body. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The check availability request body.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The check availability request body.", + SerializedName = @"checkNameAvailabilityRequest", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest CheckNameAvailabilityRequest { get => this._checkNameAvailabilityRequest; set => this._checkNameAvailabilityRequest = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsCheckNameAvailability(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, CheckNameAvailabilityRequest, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName,body=CheckNameAvailabilityRequest}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public TestAzContainerAppsApiConnectedEnvironmentNameAvailability_Check() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName, body=CheckNameAvailabilityRequest }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName, body=CheckNameAvailabilityRequest }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckExpanded.cs b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckExpanded.cs new file mode 100644 index 000000000000..e6a39218a53e --- /dev/null +++ b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckExpanded.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Checks if resource connectedEnvironmentName is available. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzContainerAppsApiConnectedEnvironmentNameAvailability_CheckExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Checks if resource connectedEnvironmentName is available.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// The check availability request body. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest _checkNameAvailabilityRequestBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.CheckNameAvailabilityRequest(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// The name of the resource for which availability needs to be checked. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the resource for which availability needs to be checked.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the resource for which availability needs to be checked.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => _checkNameAvailabilityRequestBody.Name ?? null; set => _checkNameAvailabilityRequestBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// The resource type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The resource type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource type.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + public string Type { get => _checkNameAvailabilityRequestBody.Type ?? null; set => _checkNameAvailabilityRequestBody.Type = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsCheckNameAvailability(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, _checkNameAvailabilityRequestBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName,body=_checkNameAvailabilityRequestBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName, body=_checkNameAvailabilityRequestBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName, body=_checkNameAvailabilityRequestBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentity.cs b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentity.cs new file mode 100644 index 000000000000..b4ade4c663a4 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentity.cs @@ -0,0 +1,399 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Checks if resource connectedEnvironmentName is available. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Checks if resource connectedEnvironmentName is available.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest _checkNameAvailabilityRequest; + + /// The check availability request body. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The check availability request body.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The check availability request body.", + SerializedName = @"checkNameAvailabilityRequest", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest CheckNameAvailabilityRequest { get => this._checkNameAvailabilityRequest; set => this._checkNameAvailabilityRequest = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConnectedEnvironmentsCheckNameAvailabilityViaIdentity(InputObject.Id, CheckNameAvailabilityRequest, 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.ConnectedEnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConnectedEnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConnectedEnvironmentsCheckNameAvailability(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ConnectedEnvironmentName ?? null, CheckNameAvailabilityRequest, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=CheckNameAvailabilityRequest}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentity() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=CheckNameAvailabilityRequest }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=CheckNameAvailabilityRequest }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentityExpanded.cs b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentityExpanded.cs new file mode 100644 index 000000000000..e7c8fb3db1de --- /dev/null +++ b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentityExpanded.cs @@ -0,0 +1,411 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Checks if resource connectedEnvironmentName is available. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Checks if resource connectedEnvironmentName is available.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// The check availability request body. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest _checkNameAvailabilityRequestBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.CheckNameAvailabilityRequest(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// The name of the resource for which availability needs to be checked. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the resource for which availability needs to be checked.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the resource for which availability needs to be checked.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => _checkNameAvailabilityRequestBody.Name ?? null; set => _checkNameAvailabilityRequestBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// The resource type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The resource type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource type.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + public string Type { get => _checkNameAvailabilityRequestBody.Type ?? null; set => _checkNameAvailabilityRequestBody.Type = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConnectedEnvironmentsCheckNameAvailabilityViaIdentity(InputObject.Id, _checkNameAvailabilityRequestBody, 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.ConnectedEnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConnectedEnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConnectedEnvironmentsCheckNameAvailability(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ConnectedEnvironmentName ?? null, _checkNameAvailabilityRequestBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_checkNameAvailabilityRequestBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzContainerAppsApiConnectedEnvironmentNameAvailability_CheckViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_checkNameAvailabilityRequestBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=_checkNameAvailabilityRequestBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_Check.cs b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_Check.cs new file mode 100644 index 000000000000..14b7710657f3 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_Check.cs @@ -0,0 +1,416 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Checks if resource name is available. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzContainerAppsApiNamespaceNameAvailability_Check", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Checks if resource name is available.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class TestAzContainerAppsApiNamespaceNameAvailability_Check : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest _checkNameAvailabilityRequest; + + /// The check availability request body. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The check availability request body.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The check availability request body.", + SerializedName = @"checkNameAvailabilityRequest", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest CheckNameAvailabilityRequest { get => this._checkNameAvailabilityRequest; set => this._checkNameAvailabilityRequest = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'NamespacesCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.NamespacesCheckNameAvailability(SubscriptionId, ResourceGroupName, EnvironmentName, CheckNameAvailabilityRequest, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,body=CheckNameAvailabilityRequest}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzContainerAppsApiNamespaceNameAvailability_Check() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, body=CheckNameAvailabilityRequest }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, body=CheckNameAvailabilityRequest }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_CheckExpanded.cs b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_CheckExpanded.cs new file mode 100644 index 000000000000..7d4edbbe0cd7 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_CheckExpanded.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Checks if resource name is available. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzContainerAppsApiNamespaceNameAvailability_CheckExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Checks if resource name is available.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class TestAzContainerAppsApiNamespaceNameAvailability_CheckExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// The check availability request body. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest _checkNameAvailabilityRequestBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.CheckNameAvailabilityRequest(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// The name of the resource for which availability needs to be checked. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the resource for which availability needs to be checked.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the resource for which availability needs to be checked.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => _checkNameAvailabilityRequestBody.Name ?? null; set => _checkNameAvailabilityRequestBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// The resource type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The resource type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource type.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + public string Type { get => _checkNameAvailabilityRequestBody.Type ?? null; set => _checkNameAvailabilityRequestBody.Type = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'NamespacesCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.NamespacesCheckNameAvailability(SubscriptionId, ResourceGroupName, EnvironmentName, _checkNameAvailabilityRequestBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,body=_checkNameAvailabilityRequestBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzContainerAppsApiNamespaceNameAvailability_CheckExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, body=_checkNameAvailabilityRequestBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, body=_checkNameAvailabilityRequestBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_CheckViaIdentity.cs b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_CheckViaIdentity.cs new file mode 100644 index 000000000000..d018c1e88c48 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_CheckViaIdentity.cs @@ -0,0 +1,399 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Checks if resource name is available. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzContainerAppsApiNamespaceNameAvailability_CheckViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Checks if resource name is available.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class TestAzContainerAppsApiNamespaceNameAvailability_CheckViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest _checkNameAvailabilityRequest; + + /// The check availability request body. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The check availability request body.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The check availability request body.", + SerializedName = @"checkNameAvailabilityRequest", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest CheckNameAvailabilityRequest { get => this._checkNameAvailabilityRequest; set => this._checkNameAvailabilityRequest = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'NamespacesCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.NamespacesCheckNameAvailabilityViaIdentity(InputObject.Id, CheckNameAvailabilityRequest, 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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.NamespacesCheckNameAvailability(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, CheckNameAvailabilityRequest, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=CheckNameAvailabilityRequest}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public TestAzContainerAppsApiNamespaceNameAvailability_CheckViaIdentity() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=CheckNameAvailabilityRequest }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=CheckNameAvailabilityRequest }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_CheckViaIdentityExpanded.cs b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_CheckViaIdentityExpanded.cs new file mode 100644 index 000000000000..6fda6d1bd081 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/TestAzContainerAppsApiNamespaceNameAvailability_CheckViaIdentityExpanded.cs @@ -0,0 +1,411 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Checks if resource name is available. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzContainerAppsApiNamespaceNameAvailability_CheckViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Checks if resource name is available.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class TestAzContainerAppsApiNamespaceNameAvailability_CheckViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// The check availability request body. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityRequest _checkNameAvailabilityRequestBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.CheckNameAvailabilityRequest(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// The name of the resource for which availability needs to be checked. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the resource for which availability needs to be checked.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the resource for which availability needs to be checked.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => _checkNameAvailabilityRequestBody.Name ?? null; set => _checkNameAvailabilityRequestBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// The resource type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The resource type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource type.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + public string Type { get => _checkNameAvailabilityRequestBody.Type ?? null; set => _checkNameAvailabilityRequestBody.Type = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'NamespacesCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.NamespacesCheckNameAvailabilityViaIdentity(InputObject.Id, _checkNameAvailabilityRequestBody, 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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.NamespacesCheckNameAvailability(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, _checkNameAvailabilityRequestBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_checkNameAvailabilityRequestBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzContainerAppsApiNamespaceNameAvailability_CheckViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_checkNameAvailabilityRequestBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=_checkNameAvailabilityRequestBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ICheckNameAvailabilityResponse + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiCertificate_UpdateExpanded.cs b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiCertificate_UpdateExpanded.cs new file mode 100644 index 000000000000..695af8b3dc0a --- /dev/null +++ b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiCertificate_UpdateExpanded.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Patches a certificate. Currently only patching of tags is supported + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzContainerAppsApiCertificate_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Patches a certificate. Currently only patching of tags is supported")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class UpdateAzContainerAppsApiCertificate_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A certificate to update + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch _certificateEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificatePatch(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the Certificate. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Certificate.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Certificate.", + SerializedName = @"certificateName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("CertificateName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Application-specific metadata in the form of key-value pairs. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Application-specific metadata in the form of key-value pairs.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application-specific metadata in the form of key-value pairs.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags Tag { get => _certificateEnvelopeBody.Tag ?? null /* object */; set => _certificateEnvelopeBody.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 Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CertificatesUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CertificatesUpdate(SubscriptionId, ResourceGroupName, EnvironmentName, Name, _certificateEnvelopeBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,Name=Name,body=_certificateEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzContainerAppsApiCertificate_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, Name=Name, body=_certificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, Name=Name, body=_certificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiCertificate_UpdateViaIdentityExpanded.cs b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiCertificate_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..4c2b98aea783 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiCertificate_UpdateViaIdentityExpanded.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Patches a certificate. Currently only patching of tags is supported + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzContainerAppsApiCertificate_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Patches a certificate. Currently only patching of tags is supported")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class UpdateAzContainerAppsApiCertificate_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A certificate to update + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch _certificateEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificatePatch(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Application-specific metadata in the form of key-value pairs. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Application-specific metadata in the form of key-value pairs.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application-specific metadata in the form of key-value pairs.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags Tag { get => _certificateEnvelopeBody.Tag ?? null /* object */; set => _certificateEnvelopeBody.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 Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CertificatesUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.CertificatesUpdateViaIdentity(InputObject.Id, _certificateEnvelopeBody, 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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),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.CertificatesUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, InputObject.CertificateName ?? null, _certificateEnvelopeBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_certificateEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzContainerAppsApiCertificate_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_certificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=_certificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiConnectedEnvironmentsCertificate_UpdateExpanded.cs b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiConnectedEnvironmentsCertificate_UpdateExpanded.cs new file mode 100644 index 000000000000..e64d81a4ab8d --- /dev/null +++ b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiConnectedEnvironmentsCertificate_UpdateExpanded.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Patches a certificate. Currently only patching of tags is supported + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzContainerAppsApiConnectedEnvironmentsCertificate_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Patches a certificate. Currently only patching of tags is supported")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class UpdateAzContainerAppsApiConnectedEnvironmentsCertificate_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A certificate to update + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch _certificateEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificatePatch(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _certificateName; + + /// Name of the Certificate. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Certificate.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Certificate.", + SerializedName = @"certificateName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string CertificateName { get => this._certificateName; set => this._certificateName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _connectedEnvironmentName; + + /// Name of the Connected Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Connected Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Connected Environment.", + SerializedName = @"connectedEnvironmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ConnectedEnvironmentName { get => this._connectedEnvironmentName; set => this._connectedEnvironmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Application-specific metadata in the form of key-value pairs. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Application-specific metadata in the form of key-value pairs.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application-specific metadata in the form of key-value pairs.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags Tag { get => _certificateEnvelopeBody.Tag ?? null /* object */; set => _certificateEnvelopeBody.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 Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsCertificatesUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConnectedEnvironmentsCertificatesUpdate(SubscriptionId, ResourceGroupName, ConnectedEnvironmentName, CertificateName, _certificateEnvelopeBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,ConnectedEnvironmentName=ConnectedEnvironmentName,CertificateName=CertificateName,body=_certificateEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public UpdateAzContainerAppsApiConnectedEnvironmentsCertificate_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, ConnectedEnvironmentName=ConnectedEnvironmentName, CertificateName=CertificateName, body=_certificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, ConnectedEnvironmentName=ConnectedEnvironmentName, CertificateName=CertificateName, body=_certificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiConnectedEnvironmentsCertificate_UpdateViaIdentityExpanded.cs b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiConnectedEnvironmentsCertificate_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..58ad569cf71a --- /dev/null +++ b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiConnectedEnvironmentsCertificate_UpdateViaIdentityExpanded.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Patches a certificate. Currently only patching of tags is supported + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/connectedEnvironments/{connectedEnvironmentName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzContainerAppsApiConnectedEnvironmentsCertificate_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Patches a certificate. Currently only patching of tags is supported")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class UpdateAzContainerAppsApiConnectedEnvironmentsCertificate_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A certificate to update + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatch _certificateEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.CertificatePatch(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Application-specific metadata in the form of key-value pairs. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Application-specific metadata in the form of key-value pairs.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application-specific metadata in the form of key-value pairs.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificatePatchTags Tag { get => _certificateEnvelopeBody.Tag ?? null /* object */; set => _certificateEnvelopeBody.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 Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConnectedEnvironmentsCertificatesUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConnectedEnvironmentsCertificatesUpdateViaIdentity(InputObject.Id, _certificateEnvelopeBody, 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.ConnectedEnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConnectedEnvironmentName"),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.ConnectedEnvironmentsCertificatesUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ConnectedEnvironmentName ?? null, InputObject.CertificateName ?? null, _certificateEnvelopeBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_certificateEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzContainerAppsApiConnectedEnvironmentsCertificate_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_certificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=_certificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiContainerApp_UpdateExpanded.cs b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiContainerApp_UpdateExpanded.cs new file mode 100644 index 000000000000..8263a967b462 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiContainerApp_UpdateExpanded.cs @@ -0,0 +1,875 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Patches a Container App using JSON Merge Patch + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzContainerAppsApiContainerApp_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Patches a Container App using JSON Merge Patch")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class UpdateAzContainerAppsApiContainerApp_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Container App. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp _containerAppEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerApp(); + + /// 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app:Multiple: multiple revisions + /// can be active.Single: Only one revision can be active at a time. Revision weights can not be used in this + /// mode. If no value if provided, this is the default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "ActiveRevisionsMode controls how active revisions are handled for the Container app:Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. Revision weights can not be used in this mode. If no value if provided, this is the default.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ActiveRevisionsMode controls how active revisions are handled for the Container app:Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. Revision weights can not be used in this mode. If no value if provided, this is the default.", + SerializedName = @"activeRevisionsMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode ConfigurationActiveRevisionsMode { get => _containerAppEnvelopeBody.ConfigurationActiveRevisionsMode ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode)""); set => _containerAppEnvelopeBody.ConfigurationActiveRevisionsMode = value; } + + /// Optional. Max inactive revisions a Container App can have. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Optional. Max inactive revisions a Container App can have.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Max inactive revisions a Container App can have.", + SerializedName = @"maxInactiveRevisions", + PossibleTypes = new [] { typeof(int) })] + public int ConfigurationMaxInactiveRevision { get => _containerAppEnvelopeBody.ConfigurationMaxInactiveRevision ?? default(int); set => _containerAppEnvelopeBody.ConfigurationMaxInactiveRevision = value; } + + /// + /// Collection of private container registry credentials for containers used by the Container app + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of private container registry credentials for containers used by the Container app")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of private container registry credentials for containers used by the Container app", + SerializedName = @"registries", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] ConfigurationRegistry { get => _containerAppEnvelopeBody.ConfigurationRegistry ?? null /* arrayOf */; set => _containerAppEnvelopeBody.ConfigurationRegistry = value; } + + /// Collection of secrets used by a Container app + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of secrets used by a Container app")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of secrets used by a Container app", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] ConfigurationSecret { get => _containerAppEnvelopeBody.ConfigurationSecret ?? null /* arrayOf */; set => _containerAppEnvelopeBody.ConfigurationSecret = value; } + + /// Dapr application identifier + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Dapr application identifier")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dapr application identifier", + SerializedName = @"appId", + PossibleTypes = new [] { typeof(string) })] + public string DaprAppId { get => _containerAppEnvelopeBody.DaprAppId ?? null; set => _containerAppEnvelopeBody.DaprAppId = value; } + + /// Tells Dapr which port your application is listening on + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tells Dapr which port your application is listening on")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tells Dapr which port your application is listening on", + SerializedName = @"appPort", + PossibleTypes = new [] { typeof(int) })] + public int DaprAppPort { get => _containerAppEnvelopeBody.DaprAppPort ?? default(int); set => _containerAppEnvelopeBody.DaprAppPort = value; } + + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http", + SerializedName = @"appProtocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol DaprAppProtocol { get => _containerAppEnvelopeBody.DaprAppProtocol ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol)""); set => _containerAppEnvelopeBody.DaprAppProtocol = value; } + + /// Enables API logging for the Dapr sidecar + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Enables API logging for the Dapr sidecar")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enables API logging for the Dapr sidecar", + SerializedName = @"enableApiLogging", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DaprEnableApiLogging { get => _containerAppEnvelopeBody.DaprEnableApiLogging ?? default(global::System.Management.Automation.SwitchParameter); set => _containerAppEnvelopeBody.DaprEnableApiLogging = value; } + + /// Boolean indicating if the Dapr side car is enabled + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Boolean indicating if the Dapr side car is enabled")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean indicating if the Dapr side car is enabled", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DaprEnabled { get => _containerAppEnvelopeBody.DaprEnabled ?? default(global::System.Management.Automation.SwitchParameter); set => _containerAppEnvelopeBody.DaprEnabled = value; } + + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is 4 MB.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is 4 MB.", + SerializedName = @"httpMaxRequestSize", + PossibleTypes = new [] { typeof(int) })] + public int DaprHttpMaxRequestSize { get => _containerAppEnvelopeBody.DaprHttpMaxRequestSize ?? default(int); set => _containerAppEnvelopeBody.DaprHttpMaxRequestSize = value; } + + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB.", + SerializedName = @"httpReadBufferSize", + PossibleTypes = new [] { typeof(int) })] + public int DaprHttpReadBufferSize { get => _containerAppEnvelopeBody.DaprHttpReadBufferSize ?? default(int); set => _containerAppEnvelopeBody.DaprHttpReadBufferSize = value; } + + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info.", + SerializedName = @"logLevel", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel DaprLogLevel { get => _containerAppEnvelopeBody.DaprLogLevel ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel)""); set => _containerAppEnvelopeBody.DaprLogLevel = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Resource ID of environment. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource ID of environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of environment.", + SerializedName = @"environmentId", + PossibleTypes = new [] { typeof(string) })] + public string EnvironmentId { get => _containerAppEnvelopeBody.EnvironmentId ?? null; set => _containerAppEnvelopeBody.EnvironmentId = value; } + + /// The name of the extended location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the extended location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the extended location.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string ExtendedLocationName { get => _containerAppEnvelopeBody.ExtendedLocationName ?? null; set => _containerAppEnvelopeBody.ExtendedLocationName = value; } + + /// The type of the extended location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of the extended location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the extended location.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes ExtendedLocationType { get => _containerAppEnvelopeBody.ExtendedLocationType ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes)""); set => _containerAppEnvelopeBody.ExtendedLocationType = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// + /// Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType IdentityType { get => _containerAppEnvelopeBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType)""); set => _containerAppEnvelopeBody.IdentityType = value; } + + /// + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities IdentityUserAssignedIdentity { get => _containerAppEnvelopeBody.IdentityUserAssignedIdentity ?? null /* object */; set => _containerAppEnvelopeBody.IdentityUserAssignedIdentity = value; } + + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS connections")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS connections", + SerializedName = @"allowInsecure", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter IngressAllowInsecure { get => _containerAppEnvelopeBody.IngressAllowInsecure ?? default(global::System.Management.Automation.SwitchParameter); set => _containerAppEnvelopeBody.IngressAllowInsecure = value; } + + /// custom domain bindings for Container Apps' hostnames. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "custom domain bindings for Container Apps' hostnames.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"custom domain bindings for Container Apps' hostnames.", + SerializedName = @"customDomains", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] IngressCustomDomain { get => _containerAppEnvelopeBody.IngressCustomDomain ?? null /* arrayOf */; set => _containerAppEnvelopeBody.IngressCustomDomain = value; } + + /// Exposed Port in containers for TCP traffic from ingress + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Exposed Port in containers for TCP traffic from ingress")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Exposed Port in containers for TCP traffic from ingress", + SerializedName = @"exposedPort", + PossibleTypes = new [] { typeof(int) })] + public int IngressExposedPort { get => _containerAppEnvelopeBody.IngressExposedPort ?? default(int); set => _containerAppEnvelopeBody.IngressExposedPort = value; } + + /// Bool indicating if app exposes an external http endpoint + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Bool indicating if app exposes an external http endpoint")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Bool indicating if app exposes an external http endpoint", + SerializedName = @"external", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter IngressExternal { get => _containerAppEnvelopeBody.IngressExternal ?? default(global::System.Management.Automation.SwitchParameter); set => _containerAppEnvelopeBody.IngressExternal = value; } + + /// Rules to restrict incoming IP address. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Rules to restrict incoming IP address.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Rules to restrict incoming IP address.", + SerializedName = @"ipSecurityRestrictions", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IngressIPSecurityRestriction { get => _containerAppEnvelopeBody.IngressIPSecurityRestriction ?? null /* arrayOf */; set => _containerAppEnvelopeBody.IngressIPSecurityRestriction = value; } + + /// Target Port in containers for traffic from ingress + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Target Port in containers for traffic from ingress")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Target Port in containers for traffic from ingress", + SerializedName = @"targetPort", + PossibleTypes = new [] { typeof(int) })] + public int IngressTargetPort { get => _containerAppEnvelopeBody.IngressTargetPort ?? default(int); set => _containerAppEnvelopeBody.IngressTargetPort = value; } + + /// Traffic weights for app's revisions + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Traffic weights for app's revisions")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Traffic weights for app's revisions", + SerializedName = @"traffic", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] IngressTraffic { get => _containerAppEnvelopeBody.IngressTraffic ?? null /* arrayOf */; set => _containerAppEnvelopeBody.IngressTraffic = value; } + + /// Ingress transport protocol + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Ingress transport protocol")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress transport protocol", + SerializedName = @"transport", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod IngressTransport { get => _containerAppEnvelopeBody.IngressTransport ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod)""); set => _containerAppEnvelopeBody.IngressTransport = 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 where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _containerAppEnvelopeBody.Location ?? null; set => _containerAppEnvelopeBody.Location = value; } + + /// Deprecated. Resource ID of the Container App's environment. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Deprecated. Resource ID of the Container App's environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Deprecated. Resource ID of the Container App's environment.", + SerializedName = @"managedEnvironmentId", + PossibleTypes = new [] { typeof(string) })] + public string ManagedEnvironmentId { get => _containerAppEnvelopeBody.ManagedEnvironmentId ?? null; set => _containerAppEnvelopeBody.ManagedEnvironmentId = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the Container App. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Container App.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Container App.", + SerializedName = @"containerAppName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ContainerAppName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Optional. Maximum number of container replicas. Defaults to 10 if not set.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Maximum number of container replicas. Defaults to 10 if not set.", + SerializedName = @"maxReplicas", + PossibleTypes = new [] { typeof(int) })] + public int ScaleMaxReplica { get => _containerAppEnvelopeBody.ScaleMaxReplica ?? default(int); set => _containerAppEnvelopeBody.ScaleMaxReplica = value; } + + /// Optional. Minimum number of container replicas. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Optional. Minimum number of container replicas.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Minimum number of container replicas.", + SerializedName = @"minReplicas", + PossibleTypes = new [] { typeof(int) })] + public int ScaleMinReplica { get => _containerAppEnvelopeBody.ScaleMinReplica ?? default(int); set => _containerAppEnvelopeBody.ScaleMinReplica = value; } + + /// Scaling rules. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Scaling rules.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Scaling rules.", + SerializedName = @"rules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get => _containerAppEnvelopeBody.ScaleRule ?? null /* arrayOf */; set => _containerAppEnvelopeBody.ScaleRule = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => _containerAppEnvelopeBody.Tag ?? null /* object */; set => _containerAppEnvelopeBody.Tag = value; } + + /// List of container definitions for the Container App. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of container definitions for the Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of container definitions for the Container App.", + SerializedName = @"containers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get => _containerAppEnvelopeBody.TemplateContainer ?? null /* arrayOf */; set => _containerAppEnvelopeBody.TemplateContainer = value; } + + /// List of specialized containers that run before app containers. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of specialized containers that run before app containers.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of specialized containers that run before app containers.", + SerializedName = @"initContainers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get => _containerAppEnvelopeBody.TemplateInitContainer ?? null /* arrayOf */; set => _containerAppEnvelopeBody.TemplateInitContainer = value; } + + /// User friendly suffix that is appended to the revision name + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "User friendly suffix that is appended to the revision name")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly suffix that is appended to the revision name", + SerializedName = @"revisionSuffix", + PossibleTypes = new [] { typeof(string) })] + public string TemplateRevisionSuffix { get => _containerAppEnvelopeBody.TemplateRevisionSuffix ?? null; set => _containerAppEnvelopeBody.TemplateRevisionSuffix = value; } + + /// List of volume definitions for the Container App. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of volume definitions for the Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of volume definitions for the Container App.", + SerializedName = @"volumes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get => _containerAppEnvelopeBody.TemplateVolume ?? null /* arrayOf */; set => _containerAppEnvelopeBody.TemplateVolume = value; } + + /// Workload profile type to pin for container app execution. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Workload profile type to pin for container app execution.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Workload profile type to pin for container app execution.", + SerializedName = @"workloadProfileType", + PossibleTypes = new [] { typeof(string) })] + public string WorkloadProfileType { get => _containerAppEnvelopeBody.WorkloadProfileType ?? null; set => _containerAppEnvelopeBody.WorkloadProfileType = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzContainerAppsApiContainerApp_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.UpdateAzContainerAppsApiContainerApp_UpdateExpanded Clone() + { + var clone = new UpdateAzContainerAppsApiContainerApp_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._containerAppEnvelopeBody = this._containerAppEnvelopeBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ContainerAppsUpdate(SubscriptionId, ResourceGroupName, Name, _containerAppEnvelopeBody, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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=_containerAppEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzContainerAppsApiContainerApp_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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=_containerAppEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=_containerAppEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiContainerApp_UpdateViaIdentityExpanded.cs b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiContainerApp_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..d8309a7740fc --- /dev/null +++ b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiContainerApp_UpdateViaIdentityExpanded.cs @@ -0,0 +1,856 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Patches a Container App using JSON Merge Patch + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzContainerAppsApiContainerApp_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Patches a Container App using JSON Merge Patch")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class UpdateAzContainerAppsApiContainerApp_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Container App. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainerApp _containerAppEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ContainerApp(); + + /// 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// ActiveRevisionsMode controls how active revisions are handled for the Container app:Multiple: multiple revisions + /// can be active.Single: Only one revision can be active at a time. Revision weights can not be used in this + /// mode. If no value if provided, this is the default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "ActiveRevisionsMode controls how active revisions are handled for the Container app:Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. Revision weights can not be used in this mode. If no value if provided, this is the default.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ActiveRevisionsMode controls how active revisions are handled for the Container app:Multiple: multiple revisions can be active.Single: Only one revision can be active at a time. Revision weights can not be used in this mode. If no value if provided, this is the default.", + SerializedName = @"activeRevisionsMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode ConfigurationActiveRevisionsMode { get => _containerAppEnvelopeBody.ConfigurationActiveRevisionsMode ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ActiveRevisionsMode)""); set => _containerAppEnvelopeBody.ConfigurationActiveRevisionsMode = value; } + + /// Optional. Max inactive revisions a Container App can have. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Optional. Max inactive revisions a Container App can have.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Max inactive revisions a Container App can have.", + SerializedName = @"maxInactiveRevisions", + PossibleTypes = new [] { typeof(int) })] + public int ConfigurationMaxInactiveRevision { get => _containerAppEnvelopeBody.ConfigurationMaxInactiveRevision ?? default(int); set => _containerAppEnvelopeBody.ConfigurationMaxInactiveRevision = value; } + + /// + /// Collection of private container registry credentials for containers used by the Container app + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of private container registry credentials for containers used by the Container app")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of private container registry credentials for containers used by the Container app", + SerializedName = @"registries", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IRegistryCredentials[] ConfigurationRegistry { get => _containerAppEnvelopeBody.ConfigurationRegistry ?? null /* arrayOf */; set => _containerAppEnvelopeBody.ConfigurationRegistry = value; } + + /// Collection of secrets used by a Container app + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of secrets used by a Container app")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of secrets used by a Container app", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ISecret[] ConfigurationSecret { get => _containerAppEnvelopeBody.ConfigurationSecret ?? null /* arrayOf */; set => _containerAppEnvelopeBody.ConfigurationSecret = value; } + + /// Dapr application identifier + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Dapr application identifier")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dapr application identifier", + SerializedName = @"appId", + PossibleTypes = new [] { typeof(string) })] + public string DaprAppId { get => _containerAppEnvelopeBody.DaprAppId ?? null; set => _containerAppEnvelopeBody.DaprAppId = value; } + + /// Tells Dapr which port your application is listening on + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tells Dapr which port your application is listening on")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tells Dapr which port your application is listening on", + SerializedName = @"appPort", + PossibleTypes = new [] { typeof(int) })] + public int DaprAppPort { get => _containerAppEnvelopeBody.DaprAppPort ?? default(int); set => _containerAppEnvelopeBody.DaprAppPort = value; } + + /// + /// Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http", + SerializedName = @"appProtocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol DaprAppProtocol { get => _containerAppEnvelopeBody.DaprAppProtocol ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.AppProtocol)""); set => _containerAppEnvelopeBody.DaprAppProtocol = value; } + + /// Enables API logging for the Dapr sidecar + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Enables API logging for the Dapr sidecar")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enables API logging for the Dapr sidecar", + SerializedName = @"enableApiLogging", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DaprEnableApiLogging { get => _containerAppEnvelopeBody.DaprEnableApiLogging ?? default(global::System.Management.Automation.SwitchParameter); set => _containerAppEnvelopeBody.DaprEnableApiLogging = value; } + + /// Boolean indicating if the Dapr side car is enabled + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Boolean indicating if the Dapr side car is enabled")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean indicating if the Dapr side car is enabled", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DaprEnabled { get => _containerAppEnvelopeBody.DaprEnabled ?? default(global::System.Management.Automation.SwitchParameter); set => _containerAppEnvelopeBody.DaprEnabled = value; } + + /// + /// Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is + /// 4 MB. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is 4 MB.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Increasing max size of request body http and grpc servers parameter in MB to handle uploading of big files. Default is 4 MB.", + SerializedName = @"httpMaxRequestSize", + PossibleTypes = new [] { typeof(int) })] + public int DaprHttpMaxRequestSize { get => _containerAppEnvelopeBody.DaprHttpMaxRequestSize ?? default(int); set => _containerAppEnvelopeBody.DaprHttpMaxRequestSize = value; } + + /// + /// Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB.", + SerializedName = @"httpReadBufferSize", + PossibleTypes = new [] { typeof(int) })] + public int DaprHttpReadBufferSize { get => _containerAppEnvelopeBody.DaprHttpReadBufferSize ?? default(int); set => _containerAppEnvelopeBody.DaprHttpReadBufferSize = value; } + + /// + /// Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info.", + SerializedName = @"logLevel", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel DaprLogLevel { get => _containerAppEnvelopeBody.DaprLogLevel ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.LogLevel)""); set => _containerAppEnvelopeBody.DaprLogLevel = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Resource ID of environment. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource ID of environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of environment.", + SerializedName = @"environmentId", + PossibleTypes = new [] { typeof(string) })] + public string EnvironmentId { get => _containerAppEnvelopeBody.EnvironmentId ?? null; set => _containerAppEnvelopeBody.EnvironmentId = value; } + + /// The name of the extended location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the extended location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the extended location.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string ExtendedLocationName { get => _containerAppEnvelopeBody.ExtendedLocationName ?? null; set => _containerAppEnvelopeBody.ExtendedLocationName = value; } + + /// The type of the extended location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of the extended location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the extended location.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes ExtendedLocationType { get => _containerAppEnvelopeBody.ExtendedLocationType ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ExtendedLocationTypes)""); set => _containerAppEnvelopeBody.ExtendedLocationType = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// + /// Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType IdentityType { get => _containerAppEnvelopeBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedServiceIdentityType)""); set => _containerAppEnvelopeBody.IdentityType = value; } + + /// + /// The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + /// The dictionary values can be empty objects ({}) in requests. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.IUserAssignedIdentities IdentityUserAssignedIdentity { get => _containerAppEnvelopeBody.IdentityUserAssignedIdentity ?? null /* object */; set => _containerAppEnvelopeBody.IdentityUserAssignedIdentity = value; } + + /// + /// Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS + /// connections + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS connections")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS connections", + SerializedName = @"allowInsecure", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter IngressAllowInsecure { get => _containerAppEnvelopeBody.IngressAllowInsecure ?? default(global::System.Management.Automation.SwitchParameter); set => _containerAppEnvelopeBody.IngressAllowInsecure = value; } + + /// custom domain bindings for Container Apps' hostnames. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "custom domain bindings for Container Apps' hostnames.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"custom domain bindings for Container Apps' hostnames.", + SerializedName = @"customDomains", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ICustomDomain[] IngressCustomDomain { get => _containerAppEnvelopeBody.IngressCustomDomain ?? null /* arrayOf */; set => _containerAppEnvelopeBody.IngressCustomDomain = value; } + + /// Exposed Port in containers for TCP traffic from ingress + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Exposed Port in containers for TCP traffic from ingress")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Exposed Port in containers for TCP traffic from ingress", + SerializedName = @"exposedPort", + PossibleTypes = new [] { typeof(int) })] + public int IngressExposedPort { get => _containerAppEnvelopeBody.IngressExposedPort ?? default(int); set => _containerAppEnvelopeBody.IngressExposedPort = value; } + + /// Bool indicating if app exposes an external http endpoint + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Bool indicating if app exposes an external http endpoint")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Bool indicating if app exposes an external http endpoint", + SerializedName = @"external", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter IngressExternal { get => _containerAppEnvelopeBody.IngressExternal ?? default(global::System.Management.Automation.SwitchParameter); set => _containerAppEnvelopeBody.IngressExternal = value; } + + /// Rules to restrict incoming IP address. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Rules to restrict incoming IP address.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Rules to restrict incoming IP address.", + SerializedName = @"ipSecurityRestrictions", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IIPSecurityRestrictionRule[] IngressIPSecurityRestriction { get => _containerAppEnvelopeBody.IngressIPSecurityRestriction ?? null /* arrayOf */; set => _containerAppEnvelopeBody.IngressIPSecurityRestriction = value; } + + /// Target Port in containers for traffic from ingress + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Target Port in containers for traffic from ingress")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Target Port in containers for traffic from ingress", + SerializedName = @"targetPort", + PossibleTypes = new [] { typeof(int) })] + public int IngressTargetPort { get => _containerAppEnvelopeBody.IngressTargetPort ?? default(int); set => _containerAppEnvelopeBody.IngressTargetPort = value; } + + /// Traffic weights for app's revisions + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Traffic weights for app's revisions")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Traffic weights for app's revisions", + SerializedName = @"traffic", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ITrafficWeight[] IngressTraffic { get => _containerAppEnvelopeBody.IngressTraffic ?? null /* arrayOf */; set => _containerAppEnvelopeBody.IngressTraffic = value; } + + /// Ingress transport protocol + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Ingress transport protocol")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress transport protocol", + SerializedName = @"transport", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod IngressTransport { get => _containerAppEnvelopeBody.IngressTransport ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.IngressTransportMethod)""); set => _containerAppEnvelopeBody.IngressTransport = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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 where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _containerAppEnvelopeBody.Location ?? null; set => _containerAppEnvelopeBody.Location = value; } + + /// Deprecated. Resource ID of the Container App's environment. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Deprecated. Resource ID of the Container App's environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Deprecated. Resource ID of the Container App's environment.", + SerializedName = @"managedEnvironmentId", + PossibleTypes = new [] { typeof(string) })] + public string ManagedEnvironmentId { get => _containerAppEnvelopeBody.ManagedEnvironmentId ?? null; set => _containerAppEnvelopeBody.ManagedEnvironmentId = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Optional. Maximum number of container replicas. Defaults to 10 if not set. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Optional. Maximum number of container replicas. Defaults to 10 if not set.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Maximum number of container replicas. Defaults to 10 if not set.", + SerializedName = @"maxReplicas", + PossibleTypes = new [] { typeof(int) })] + public int ScaleMaxReplica { get => _containerAppEnvelopeBody.ScaleMaxReplica ?? default(int); set => _containerAppEnvelopeBody.ScaleMaxReplica = value; } + + /// Optional. Minimum number of container replicas. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Optional. Minimum number of container replicas.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. Minimum number of container replicas.", + SerializedName = @"minReplicas", + PossibleTypes = new [] { typeof(int) })] + public int ScaleMinReplica { get => _containerAppEnvelopeBody.ScaleMinReplica ?? default(int); set => _containerAppEnvelopeBody.ScaleMinReplica = value; } + + /// Scaling rules. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Scaling rules.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Scaling rules.", + SerializedName = @"rules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IScaleRule[] ScaleRule { get => _containerAppEnvelopeBody.ScaleRule ?? null /* arrayOf */; set => _containerAppEnvelopeBody.ScaleRule = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => _containerAppEnvelopeBody.Tag ?? null /* object */; set => _containerAppEnvelopeBody.Tag = value; } + + /// List of container definitions for the Container App. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of container definitions for the Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of container definitions for the Container App.", + SerializedName = @"containers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IContainer[] TemplateContainer { get => _containerAppEnvelopeBody.TemplateContainer ?? null /* arrayOf */; set => _containerAppEnvelopeBody.TemplateContainer = value; } + + /// List of specialized containers that run before app containers. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of specialized containers that run before app containers.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of specialized containers that run before app containers.", + SerializedName = @"initContainers", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IBaseContainer[] TemplateInitContainer { get => _containerAppEnvelopeBody.TemplateInitContainer ?? null /* arrayOf */; set => _containerAppEnvelopeBody.TemplateInitContainer = value; } + + /// User friendly suffix that is appended to the revision name + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "User friendly suffix that is appended to the revision name")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly suffix that is appended to the revision name", + SerializedName = @"revisionSuffix", + PossibleTypes = new [] { typeof(string) })] + public string TemplateRevisionSuffix { get => _containerAppEnvelopeBody.TemplateRevisionSuffix ?? null; set => _containerAppEnvelopeBody.TemplateRevisionSuffix = value; } + + /// List of volume definitions for the Container App. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of volume definitions for the Container App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of volume definitions for the Container App.", + SerializedName = @"volumes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IVolume[] TemplateVolume { get => _containerAppEnvelopeBody.TemplateVolume ?? null /* arrayOf */; set => _containerAppEnvelopeBody.TemplateVolume = value; } + + /// Workload profile type to pin for container app execution. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Workload profile type to pin for container app execution.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Workload profile type to pin for container app execution.", + SerializedName = @"workloadProfileType", + PossibleTypes = new [] { typeof(string) })] + public string WorkloadProfileType { get => _containerAppEnvelopeBody.WorkloadProfileType ?? null; set => _containerAppEnvelopeBody.WorkloadProfileType = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzContainerAppsApiContainerApp_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.UpdateAzContainerAppsApiContainerApp_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzContainerAppsApiContainerApp_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._containerAppEnvelopeBody = this._containerAppEnvelopeBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ContainerAppsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ContainerAppsUpdateViaIdentity(InputObject.Id, _containerAppEnvelopeBody, 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.ContainerAppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ContainerAppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ContainerAppsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ContainerAppName ?? null, _containerAppEnvelopeBody, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_containerAppEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public UpdateAzContainerAppsApiContainerApp_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_containerAppEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=_containerAppEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedCertificate_UpdateExpanded.cs b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedCertificate_UpdateExpanded.cs new file mode 100644 index 000000000000..3dadebea4ef0 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedCertificate_UpdateExpanded.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Patches a managed certificate. Oly patching of tags is supported + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/managedCertificates/{managedCertificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzContainerAppsApiManagedCertificate_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Patches a managed certificate. Oly patching of tags is supported")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class UpdateAzContainerAppsApiManagedCertificate_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A managed certificate to update + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatch _managedCertificateEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificatePatch(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Managed Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the Managed Certificate. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Managed Certificate.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Managed Certificate.", + SerializedName = @"managedCertificateName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ManagedCertificateName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Application-specific metadata in the form of key-value pairs. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Application-specific metadata in the form of key-value pairs.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application-specific metadata in the form of key-value pairs.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags Tag { get => _managedCertificateEnvelopeBody.Tag ?? null /* object */; set => _managedCertificateEnvelopeBody.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 Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedCertificatesUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedCertificatesUpdate(SubscriptionId, ResourceGroupName, EnvironmentName, Name, _managedCertificateEnvelopeBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,Name=Name,body=_managedCertificateEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzContainerAppsApiManagedCertificate_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, Name=Name, body=_managedCertificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, Name=Name, body=_managedCertificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedCertificate_UpdateViaIdentityExpanded.cs b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedCertificate_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..7dd8cfaad289 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedCertificate_UpdateViaIdentityExpanded.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.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Patches a managed certificate. Oly patching of tags is supported + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}/managedCertificates/{managedCertificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzContainerAppsApiManagedCertificate_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Patches a managed certificate. Oly patching of tags is supported")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class UpdateAzContainerAppsApiManagedCertificate_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A managed certificate to update + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatch _managedCertificateEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedCertificatePatch(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Application-specific metadata in the form of key-value pairs. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Application-specific metadata in the form of key-value pairs.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application-specific metadata in the form of key-value pairs.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificatePatchTags Tag { get => _managedCertificateEnvelopeBody.Tag ?? null /* object */; set => _managedCertificateEnvelopeBody.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 Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + /// from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedCertificatesUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedCertificatesUpdateViaIdentity(InputObject.Id, _managedCertificateEnvelopeBody, 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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ManagedCertificateName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ManagedCertificateName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedCertificatesUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, InputObject.ManagedCertificateName ?? null, _managedCertificateEnvelopeBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_managedCertificateEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public UpdateAzContainerAppsApiManagedCertificate_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_managedCertificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=_managedCertificateEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedCertificate + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedEnvironment_UpdateExpanded.cs b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedEnvironment_UpdateExpanded.cs new file mode 100644 index 000000000000..4da893348539 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedEnvironment_UpdateExpanded.cs @@ -0,0 +1,720 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Patches a Managed Environment using JSON Merge Patch + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzContainerAppsApiManagedEnvironment_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Patches a Managed Environment using JSON Merge Patch")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class UpdateAzContainerAppsApiManagedEnvironment_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// An environment for hosting container apps + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment _environmentEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironment(); + + /// Logs destination + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Logs destination")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Logs destination", + SerializedName = @"destination", + PossibleTypes = new [] { typeof(string) })] + public string AppLogConfigurationDestination { get => _environmentEnvelopeBody.AppLogConfigurationDestination ?? null; set => _environmentEnvelopeBody.AppLogConfigurationDestination = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Certificate password + internal byte[] CustomDomainConfigurationCertificatePassword { get => _environmentEnvelopeBody.CustomDomainConfigurationCertificatePassword ?? null /* byte array */; set => _environmentEnvelopeBody.CustomDomainConfigurationCertificatePassword = value; } + + /// + /// Input File for CustomDomainConfigurationCertificatePassword (Certificate password) + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Input File for CustomDomainConfigurationCertificatePassword (Certificate password)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + public string CustomDomainConfigurationCertificatePasswordInputFile + { + set + { + var paths = this.SessionState.Path.GetResolvedProviderPathFromPSPath(value, out var provider); + if (provider.Name != "FileSystem" || paths.Count == 0) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Invalid input path."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + if (paths.Count > 1) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Multiple input paths not allowed."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + CustomDomainConfigurationCertificatePassword = global::System.IO.File.ReadAllBytes(paths[0]); + } + } + + /// PFX or PEM blob + internal byte[] CustomDomainConfigurationCertificateValue { get => _environmentEnvelopeBody.CustomDomainConfigurationCertificateValue ?? null /* byte array */; set => _environmentEnvelopeBody.CustomDomainConfigurationCertificateValue = value; } + + /// Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob) + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + public string CustomDomainConfigurationCertificateValueInputFile + { + set + { + var paths = this.SessionState.Path.GetResolvedProviderPathFromPSPath(value, out var provider); + if (provider.Name != "FileSystem" || paths.Count == 0) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Invalid input path."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + if (paths.Count > 1) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Multiple input paths not allowed."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + CustomDomainConfigurationCertificateValue = global::System.IO.File.ReadAllBytes(paths[0]); + } + } + + /// Dns suffix for the environment domain + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Dns suffix for the environment domain")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dns suffix for the environment domain", + SerializedName = @"dnsSuffix", + PossibleTypes = new [] { typeof(string) })] + public string CustomDomainConfigurationDnsSuffix { get => _environmentEnvelopeBody.CustomDomainConfigurationDnsSuffix ?? null; set => _environmentEnvelopeBody.CustomDomainConfigurationDnsSuffix = value; } + + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Application Insights connection string used by Dapr to export Service to Service communication telemetry")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application Insights connection string used by Dapr to export Service to Service communication telemetry", + SerializedName = @"daprAIConnectionString", + PossibleTypes = new [] { typeof(string) })] + public string DaprAiConnectionString { get => _environmentEnvelopeBody.DaprAiConnectionString ?? null; set => _environmentEnvelopeBody.DaprAiConnectionString = value; } + + /// + /// Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry", + SerializedName = @"daprAIInstrumentationKey", + PossibleTypes = new [] { typeof(string) })] + public string DaprAiInstrumentationKey { get => _environmentEnvelopeBody.DaprAiInstrumentationKey ?? null; set => _environmentEnvelopeBody.DaprAiInstrumentationKey = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _environmentName; + + /// Name of the Environment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Environment.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Environment.", + SerializedName = @"environmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string EnvironmentName { get => this._environmentName; set => this._environmentName = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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 where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _environmentEnvelopeBody.Location ?? null; set => _environmentEnvelopeBody.Location = value; } + + /// Log analytics customer id + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Log analytics customer id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log analytics customer id", + SerializedName = @"customerId", + PossibleTypes = new [] { typeof(string) })] + public string LogAnalyticConfigurationCustomerId { get => _environmentEnvelopeBody.LogAnalyticConfigurationCustomerId ?? null; set => _environmentEnvelopeBody.LogAnalyticConfigurationCustomerId = value; } + + /// Log analytics customer key + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Log analytics customer key")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log analytics customer key", + SerializedName = @"sharedKey", + PossibleTypes = new [] { typeof(string) })] + public string LogAnalyticConfigurationSharedKey { get => _environmentEnvelopeBody.LogAnalyticConfigurationSharedKey ?? null; set => _environmentEnvelopeBody.LogAnalyticConfigurationSharedKey = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Outbound type for the cluster + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Outbound type for the cluster")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Outbound type for the cluster", + SerializedName = @"outBoundType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType OutboundSettingOutBoundType { get => _environmentEnvelopeBody.OutboundSettingOutBoundType ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType)""); set => _environmentEnvelopeBody.OutboundSettingOutBoundType = value; } + + /// Virtual Appliance IP used as the Egress controller for the Environment + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Virtual Appliance IP used as the Egress controller for the Environment")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Virtual Appliance IP used as the Egress controller for the Environment", + SerializedName = @"virtualNetworkApplianceIp", + PossibleTypes = new [] { typeof(string) })] + public string OutboundSettingVirtualNetworkApplianceIP { get => _environmentEnvelopeBody.OutboundSettingVirtualNetworkApplianceIP ?? null; set => _environmentEnvelopeBody.OutboundSettingVirtualNetworkApplianceIP = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group. The name is case insensitive.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group. The name is case insensitive.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Name of the Sku. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the Sku.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName SkuName { get => _environmentEnvelopeBody.SkuName ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName)""); set => _environmentEnvelopeBody.SkuName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The ID of the target subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => _environmentEnvelopeBody.Tag ?? null /* object */; set => _environmentEnvelopeBody.Tag = value; } + + /// + /// CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges.", + SerializedName = @"dockerBridgeCidr", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationDockerBridgeCidr { get => _environmentEnvelopeBody.VnetConfigurationDockerBridgeCidr ?? null; set => _environmentEnvelopeBody.VnetConfigurationDockerBridgeCidr = value; } + + /// + /// Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + /// Must not overlap with any other provided IP ranges. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. Must not overlap with any other provided IP ranges.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. Must not overlap with any other provided IP ranges.", + SerializedName = @"infrastructureSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationInfrastructureSubnetId { get => _environmentEnvelopeBody.VnetConfigurationInfrastructureSubnetId ?? null; set => _environmentEnvelopeBody.VnetConfigurationInfrastructureSubnetId = value; } + + /// + /// Boolean indicating the environment only has an internal load balancer. These environments do not have a public static + /// IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Boolean indicating the environment only has an internal load balancer. These environments do not have a public static IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean indicating the environment only has an internal load balancer. These environments do not have a public static IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property", + SerializedName = @"internal", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter VnetConfigurationInternal { get => _environmentEnvelopeBody.VnetConfigurationInternal ?? default(global::System.Management.Automation.SwitchParameter); set => _environmentEnvelopeBody.VnetConfigurationInternal = value; } + + /// + /// IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any + /// other provided IP ranges. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any other provided IP ranges.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any other provided IP ranges.", + SerializedName = @"platformReservedCidr", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationPlatformReservedCidr { get => _environmentEnvelopeBody.VnetConfigurationPlatformReservedCidr ?? null; set => _environmentEnvelopeBody.VnetConfigurationPlatformReservedCidr = value; } + + /// + /// An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = " An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @" An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server.", + SerializedName = @"platformReservedDnsIP", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationPlatformReservedDnsIP { get => _environmentEnvelopeBody.VnetConfigurationPlatformReservedDnsIP ?? null; set => _environmentEnvelopeBody.VnetConfigurationPlatformReservedDnsIP = value; } + + /// + /// Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet + /// defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges.", + SerializedName = @"runtimeSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationRuntimeSubnetId { get => _environmentEnvelopeBody.VnetConfigurationRuntimeSubnetId ?? null; set => _environmentEnvelopeBody.VnetConfigurationRuntimeSubnetId = value; } + + /// Workload profiles configured for the Managed Environment. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Workload profiles configured for the Managed Environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Workload profiles configured for the Managed Environment.", + SerializedName = @"workloadProfiles", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[] WorkloadProfile { get => _environmentEnvelopeBody.WorkloadProfile ?? null /* arrayOf */; set => _environmentEnvelopeBody.WorkloadProfile = value; } + + /// Whether or not this Managed Environment is zone-redundant. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Whether or not this Managed Environment is zone-redundant.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether or not this Managed Environment is zone-redundant.", + SerializedName = @"zoneRedundant", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ZoneRedundant { get => _environmentEnvelopeBody.ZoneRedundant ?? default(global::System.Management.Automation.SwitchParameter); set => _environmentEnvelopeBody.ZoneRedundant = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzContainerAppsApiManagedEnvironment_UpdateExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.UpdateAzContainerAppsApiManagedEnvironment_UpdateExpanded Clone() + { + var clone = new UpdateAzContainerAppsApiManagedEnvironment_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._environmentEnvelopeBody = this._environmentEnvelopeBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.EnvironmentName = this.EnvironmentName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedEnvironmentsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedEnvironmentsUpdate(SubscriptionId, ResourceGroupName, EnvironmentName, _environmentEnvelopeBody, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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,EnvironmentName=EnvironmentName,body=_environmentEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzContainerAppsApiManagedEnvironment_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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, EnvironmentName=EnvironmentName, body=_environmentEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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, EnvironmentName=EnvironmentName, body=_environmentEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedEnvironment_UpdateViaIdentityExpanded.cs b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedEnvironment_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..082002ac8884 --- /dev/null +++ b/swaggerci/app/generated/cmdlets/UpdateAzContainerAppsApiManagedEnvironment_UpdateViaIdentityExpanded.cs @@ -0,0 +1,700 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + using System; + + /// Patches a Managed Environment using JSON Merge Patch + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{environmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzContainerAppsApiManagedEnvironment_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Description(@"Patches a Managed Environment using JSON Merge Patch")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Generated] + public partial class UpdateAzContainerAppsApiManagedEnvironment_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// An environment for hosting container apps + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IManagedEnvironment _environmentEnvelopeBody = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.ManagedEnvironment(); + + /// Logs destination + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Logs destination")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Logs destination", + SerializedName = @"destination", + PossibleTypes = new [] { typeof(string) })] + public string AppLogConfigurationDestination { get => _environmentEnvelopeBody.AppLogConfigurationDestination ?? null; set => _environmentEnvelopeBody.AppLogConfigurationDestination = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ContainerAppsApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.ClientAPI; + + /// Certificate password + internal byte[] CustomDomainConfigurationCertificatePassword { get => _environmentEnvelopeBody.CustomDomainConfigurationCertificatePassword ?? null /* byte array */; set => _environmentEnvelopeBody.CustomDomainConfigurationCertificatePassword = value; } + + /// + /// Input File for CustomDomainConfigurationCertificatePassword (Certificate password) + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Input File for CustomDomainConfigurationCertificatePassword (Certificate password)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + public string CustomDomainConfigurationCertificatePasswordInputFile + { + set + { + var paths = this.SessionState.Path.GetResolvedProviderPathFromPSPath(value, out var provider); + if (provider.Name != "FileSystem" || paths.Count == 0) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Invalid input path."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + if (paths.Count > 1) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Multiple input paths not allowed."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + CustomDomainConfigurationCertificatePassword = global::System.IO.File.ReadAllBytes(paths[0]); + } + } + + /// PFX or PEM blob + internal byte[] CustomDomainConfigurationCertificateValue { get => _environmentEnvelopeBody.CustomDomainConfigurationCertificateValue ?? null /* byte array */; set => _environmentEnvelopeBody.CustomDomainConfigurationCertificateValue = value; } + + /// Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob) + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Input File for CustomDomainConfigurationCertificateValue (PFX or PEM blob)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + public string CustomDomainConfigurationCertificateValueInputFile + { + set + { + var paths = this.SessionState.Path.GetResolvedProviderPathFromPSPath(value, out var provider); + if (provider.Name != "FileSystem" || paths.Count == 0) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Invalid input path."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + if (paths.Count > 1) + { + ThrowTerminatingError( new System.Management.Automation.ErrorRecord(new global::System.Exception("Multiple input paths not allowed."),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, value) ); + } + CustomDomainConfigurationCertificateValue = global::System.IO.File.ReadAllBytes(paths[0]); + } + } + + /// Dns suffix for the environment domain + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Dns suffix for the environment domain")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dns suffix for the environment domain", + SerializedName = @"dnsSuffix", + PossibleTypes = new [] { typeof(string) })] + public string CustomDomainConfigurationDnsSuffix { get => _environmentEnvelopeBody.CustomDomainConfigurationDnsSuffix ?? null; set => _environmentEnvelopeBody.CustomDomainConfigurationDnsSuffix = value; } + + /// + /// Application Insights connection string used by Dapr to export Service to Service communication telemetry + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Application Insights connection string used by Dapr to export Service to Service communication telemetry")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application Insights connection string used by Dapr to export Service to Service communication telemetry", + SerializedName = @"daprAIConnectionString", + PossibleTypes = new [] { typeof(string) })] + public string DaprAiConnectionString { get => _environmentEnvelopeBody.DaprAiConnectionString ?? null; set => _environmentEnvelopeBody.DaprAiConnectionString = value; } + + /// + /// Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry", + SerializedName = @"daprAIInstrumentationKey", + PossibleTypes = new [] { typeof(string) })] + public string DaprAiInstrumentationKey { get => _environmentEnvelopeBody.DaprAiInstrumentationKey ?? null; set => _environmentEnvelopeBody.DaprAiInstrumentationKey = 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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.IContainerAppsApiIdentity 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 where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _environmentEnvelopeBody.Location ?? null; set => _environmentEnvelopeBody.Location = value; } + + /// Log analytics customer id + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Log analytics customer id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log analytics customer id", + SerializedName = @"customerId", + PossibleTypes = new [] { typeof(string) })] + public string LogAnalyticConfigurationCustomerId { get => _environmentEnvelopeBody.LogAnalyticConfigurationCustomerId ?? null; set => _environmentEnvelopeBody.LogAnalyticConfigurationCustomerId = value; } + + /// Log analytics customer key + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Log analytics customer key")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log analytics customer key", + SerializedName = @"sharedKey", + PossibleTypes = new [] { typeof(string) })] + public string LogAnalyticConfigurationSharedKey { get => _environmentEnvelopeBody.LogAnalyticConfigurationSharedKey ?? null; set => _environmentEnvelopeBody.LogAnalyticConfigurationSharedKey = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Outbound type for the cluster + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Outbound type for the cluster")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Outbound type for the cluster", + SerializedName = @"outBoundType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType OutboundSettingOutBoundType { get => _environmentEnvelopeBody.OutboundSettingOutBoundType ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.ManagedEnvironmentOutBoundType)""); set => _environmentEnvelopeBody.OutboundSettingOutBoundType = value; } + + /// Virtual Appliance IP used as the Egress controller for the Environment + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Virtual Appliance IP used as the Egress controller for the Environment")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Virtual Appliance IP used as the Egress controller for the Environment", + SerializedName = @"virtualNetworkApplianceIp", + PossibleTypes = new [] { typeof(string) })] + public string OutboundSettingVirtualNetworkApplianceIP { get => _environmentEnvelopeBody.OutboundSettingVirtualNetworkApplianceIP ?? null; set => _environmentEnvelopeBody.OutboundSettingVirtualNetworkApplianceIP = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Name of the Sku. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the Sku.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName))] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName SkuName { get => _environmentEnvelopeBody.SkuName ?? ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support.SkuName)""); set => _environmentEnvelopeBody.SkuName = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api30.ITrackedResourceTags Tag { get => _environmentEnvelopeBody.Tag ?? null /* object */; set => _environmentEnvelopeBody.Tag = value; } + + /// + /// CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges.", + SerializedName = @"dockerBridgeCidr", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationDockerBridgeCidr { get => _environmentEnvelopeBody.VnetConfigurationDockerBridgeCidr ?? null; set => _environmentEnvelopeBody.VnetConfigurationDockerBridgeCidr = value; } + + /// + /// Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. + /// Must not overlap with any other provided IP ranges. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. Must not overlap with any other provided IP ranges.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. Must not overlap with any other provided IP ranges.", + SerializedName = @"infrastructureSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationInfrastructureSubnetId { get => _environmentEnvelopeBody.VnetConfigurationInfrastructureSubnetId ?? null; set => _environmentEnvelopeBody.VnetConfigurationInfrastructureSubnetId = value; } + + /// + /// Boolean indicating the environment only has an internal load balancer. These environments do not have a public static + /// IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Boolean indicating the environment only has an internal load balancer. These environments do not have a public static IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean indicating the environment only has an internal load balancer. These environments do not have a public static IP resource. They must provide runtimeSubnetId and infrastructureSubnetId if enabling this property", + SerializedName = @"internal", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter VnetConfigurationInternal { get => _environmentEnvelopeBody.VnetConfigurationInternal ?? default(global::System.Management.Automation.SwitchParameter); set => _environmentEnvelopeBody.VnetConfigurationInternal = value; } + + /// + /// IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any + /// other provided IP ranges. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any other provided IP ranges.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any other provided IP ranges.", + SerializedName = @"platformReservedCidr", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationPlatformReservedCidr { get => _environmentEnvelopeBody.VnetConfigurationPlatformReservedCidr ?? null; set => _environmentEnvelopeBody.VnetConfigurationPlatformReservedCidr = value; } + + /// + /// An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = " An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @" An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server.", + SerializedName = @"platformReservedDnsIP", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationPlatformReservedDnsIP { get => _environmentEnvelopeBody.VnetConfigurationPlatformReservedDnsIP ?? null; set => _environmentEnvelopeBody.VnetConfigurationPlatformReservedDnsIP = value; } + + /// + /// Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet + /// defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges.", + SerializedName = @"runtimeSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string VnetConfigurationRuntimeSubnetId { get => _environmentEnvelopeBody.VnetConfigurationRuntimeSubnetId ?? null; set => _environmentEnvelopeBody.VnetConfigurationRuntimeSubnetId = value; } + + /// Workload profiles configured for the Managed Environment. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Workload profiles configured for the Managed Environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Workload profiles configured for the Managed Environment.", + SerializedName = @"workloadProfiles", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile) })] + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IWorkloadProfile[] WorkloadProfile { get => _environmentEnvelopeBody.WorkloadProfile ?? null /* arrayOf */; set => _environmentEnvelopeBody.WorkloadProfile = value; } + + /// Whether or not this Managed Environment is zone-redundant. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Whether or not this Managed Environment is zone-redundant.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether or not this Managed Environment is zone-redundant.", + SerializedName = @"zoneRedundant", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ZoneRedundant { get => _environmentEnvelopeBody.ZoneRedundant ?? default(global::System.Management.Automation.SwitchParameter); set => _environmentEnvelopeBody.ZoneRedundant = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzContainerAppsApiManagedEnvironment_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Cmdlets.UpdateAzContainerAppsApiManagedEnvironment_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzContainerAppsApiManagedEnvironment_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._environmentEnvelopeBody = this._environmentEnvelopeBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.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.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedEnvironmentsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.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.ContainerAppsApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedEnvironmentsUpdateViaIdentity(InputObject.Id, _environmentEnvelopeBody, 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.EnvironmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EnvironmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedEnvironmentsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.EnvironmentName ?? null, _environmentEnvelopeBody, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_environmentEnvelopeBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public UpdateAzContainerAppsApiManagedEnvironment_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IDefaultErrorResponse + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_environmentEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=_environmentEnvelopeBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Accounts.format.ps1xml b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Accounts.format.ps1xml new file mode 100644 index 000000000000..ae0c12dd4efa --- /dev/null +++ b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Accounts.format.ps1xml @@ -0,0 +1,496 @@ + + + + + AzureErrorRecords + + Microsoft.Azure.Commands.Profile.Errors.AzureErrorRecord + Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord + Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord + + + + + + Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord + + AzureErrorRecords + + + $_.InvocationInfo.HistoryId + + + + + + + + ErrorCategory + + + ErrorDetail + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + + $_.InvocationInfo.BoundParameters + + + + $_.InvocationInfo.UnboundParameters + + + + $_.InvocationInfo.HistoryId + + + + + + + AzureErrorRecords + $_.GetType() -eq [Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord] + + + + + RequestId + + + Message + + + ServerMessage + + + ServerResponse + + + RequestMessage + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + StackTrace + + + + $_.InvocationInfo.HistoryId + + + + + + + AzureErrorRecords + $_.GetType() -eq [Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord] + + + + + Message + + + StackTrace + + + + $_.Exception.GetType() + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + + $_.InvocationInfo.HistoryId + + + + + + + + Microsoft.Azure.Commands.Profile.CommonModule.PSAzureServiceProfile + + Microsoft.Azure.Commands.Profile.CommonModule.PSAzureServiceProfile + + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Description + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAccessToken + + Microsoft.Azure.Commands.Profile.Models.PSAccessToken + + + + + + + Token + + + ExpiresOn + + + Type + + + TenantId + + + UserId + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscriptionPolicy + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscriptionPolicy + + + + + Left + + + + Left + + + + Left + + + + + + + + Left + locationPlacementId + + + Left + QuotaId + + + Left + SpendingLimit + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + + + + + Id + + + Type + + + Tenants + + + Credential + + + TenantMap + + + CertificateThumbprint + + + + $_.ExtendedProperties.GetEnumerator() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Accounts.generated.format.ps1xml b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Accounts.generated.format.ps1xml new file mode 100644 index 000000000000..a81dae94b4db --- /dev/null +++ b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Accounts.generated.format.ps1xml @@ -0,0 +1,468 @@ + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + ResourceManagerUrl + + + Left + ActiveDirectoryAuthority + + + Left + Type + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Id + + + Left + TenantId + + + Left + State + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + $_.Context.Account.ToString() + + + Left + $_.Context.Subscription.Name + + + Left + $_.Context.Tenant.ToString() + + + Left + $_.Context.Environment.ToString() + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + 40 + Left + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Account + + + Left + $_.Subscription.Name + + + Left + Environment + + + Left + $_.Tenant.ToString() + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Id + + + Left + $_.Name + + + Left + $_.TenantCategory + + + Left + $_.Domains + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Accounts.types.ps1xml b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Accounts.types.ps1xml new file mode 100644 index 000000000000..e3b670a7daff --- /dev/null +++ b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Accounts.types.ps1xml @@ -0,0 +1,303 @@ + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Core.AuthenticationStoreTokenCache + + + PSStandardMembers + + + SerializationMethod + SpecificProperties + + + PropertySerializationSet + + CacheData + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Core.ProtectedFileTokenCache + + + PSStandardMembers + + + SerializationMethod + SpecificProperties + + + PropertySerializationSet + + CacheData + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + Microsoft.Azure.Commands.Profile.Models.AzureContextConverter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Az.Accounts.nuspec b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Az.Accounts.nuspec new file mode 100644 index 000000000000..f664d888f3b8 --- /dev/null +++ b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Az.Accounts.nuspec @@ -0,0 +1,20 @@ + + + + Az.Accounts + 2.7.5 + Microsoft Corporation + Microsoft Corporation + true + https://aka.ms/azps-license + https://github.com/Azure/azure-powershell + Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. + +For more information on account credential management, please visit the following: https://docs.microsoft.com/powershell/azure/authenticate-azureps + * Added 'SshCredentialFactory' to support get ssh credential of vm from msal. +* Fixed the bug of cmdlet fails when -DefaultProfile is set to service principal login context. [#16617] +* Fixed the issue that authorization does not work in Dogfood environment + Microsoft Corporation. All rights reserved. + Azure ResourceManager ARM Accounts Authentication Environment Subscription PSModule PSIncludes_Cmdlet PSCmdlet_Disable-AzDataCollection PSCmdlet_Disable-AzContextAutosave PSCmdlet_Enable-AzDataCollection PSCmdlet_Enable-AzContextAutosave PSCmdlet_Remove-AzEnvironment PSCmdlet_Get-AzEnvironment PSCmdlet_Set-AzEnvironment PSCmdlet_Add-AzEnvironment PSCmdlet_Get-AzSubscription PSCmdlet_Connect-AzAccount PSCmdlet_Get-AzContext PSCmdlet_Set-AzContext PSCmdlet_Import-AzContext PSCmdlet_Save-AzContext PSCmdlet_Get-AzTenant PSCmdlet_Send-Feedback PSCmdlet_Resolve-AzError PSCmdlet_Select-AzContext PSCmdlet_Rename-AzContext PSCmdlet_Remove-AzContext PSCmdlet_Clear-AzContext PSCmdlet_Disconnect-AzAccount PSCmdlet_Get-AzContextAutosaveSetting PSCmdlet_Set-AzDefault PSCmdlet_Get-AzDefault PSCmdlet_Clear-AzDefault PSCmdlet_Register-AzModule PSCmdlet_Enable-AzureRmAlias PSCmdlet_Disable-AzureRmAlias PSCmdlet_Uninstall-AzureRm PSCmdlet_Invoke-AzRestMethod PSCmdlet_Get-AzAccessToken PSCmdlet_Open-AzSurveyLink PSCommand_Disable-AzDataCollection PSCommand_Disable-AzContextAutosave PSCommand_Enable-AzDataCollection PSCommand_Enable-AzContextAutosave PSCommand_Remove-AzEnvironment PSCommand_Get-AzEnvironment PSCommand_Set-AzEnvironment PSCommand_Add-AzEnvironment PSCommand_Get-AzSubscription PSCommand_Connect-AzAccount PSCommand_Get-AzContext PSCommand_Set-AzContext PSCommand_Import-AzContext PSCommand_Save-AzContext PSCommand_Get-AzTenant PSCommand_Send-Feedback PSCommand_Resolve-AzError PSCommand_Select-AzContext PSCommand_Rename-AzContext PSCommand_Remove-AzContext PSCommand_Clear-AzContext PSCommand_Disconnect-AzAccount PSCommand_Get-AzContextAutosaveSetting PSCommand_Set-AzDefault PSCommand_Get-AzDefault PSCommand_Clear-AzDefault PSCommand_Register-AzModule PSCommand_Enable-AzureRmAlias PSCommand_Disable-AzureRmAlias PSCommand_Uninstall-AzureRm PSCommand_Invoke-AzRestMethod PSCommand_Get-AzAccessToken PSCommand_Open-AzSurveyLink PSCommand_Add-AzAccount PSCommand_Login-AzAccount PSCommand_Remove-AzAccount PSCommand_Logout-AzAccount PSCommand_Select-AzSubscription PSCommand_Resolve-Error PSCommand_Save-AzProfile PSCommand_Get-AzDomain PSCommand_Invoke-AzRest + + \ No newline at end of file diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psd1 b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psd1 new file mode 100644 index 000000000000..5597a247fce7 --- /dev/null +++ b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psd1 @@ -0,0 +1,387 @@ +# +# Module manifest for module 'Az.Accounts' +# +# Generated by: Microsoft Corporation +# +# Generated on: 3/31/2022 +# + +@{ + +# Script module or binary module file associated with this manifest. +RootModule = 'Az.Accounts.psm1' + +# Version number of this module. +ModuleVersion = '2.7.5' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '17a2feff-488b-47f9-8729-e2cec094624c' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. + +For more information on account credential management, please visit the following: https://docs.microsoft.com/powershell/azure/authenticate-azureps' + +# Minimum version of the PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +# ClrVersion = '' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = '' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +RequiredAssemblies = 'Microsoft.Azure.PowerShell.Authentication.Abstractions.dll', + 'Microsoft.Azure.PowerShell.Authentication.dll', + 'Microsoft.Azure.PowerShell.Authenticators.dll', + 'Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll', + 'Microsoft.Azure.PowerShell.Clients.Authorization.dll', + 'Microsoft.Azure.PowerShell.Clients.Compute.dll', + 'Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll', + 'Microsoft.Azure.PowerShell.Clients.Monitor.dll', + 'Microsoft.Azure.PowerShell.Clients.Network.dll', + 'Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll', + 'Microsoft.Azure.PowerShell.Clients.ResourceManager.dll', + 'Microsoft.Azure.PowerShell.Common.dll', + 'Microsoft.Azure.PowerShell.Storage.dll', + 'Microsoft.Azure.PowerShell.Clients.Storage.Management.dll', + 'Microsoft.Azure.PowerShell.Clients.KeyVault.dll', + 'Microsoft.Azure.PowerShell.Clients.Websites.dll', + 'Hyak.Common.dll', 'Microsoft.ApplicationInsights.dll', + 'Microsoft.Azure.Common.dll', 'Microsoft.Rest.ClientRuntime.dll', + 'Microsoft.Rest.ClientRuntime.Azure.dll', + 'Microsoft.WindowsAzure.Storage.dll', + 'Microsoft.WindowsAzure.Storage.DataMovement.dll', + 'Microsoft.Azure.PowerShell.Clients.Aks.dll', + 'Microsoft.Azure.PowerShell.Strategies.dll', + 'Microsoft.Azure.PowerShell.Common.Share.dll' + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = 'Accounts.format.ps1xml', 'Accounts.generated.format.ps1xml' + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = @() + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = 'Disable-AzDataCollection', 'Disable-AzContextAutosave', + 'Enable-AzDataCollection', 'Enable-AzContextAutosave', + 'Remove-AzEnvironment', 'Get-AzEnvironment', 'Set-AzEnvironment', + 'Add-AzEnvironment', 'Get-AzSubscription', 'Connect-AzAccount', + 'Get-AzContext', 'Set-AzContext', 'Import-AzContext', 'Save-AzContext', + 'Get-AzTenant', 'Send-Feedback', 'Resolve-AzError', 'Select-AzContext', + 'Rename-AzContext', 'Remove-AzContext', 'Clear-AzContext', + 'Disconnect-AzAccount', 'Get-AzContextAutosaveSetting', + 'Set-AzDefault', 'Get-AzDefault', 'Clear-AzDefault', + 'Register-AzModule', 'Enable-AzureRmAlias', 'Disable-AzureRmAlias', + 'Uninstall-AzureRm', 'Invoke-AzRestMethod', 'Get-AzAccessToken', + 'Open-AzSurveyLink' + +# Variables to export from this module +# VariablesToExport = @() + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = 'Add-AzAccount', 'Login-AzAccount', 'Remove-AzAccount', + 'Logout-AzAccount', 'Select-AzSubscription', 'Resolve-Error', + 'Save-AzProfile', 'Get-AzDomain', 'Invoke-AzRest' + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{ + + PSData = @{ + + # Tags applied to this module. These help with module discovery in online galleries. + Tags = 'Azure','ResourceManager','ARM','Accounts','Authentication','Environment','Subscription' + + # A URL to the license for this module. + LicenseUri = 'https://aka.ms/azps-license' + + # A URL to the main website for this project. + ProjectUri = 'https://github.com/Azure/azure-powershell' + + # A URL to an icon representing this module. + # IconUri = '' + + # ReleaseNotes of this module + ReleaseNotes = '* Added ''SshCredentialFactory'' to support get ssh credential of vm from msal. +* Fixed the bug of cmdlet fails when -DefaultProfile is set to service principal login context. [#16617] +* Fixed the issue that authorization does not work in Dogfood environment' + + # Prerelease string of this module + # Prerelease = '' + + # Flag to indicate whether the module requires explicit user acceptance for install/update/save + # RequireLicenseAcceptance = $false + + # External dependent modules of this module + # ExternalModuleDependencies = @() + + } # End of PSData hashtable + + } # End of PrivateData hashtable + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' + +} + + +# SIG # Begin signature block +# MIInoQYJKoZIhvcNAQcCoIInkjCCJ44CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBfih7Yjug0H4t7 +# yWl+P37e8ytBZAxLWrUP62/jyADYPKCCDYEwggX/MIID56ADAgECAhMzAAACUosz +# qviV8znbAAAAAAJSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjEwOTAyMTgzMjU5WhcNMjIwOTAxMTgzMjU5WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDQ5M+Ps/X7BNuv5B/0I6uoDwj0NJOo1KrVQqO7ggRXccklyTrWL4xMShjIou2I +# sbYnF67wXzVAq5Om4oe+LfzSDOzjcb6ms00gBo0OQaqwQ1BijyJ7NvDf80I1fW9O +# L76Kt0Wpc2zrGhzcHdb7upPrvxvSNNUvxK3sgw7YTt31410vpEp8yfBEl/hd8ZzA +# v47DCgJ5j1zm295s1RVZHNp6MoiQFVOECm4AwK2l28i+YER1JO4IplTH44uvzX9o +# RnJHaMvWzZEpozPy4jNO2DDqbcNs4zh7AWMhE1PWFVA+CHI/En5nASvCvLmuR/t8 +# q4bc8XR8QIZJQSp+2U6m2ldNAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUNZJaEUGL2Guwt7ZOAu4efEYXedEw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDY3NTk3MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAFkk3 +# uSxkTEBh1NtAl7BivIEsAWdgX1qZ+EdZMYbQKasY6IhSLXRMxF1B3OKdR9K/kccp +# kvNcGl8D7YyYS4mhCUMBR+VLrg3f8PUj38A9V5aiY2/Jok7WZFOAmjPRNNGnyeg7 +# l0lTiThFqE+2aOs6+heegqAdelGgNJKRHLWRuhGKuLIw5lkgx9Ky+QvZrn/Ddi8u +# TIgWKp+MGG8xY6PBvvjgt9jQShlnPrZ3UY8Bvwy6rynhXBaV0V0TTL0gEx7eh/K1 +# o8Miaru6s/7FyqOLeUS4vTHh9TgBL5DtxCYurXbSBVtL1Fj44+Od/6cmC9mmvrti +# yG709Y3Rd3YdJj2f3GJq7Y7KdWq0QYhatKhBeg4fxjhg0yut2g6aM1mxjNPrE48z +# 6HWCNGu9gMK5ZudldRw4a45Z06Aoktof0CqOyTErvq0YjoE4Xpa0+87T/PVUXNqf +# 7Y+qSU7+9LtLQuMYR4w3cSPjuNusvLf9gBnch5RqM7kaDtYWDgLyB42EfsxeMqwK +# WwA+TVi0HrWRqfSx2olbE56hJcEkMjOSKz3sRuupFCX3UroyYf52L+2iVTrda8XW +# esPG62Mnn3T8AuLfzeJFuAbfOSERx7IFZO92UPoXE1uEjL5skl1yTZB3MubgOA4F +# 8KoRNhviFAEST+nG8c8uIsbZeb08SeYQMqjVEmkwggd6MIIFYqADAgECAgphDpDS +# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 +# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla +# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT +# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG +# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S +# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz +# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 +# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u +# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 +# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl +# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP +# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB +# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF +# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM +# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ +# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO +# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw +# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA +# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY +# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj +# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd +# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ +# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf +# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ +# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j +# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B +# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 +# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 +# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I +# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIZdjCCGXICAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAlKLM6r4lfM52wAAAAACUjAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgXA6GKgxI +# VhLOuEe05JK0ofRRaS3Iixk8S4yAEDyheGcwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQCk7+MONSYp7vxlpfSvtfVGPGdZ5LuxWlb4eimh/TgO +# qAAMDghpYUB8mFe46dAf/OoVHrcxhCfAof+aWlMkEqZTwIZ6p0XsXZ72jDLDFLgf +# WJNQ605jndPQx7/b3tDvqqI1sCHz4CvYnqiQn4/JpHjiE4321HRDFjhWv1lhTpMx +# Xaifyrvwc1OwLcSqMrEPSShevbYOH54J0MG+qI+t+AQ9D/WQdL/5HBJZ8PDZ2n9b +# I4FxGwm0aeTSnAiV602r8db+jebwv/5ypKfkok4IzN9qdQY1y3jXdP9MfEK2nCod +# Mbuby8eakQsarqZJovnvBOsZANYE8UafuSbYMQtJaEtnoYIXADCCFvwGCisGAQQB +# gjcDAwExghbsMIIW6AYJKoZIhvcNAQcCoIIW2TCCFtUCAQMxDzANBglghkgBZQME +# AgEFADCCAVEGCyqGSIb3DQEJEAEEoIIBQASCATwwggE4AgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIPieBDiQ8jeOJOjc2VK1Wl36ph7izu7GPD9rSN/j +# BxeOAgZiFm2JbrQYEzIwMjIwMzMxMTAyMDU2LjYzNlowBIACAfSggdCkgc0wgcox +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1p +# Y3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg +# RVNOOjEyQkMtRTNBRS03NEVCMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt +# cCBTZXJ2aWNloIIRVzCCBwwwggT0oAMCAQICEzMAAAGhAYVVmblUXYoAAQAAAaEw +# DQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0 +# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh +# dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcN +# MjExMjAyMTkwNTI0WhcNMjMwMjI4MTkwNTI0WjCByjELMAkGA1UEBhMCVVMxEzAR +# BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p +# Y3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2Eg +# T3BlcmF0aW9uczEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046MTJCQy1FM0FFLTc0 +# RUIxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0G +# CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDayTxe5WukkrYxxVuHLYW9BEWCD9kk +# jnnHsOKwGddIPbZlLY+l5ovLDNf+BEMQKAZQI3DX91l1yCDuP9X7tOPC48ZRGXA/ +# bf9ql0FK5438gIl7cV528XeEOFwc/A+UbIUfW296Omg8Z62xaQv3jrG4U/priArF +# /er1UA1HNuIGUyqjlygiSPwK2NnFApi1JD+Uef5c47kh7pW1Kj7RnchpFeY9MekP +# QRia7cEaUYU4sqCiJVdDJpefLvPT9EdthlQx75ldx+AwZf2a9T7uQRSBh8tpxPdI +# DDkKiWMwjKTrAY09A3I/jidqPuc8PvX+sqxqyZEN2h4GA0Edjmk64nkIukAK18K5 +# nALDLO9SMTxpAwQIHRDtZeTClvAPCEoy1vtPD7f+eqHqStuu+XCkfRjXEpX9+h9f +# rsB0/BgD5CBf3ELLAa8TefMfHZWEJRTPNrbXMKizSrUSkVv/3HP/ZsJpwaz5My2R +# byc3Ah9bT76eBJkyfT5FN9v/KQ0HnxhRMs6HHhTmNx+LztYci+vHf0D3QH1eCjZW +# ZRjp1mOyxpPU2mDMG6gelvJse1JzRADo7YIok/J3Ccbm8MbBbm85iogFltFHecHF +# EFwrsDGBFnNYHMhcbarQNA+gY2e2l9fAkX3MjI7Uklkoz74/P6KIqe5jcd9FPCbb +# SbYH9OLsteeYOQIDAQABo4IBNjCCATIwHQYDVR0OBBYEFBa/IDLbY475VQyKiZSw +# 47l0/cypMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRY +# MFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01p +# Y3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEF +# BQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w +# a2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAo +# MSkuY3J0MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZI +# hvcNAQELBQADggIBACDDIxElfXlG5YKcKrLPSS+f3JWZprwKEiASvivaHTBRlXtA +# s+TkadcsEei+9w5vmF5tCUzTH4c0nCI7bZxnsL+S6XsiOs3Z1V4WX+IwoXUJ4zLv +# s0+mT4vjGDtYfKQ/bsmJKar2c99m/fHv1Wm2CTcyaePvi86Jh3UyLjdRILWbtzs4 +# oImFMwwKbzHdPopxrBhgi+C1YZshosWLlgzyuxjUl+qNg1m52MJmf11loI7D9HJo +# aQzd+rf928Y8rvULmg2h/G50o+D0UJ1Fa/cJJaHfB3sfKw9X6GrtXYGjmM3+g+Ah +# aVsfupKXNtOFu5tnLKvAH5OIjEDYV1YKmlXuBuhbYassygPFMmNgG2Ank3drEcDc +# ZhCXXqpRszNo1F6Gu5JCpQZXbOJM9Ue5PlJKtmImAYIGsw+pnHy/r5ggSYOp4g5Z +# 1oU9GhVCM3V0T9adee6OUXBk1rE4dZc/UsPlj0qoiljL+lN1A5gkmmz7k5tIObVG +# B7dJdz8J0FwXRE5qYu1AdvauVbZwGQkL1x8aK/svjEQW0NUyJ29znDHiXl5vLoRT +# jjFpshUBi2+IY+mNqbLmj24j5eT+bjDlE3HmNtLPpLcMDYqZ1H+6U6YmaiNmac2j +# RXDAaeEE/uoDMt2dArfJP7M+MDv3zzNNTINeuNEtDVgm9zwfgIUCXnDZuVtiMIIH +# cTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG9w0BAQsFADCB +# iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl +# ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMp +# TWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEw +# OTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UE +# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z +# b2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQ +# Q0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOThpkzntHIh +# C3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az/1xPx2b3lVNx +# WuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V29YZQ3MFEyHFc +# UTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oaezOtgFt+jBAc +# nVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkNyjYtcI4xyDUo +# veO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBcTyzi +# YrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9 +# fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdH +# GO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7X +# KHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiE +# R9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/ +# eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TASBgkrBgEEAYI3 +# FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAd +# BgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEE +# AYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +# L3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMI +# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMB +# Af8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1Ud +# HwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3By +# b2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQRO +# MEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2Vy +# dHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3DQEBCwUAA4IC +# AQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2P9pk +# bHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gng +# ugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G82jfZfakVqr3 +# lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHC +# gRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6 +# MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEU +# BHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZKCS6OEuabvsh +# VGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+ +# fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrp +# NPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHI +# qzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCAs4wggI3AgEBMIH4 +# oYHQpIHNMIHKMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G +# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUw +# IwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMSYwJAYDVQQLEx1U +# aGFsZXMgVFNTIEVTTjoxMkJDLUUzQUUtNzRFQjElMCMGA1UEAxMcTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAG3F2jO4LEMVLwgKG +# XdYMN4FBgOCggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu +# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv +# cmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAN +# BgkqhkiG9w0BAQUFAAIFAOXvuD8wIhgPMjAyMjAzMzExMzE4NTVaGA8yMDIyMDQw +# MTEzMTg1NVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA5e+4PwIBADAKAgEAAgIP +# IwIB/zAHAgEAAgIRnzAKAgUA5fEJvwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUA +# A4GBANc53MLryLt1FD+jkakQydkemUps4QiN8HJxJ36VPuc2XRhvcn0Fhp1Pi8Hk +# gg08sFJoJ2vT/9g5J39zdjQpnbNGMkfmEi+qT6hbGq0ta5rnt1wDG2pVMuMn7N2Q +# 8CytKi6ZynWVbiCNuQtxsuwdgM7bRwcf510Wwp7iQUeNjJZzMYIEDTCCBAkCAQEw +# gZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE +# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAGhAYVVmblUXYoA +# AQAAAaEwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0B +# CRABBDAvBgkqhkiG9w0BCQQxIgQg7aLPwq2FhUC9oleuUeRc4uk9d+4UFLvls0ps +# 5tQU14wwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCDrCFTxOoGCaCCCjoRy +# Be1JSQrMJeCCTyErziiJ347QhDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwAhMzAAABoQGFVZm5VF2KAAEAAAGhMCIEIOKn52EgS+EFhqx/FxY8 +# xYD6qqUYqtVZ3iZ47g3sjJRaMA0GCSqGSIb3DQEBCwUABIICACJi4QGIi9yhn8uf +# NlWbdGQNP0UkTWxJRMnAe4eQUYbcHoOxPxguwy7r8VfTZOdKBxfy7/LKo5XGmAo2 +# hmZSsLHjtT0zzkZti2AFeCRmZ8DMVaGfR9sWBr0OwlRS3HMDigpWyI5jP/tD529k +# jh0/BYwKg2TGRk6ZmdFWXuQf0lVb/LytEUyFbziq4hoxhKc4IQ3oCcOm1xaVZzbe +# SgzPg3j4QfHAucYgfxJoIUP1lKTRclmUc2ERYmHchaUxeYIdiDHx5lpEdNsh0acm +# LgV307ncxLeN1Ih2E6By+Dknm8OppqVYOSvcjcjqHY+fU7ci/FuvyUVDQv6xe2ZS +# K6qCMCrPWtoOlE3ms+LE5kHVQ1JOs0v7mVVP8xfO+fkArk3RuUl/1gaGxi5Ljheg +# l+51jV5PMM4Vha9KoWfU2306ZLt/I1Rftq1sCOD5ysLnhTQuInQMRpfXlY/rvTPu +# 9jzQ4q4Ty7WPp004gh+9hLIm0s0nmZmM8jyTRUFrK1SfHglBOKgdrcuJfmEuPKxL +# foRg/LzuUjcXvdtO3oozIaVWsTxGx6laY2DkMPnqYaj/oBwla86bNyQT94YTTGWq +# 3mCwt0/H4E3Mn1OXLVIGO3NrzZwTFFN2uqRmcTQ0AKiXU3ar4b8F/ykpQOvTV6x/ +# U7Jz/JaISbEvO3mUarzheUPqVmWq +# SIG # End signature block diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psm1 b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psm1 new file mode 100644 index 000000000000..67107181add7 --- /dev/null +++ b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psm1 @@ -0,0 +1,375 @@ +# +# Script module for module 'Az.Accounts' that is executed when 'Az.Accounts' is imported in a PowerShell session. +# +# Generated by: Microsoft Corporation +# +# Generated on: 03/31/2022 09:26:49 +# + +$PSDefaultParameterValues.Clear() +Set-StrictMode -Version Latest + +function Test-DotNet +{ + try + { + if ((Get-PSDrive 'HKLM' -ErrorAction Ignore) -and (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -ErrorAction Stop | Get-ItemPropertyValue -ErrorAction Stop -Name Release | Where-Object { $_ -ge 461808 }))) + { + throw ".NET Framework versions lower than 4.7.2 are not supported in Az. Please upgrade to .NET Framework 4.7.2 or higher." + } + } + catch [System.Management.Automation.DriveNotFoundException] + { + Write-Verbose ".NET Framework version check failed." + } +} + +function Preload-Assembly { + param ( + [string] + $AssemblyDirectory + ) + if($PSEdition -eq 'Desktop' -and (Test-Path $AssemblyDirectory -ErrorAction Ignore)) + { + try + { + Get-ChildItem -ErrorAction Stop -Path $AssemblyDirectory -Filter "*.dll" | ForEach-Object { + try + { + Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null + } + catch { + Write-Verbose $_ + } + } + } + catch {} + } +} + +if ($true -and ($PSEdition -eq 'Desktop')) +{ + if ($PSVersionTable.PSVersion -lt [Version]'5.1') + { + throw "PowerShell versions lower than 5.1 are not supported in Az. Please upgrade to PowerShell 5.1 or higher." + } + + Test-DotNet +} + +if ($true -and ($PSEdition -eq 'Core')) +{ + if ($PSVersionTable.PSVersion -lt [Version]'6.2.4') + { + throw "Current Az version doesn't support PowerShell Core versions lower than 6.2.4. Please upgrade to PowerShell Core 6.2.4 or higher." + } + if ($PSVersionTable.PSVersion -lt [Version]'7.0.6') + { + Write-Warning "This version of Az.Accounts is only supported on Windows PowerShell 5.1 and PowerShell 7.0.6 or greater, open https://aka.ms/install-powershell to learn how to upgrade. For further information, go to https://aka.ms/azpslifecycle." + } +} + +if (Test-Path -Path "$PSScriptRoot\StartupScripts" -ErrorAction Ignore) +{ + Get-ChildItem "$PSScriptRoot\StartupScripts" -ErrorAction Stop | ForEach-Object { + . $_.FullName + } +} + +if (Get-Module AzureRM.profile -ErrorAction Ignore) +{ + Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + + "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") + throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + + "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") +} + +$preloadPath = (Join-Path $PSScriptRoot -ChildPath "PreloadAssemblies") +Preload-Assembly -AssemblyDirectory $preloadPath +$preloadPath = (Join-Path $PSScriptRoot -ChildPath "ModuleAlcAssemblies") +Preload-Assembly -AssemblyDirectory $preloadPath + +$netCorePath = (Join-Path $PSScriptRoot -ChildPath "NetCoreAssemblies") +if($PSEdition -eq 'Core' -and (Test-Path $netCorePath -ErrorAction Ignore)) +{ + try + { + $loadedAssemblies = ([System.AppDomain]::CurrentDomain.GetAssemblies() | ForEach-Object {New-Object -TypeName System.Reflection.AssemblyName -ArgumentList $_.FullName} ) + Get-ChildItem -ErrorAction Stop -Path $netCorePath -Filter "*.dll" | ForEach-Object { + $assemblyName = ([System.Reflection.AssemblyName]::GetAssemblyName($_.FullName)) + $matches = ($loadedAssemblies | Where-Object {$_.Name -eq $assemblyName.Name}) + if (-not $matches) + { + try + { + Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null + } + catch { + Write-Verbose $_ + } + } + } + } + catch {} +} + + +Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll) + + +if (Test-Path -Path "$PSScriptRoot\PostImportScripts" -ErrorAction Ignore) +{ + Get-ChildItem "$PSScriptRoot\PostImportScripts" -ErrorAction Stop | ForEach-Object { + . $_.FullName + } +} + +$FilteredCommands = @() + +if ($Env:ACC_CLOUD -eq $null) +{ + $FilteredCommands | ForEach-Object { + + $existingDefault = $false + foreach ($key in $global:PSDefaultParameterValues.Keys) + { + if ($_ -like "$key") + { + $existingDefault = $true + } + } + + if (!$existingDefault) + { + $global:PSDefaultParameterValues.Add($_, + { + if ((Get-Command Get-AzContext -ErrorAction Ignore) -eq $null) + { + $context = Get-AzureRmContext + } + else + { + $context = Get-AzContext + } + if (($context -ne $null) -and $context.ExtendedProperties.ContainsKey("Default Resource Group")) { + $context.ExtendedProperties["Default Resource Group"] + } + }) + } + } +} + +# SIG # Begin signature block +# MIInugYJKoZIhvcNAQcCoIInqzCCJ6cCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBnXoRblwqGgp4a +# USzJaf5Wf+Tu+eUWmfecChJ7ENNasaCCDYEwggX/MIID56ADAgECAhMzAAACUosz +# qviV8znbAAAAAAJSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjEwOTAyMTgzMjU5WhcNMjIwOTAxMTgzMjU5WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDQ5M+Ps/X7BNuv5B/0I6uoDwj0NJOo1KrVQqO7ggRXccklyTrWL4xMShjIou2I +# sbYnF67wXzVAq5Om4oe+LfzSDOzjcb6ms00gBo0OQaqwQ1BijyJ7NvDf80I1fW9O +# L76Kt0Wpc2zrGhzcHdb7upPrvxvSNNUvxK3sgw7YTt31410vpEp8yfBEl/hd8ZzA +# v47DCgJ5j1zm295s1RVZHNp6MoiQFVOECm4AwK2l28i+YER1JO4IplTH44uvzX9o +# RnJHaMvWzZEpozPy4jNO2DDqbcNs4zh7AWMhE1PWFVA+CHI/En5nASvCvLmuR/t8 +# q4bc8XR8QIZJQSp+2U6m2ldNAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUNZJaEUGL2Guwt7ZOAu4efEYXedEw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDY3NTk3MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAFkk3 +# uSxkTEBh1NtAl7BivIEsAWdgX1qZ+EdZMYbQKasY6IhSLXRMxF1B3OKdR9K/kccp +# kvNcGl8D7YyYS4mhCUMBR+VLrg3f8PUj38A9V5aiY2/Jok7WZFOAmjPRNNGnyeg7 +# l0lTiThFqE+2aOs6+heegqAdelGgNJKRHLWRuhGKuLIw5lkgx9Ky+QvZrn/Ddi8u +# TIgWKp+MGG8xY6PBvvjgt9jQShlnPrZ3UY8Bvwy6rynhXBaV0V0TTL0gEx7eh/K1 +# o8Miaru6s/7FyqOLeUS4vTHh9TgBL5DtxCYurXbSBVtL1Fj44+Od/6cmC9mmvrti +# yG709Y3Rd3YdJj2f3GJq7Y7KdWq0QYhatKhBeg4fxjhg0yut2g6aM1mxjNPrE48z +# 6HWCNGu9gMK5ZudldRw4a45Z06Aoktof0CqOyTErvq0YjoE4Xpa0+87T/PVUXNqf +# 7Y+qSU7+9LtLQuMYR4w3cSPjuNusvLf9gBnch5RqM7kaDtYWDgLyB42EfsxeMqwK +# WwA+TVi0HrWRqfSx2olbE56hJcEkMjOSKz3sRuupFCX3UroyYf52L+2iVTrda8XW +# esPG62Mnn3T8AuLfzeJFuAbfOSERx7IFZO92UPoXE1uEjL5skl1yTZB3MubgOA4F +# 8KoRNhviFAEST+nG8c8uIsbZeb08SeYQMqjVEmkwggd6MIIFYqADAgECAgphDpDS +# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 +# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla +# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT +# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG +# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S +# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz +# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 +# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u +# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 +# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl +# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP +# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB +# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF +# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM +# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ +# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO +# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw +# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA +# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY +# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj +# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd +# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ +# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf +# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ +# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j +# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B +# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 +# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 +# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I +# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIZjzCCGYsCAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAlKLM6r4lfM52wAAAAACUjAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgqwm8h/dw +# FED0y+xGCWSaD8Fc1mZMgPkryh2zfSvZwxIwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQBvXNrKAkE7o84rJI6+XFvnA65dqlWCZBeFhG6YGpde +# Nom1mPdcfauabmxLKg7N5GG1FBWXuYDu1aEyDhiXzPG6ET+/ikXTGfN9J0D9g5Wx +# a2SeSIJ0XfsllBKKwOKl4OhoY3y5Kjjk08Cw75aE5BR8Ux0FWciN8n+nztakOyN9 +# tf7I5nmgbrHvJC5az2N9aR5DejRvjPDcNCnRkepz3nnA+FQNFbXaKqjgJz9oRBgA +# K2SAZDQnnK3B3MAv7qJX6GyeUhen7kwXZC0OV2RjyPRC+f8SiV/OF/ZsaFe4nXps +# RJqg5f5sUjCHFS5g8yK9Zy6D7EZKJJA4yk8YgRpdxOiuoYIXGTCCFxUGCisGAQQB +# gjcDAwExghcFMIIXAQYJKoZIhvcNAQcCoIIW8jCCFu4CAQMxDzANBglghkgBZQME +# AgEFADCCAVkGCyqGSIb3DQEJEAEEoIIBSASCAUQwggFAAgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIAn/Ph2Du7oUABZfi9Z4pWXxedNUse800UpCJBeG +# +id6AgZiF5hUHpsYEzIwMjIwMzMxMTAwMDEyLjU2OFowBIACAfSggdikgdUwgdIx +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1p +# Y3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhh +# bGVzIFRTUyBFU046RkM0MS00QkQ0LUQyMjAxJTAjBgNVBAMTHE1pY3Jvc29mdCBU +# aW1lLVN0YW1wIFNlcnZpY2WgghFoMIIHFDCCBPygAwIBAgITMwAAAY5Z20YAqBCU +# zAABAAABjjANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0Eg +# MjAxMDAeFw0yMTEwMjgxOTI3NDVaFw0yMzAxMjYxOTI3NDVaMIHSMQswCQYDVQQG +# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG +# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQg +# SXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg +# RVNOOkZDNDEtNEJENC1EMjIwMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt +# cCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqiMCq6OM +# zLa5wrtcf7Bf9f1WXW9kpqbOBzgPJvaGLrZG7twgwqTRWf1FkjpJKBOG5QPIRy7a +# 6IFVAy0W+tBaFX4In4DbBf2tGubyY9+hRU+hRewPJH5CYOvpPh77FfGM63+OlwRX +# p5YER6tC0WRKn3mryWpt4CwADuGv0LD2QjnhhgtRVidsiDnn9+aLjMuNapUhstGq +# Cr7JcQZt0ZrPUHW/TqTJymeU1eqgNorEbTed6UQyLaTVAmhXNQXDChfa526nW7RQ +# 7L4tXX9Lc0oguiCSkPlu5drNA6NM8z+UXQOAHxVfIQXmi+Y3SV2hr2dcxby9nlTz +# Yvf4ZDr5Wpcwt7tTdRIJibXHsXWMKrmOziliGDToLx34a/ctZE4NOLnlrKQWN9ZG +# +Ox5zRarK1EhShahM0uQNhb6BJjp3+c0eNzMFJ2qLZqDp2/3Yl5Q+4k+MDHLTipP +# 6VBdxcdVfd4mgrVTx3afO5KNfgMngGGfhSawGraRW28EhrLOspmIxii92E7vjncJ +# 2tcjhLCjBArVpPh3cZG5g3ZVy5iiAaoDaswpNgnMFAK5Un1reK+MFhPi9iMnvUPw +# tTDDJt5YED5DAT3mBUxp5QH3t7RhZwAJNLWLtpTeGF7ub81sSKYv2ardazAe9XLS +# 10tV2oOPrcniGJzlXW7VPvxqQNxe8lCDA20CAwEAAaOCATYwggEyMB0GA1UdDgQW +# BBTsQfkz9gT44N/5G8vNHayep+aV5DAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJl +# pxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAx +# MCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3Rh +# bXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoG +# CCsGAQUFBwMIMA0GCSqGSIb3DQEBCwUAA4ICAQA1UK9xzIeTlKhSbLn0bekR5gYh +# 6bB1XQpluCqCA15skZ37UilaFJw8+GklDLzlNhSP2mOiOzVyCq8kkpqnfUc01ZaB +# ezQxg77qevj2iMyg39YJfeiCIhxYOFugwepYrPO8MlB/oue/VhIiDb1eNYTlPSmv +# 3palsgtkrb0oo0F0uWmX4EQVGKRo0UENtZetVIxa0J9DpUdjQWPeEh9cEM+RgE26 +# 5w5WAVb+WNx0iWiF4iTbCmrWaVEOX92dNqBm9bT1U7nGwN5CygpNAgEaYnrTMx1N +# 4AjxObACDN5DdvGlu/O0DfMWVc6qk6iKDFC6WpXQSkMlrlXII/Nhp+0+noU6tfEp +# HKLt7fYm9of5i/QomcCwo/ekiOCjYktp393ovoC1O2uLtbLnMVlE5raBLBNSbINZ +# 6QLxiA41lXnVVLIzDihUL8MU9CMvG4sdbhk2FX8zvrsP5PeBIw1faenMZuz0V3UX +# CtU5Okx5fmioWiiLZSCi1ljaxX+BEwQiinCi+vE59bTYI5FbuR8tDuGLiVu/JSpV +# FXrzWMP2Kn11sCLAGEjqJYUmO1tRY29Kd7HcIj2niSB0PQOCjYlnCnywnDinqS1C +# XvRsisjVlS1Rp4Tmuks+pGxiMGzF58zcb+hoFKyONuL3b+tgxTAz3sF3BVX9uk9M +# 5F+OEoeyLyGfLekNAjCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUw +# DQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhv +# cml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +# ggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg +# 4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aO +# RmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41 +# JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5 +# LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL +# 64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9 +# QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj +# 0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqE +# UUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0 +# kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435 +# UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB +# 3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTE +# mr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwG +# A1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNV +# HSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNV +# HQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo +# 0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29m +# dC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5j +# cmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDAN +# BgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4 +# sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th54 +# 2DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRX +# ud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBew +# VIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0 +# DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+Cljd +# QDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFr +# DZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFh +# bHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7n +# tdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+ +# oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6Fw +# ZvKhggLXMIICQAIBATCCAQChgdikgdUwgdIxCzAJBgNVBAYTAlVTMRMwEQYDVQQI +# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv +# ZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046RkM0MS00QkQ0 +# LUQyMjAxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB +# ATAHBgUrDgMCGgMVAD1iK+pPThHqgpa5xsPmiYruWVuMoIGDMIGApH4wfDELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEFBQACBQDl75AOMCIY +# DzIwMjIwMzMxMTAyNzI2WhgPMjAyMjA0MDExMDI3MjZaMHcwPQYKKwYBBAGEWQoE +# ATEvMC0wCgIFAOXvkA4CAQAwCgIBAAICAYUCAf8wBwIBAAICEiowCgIFAOXw4Y4C +# AQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEK +# MAgCAQACAwGGoDANBgkqhkiG9w0BAQUFAAOBgQCCQ+gyinUAzBfQG0tdRLTKoWAz +# 1F9XL8HUl1+DL/nO5fnfNT2fIwdNtkcnjXkY7J89nDVJ5orczCc/Jjd8FWrGsZYF +# R7jTDpEnctly2mdeOC54DPn8NfB2rKnTAZSMNZUA5+qwXYtBJ9/L+zBcWbLJGn17 +# Xdsy6ogPG2mqiNeJETGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwAhMzAAABjlnbRgCoEJTMAAEAAAGOMA0GCWCGSAFlAwQCAQUAoIIB +# SjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIBdm +# /Yr/algho7Se4sS1u0RA1CsQ3avLfVkP9cSuIl4vMIH6BgsqhkiG9w0BCRACLzGB +# 6jCB5zCB5DCBvQQgvQWPITvigaUuV5+f/lWs3BXZwJ/l1mf+yelu5nXmxCUwgZgw +# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD +# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAY5Z20YAqBCU +# zAABAAABjjAiBCDFYh4a5uyi794y1CHlKx3P8nxZO/8fomUMsnns7kvKmzANBgkq +# hkiG9w0BAQsFAASCAgCphAx90HI/vzWSwneRSNg3gV826YqxCNSVkzMDcu1Rkayq +# 3FhK466ELhIxyI9EL3hLCS/BIQYKH8AiVU85P07pmaLls+bUM2CPt3II0oZYY5T8 +# BN/MyqZ0vUS6QvNX8ZT8A82R5/meSt8qS8+8ppG1XumAYmdqv7vriD8ENBrhIyus +# 3Wjwt0rS2kovNj+6g3xMJBU+LnP+qzNv72aEr2LvKkU8/abYiNXN1FGlJPqHYrF/ +# zumVFsNkJMjJrlgRFlo/EROGu3iUiI37hM7mTm77aYrWoMbKrl/4nKfMpjR4KQqL +# Mhi9Cb1c11cugxCFnoc1IA6kQ+Xg1fYUchz5UmgzDTpwic3FVGGRlTv4Wf9PMjjj +# heZyL7BFkHZCpr5qpwpu/ZvpCSQpsP4Aa07qY5ffgRu/te0ip3gkzL3Ur7zNqf60 +# Dw9If1ECZOcx+GMgIHd0t+48+hsE4RrmvMvWrEBz2B/BJEOfrIQEClhFczLjDd4G +# nhh4y/vSlqbUUupH+/oJRtpla+ZQbAxsg8jTPsiGG7hmvSaNfV7+SgwCjO1HB/On +# DkzS+edyqivrfkuwjFYecbLcl9e9Pr3SPFvelW5kXiQw2KyWFrD0aznq7YT0x/Na +# /XaZDuLepRVe7YnvH4Ky7yk58zG3QYNy5EJ6Pf3ClNsX4BBAJsUrWMxicmpUDg== +# SIG # End signature block diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Azure.Core.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Azure.Core.dll new file mode 100644 index 0000000000000000000000000000000000000000..32652d6de4d07df3cfb06b166d419796c0c144ae GIT binary patch literal 251816 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

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

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

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

8&VXGvj%>^QL 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 literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/System.Memory.Data.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/System.Memory.Data.dll new file mode 100644 index 0000000000000000000000000000000000000000..6f2a3e0ad07f3da4c6be0fff96acfdbe69d06af1 GIT binary patch literal 21368 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 N-SPJ6M)<42{{pN^vXB4( literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/System.Text.Json.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/System.Text.Json.dll new file mode 100644 index 0000000000000000000000000000000000000000..fe2154a3bf3a7658f106424bf00f672620b14e67 GIT binary patch literal 293240 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Ȗy{PvZn`TDgw*&Xlxf8L!@KuU+WM^zL=&?gA3KgB4~x_Y9&n^em_(5MUQd+x zfx@@LSgV|bG0YPoR0045sf9SYWPP$2mV~7fEa9D<&n9-~S3pIo&k~fcZA8UAgPBC} zIBZ1u54H|#4@Q|jLIJ{*6HLDf@#FA(FP?dm&UpX;*2#K4Q{4-CI`Bfm3|y8x^?CgC z*qG>VM27kuWO|P?Or=tJSWi74MngxzKiAvcvjRQi@dyZm(;nnLZpYocXz7@T9gENi ztP|;Dtbq9N7J~dKP-^gRXjRM_0EVXkhg{H`bM3@$~Pk%58r(_d@ZPZ`hggq#-{|2vW6&fM?i zslEbK=6);TzPaDv>CG~xWjn^7vYiQP7YY(S$Kgd7hjk(o55uT7ojBNeuw&hHj4;o0 z^3_CaPajqan0I%45=w%xoY%evph<3C!XuhO>RZk?(*7`capke{Xf~$DGx01GK2KhU z10lRz#@BC(d3HR3^htn>sgr?M(X^6vaga2Xjg4dSSeaPXoG4+wM9-hf37jCXSSiCm zi23A3BeOrfLfMX-8X&nE2cZ^Z!0#wu_@u;lo5cRu_MHm6(G$&O0 z>BZt46AoL|53ayM%QqDReP+XhnFQQ`C?_&8nZF}h{UT;Ikx9^gWDX}X@f>6= zcY{6g9Qf~I!PR8aS*=vgb-Fe;wQ~3gcT>yGXH&bUb{_}jU^oMrVBX(sI>14?h=#`# zF)drN^Pv=lz`k?z+@7bN>V)A&PqB==pdtIgFIhWJ>i|o@kHemQ7Y434?c`T?%j>G5 zM2kZ`URa-#Occ78g)WviwfRn~dW5<+@+BSl?`A&V2$TT%PTv)C8hC^I)Wzr?bV+p@ zD55?@vLFIaR!_apMAk9#0sMG;;c@Oh0K}pDKN0Sw_AH|#6=y{b?{YFt^`Im@{?B5y z+Znk6ZzkiZ%j!~2t(Q5M&d;f3nW1&OrJ%zy;K_6K_chc)ZmQ2msj}@AXTT}&&e7$e z{Y!b-c272!;J&^of2t{ey0r~CIdm1F6t~Vt6Mk4HE}V4|vox*Qhtp+_lOTA1B{7=C z+eD+O=`Wy1p87t=D_6|7qtfD<9GbPI-y+?Fj3>4})){OAgt-vuB#inM0k^HXm{rLK ztaqlVcd@A_K7Q@%Es54U%hcPv?|Ox3y|YcdOZQ!GI9hMLsdw4F>n)Ae^G&@gOufC( zWm&Xd+|+}&(7xz-P_*7Trry?l*IOQ~x53nV{=VytMC(D~$+%y=?|Lhu_0BW(uGx3J zgQNA%H}$6XT~9^p!N?|fUbpXhheYc^KahGa*mu2Rv>x;=sdqzDy>-=w`5hw1O_~72ne8p)_AEj|w(gc5xxnvP;TIF9L61G(O;I8;^Z0 zSFo8bYz!doL>9HLlOK)eo9pyP>ReNAN6W|)xw*%FgwEVnCGupLe=AHHCaK(G$Fil; zj?E;|j&I2CH-%iXJn1E;Cc}wc13RdTelRN6YvL5<>n>q2*(Dt2+4Zsa~hlD^Qs>ifwG+ zaCp=~d<5z?#-ywxK7(8X?XWBkPc+96R{MO-fqFa$CtO1tzG=9`X98<4f1 z+Cn%&Z!~;8HV=Oip}c51(GQC3$zdO&$sh^(p0?>U@_#ns(nfwy3g~`@ZkZe4FDbG_h&-k$-lbQ2#a+@n%%U|uOXPO1Z`J%565~CQZ4s@JuX`VreM+KLmM}Ja*hWp^KZ? z;A781BIrEWmd+o>7_cAj!ISiR2cGTd{CZRF7E|t}Qf@w-G3f;!mQsNSl>zYP(-|t3 zl!GoRw6x?EpkPax5GuDYPYI#Va-$UhMH5zFQac;GABb*zxdLy4sdFR z!`Su}O=>Zm64I?=$oM8^$ZleWiA~I~s)-qfG%>?=ItIFh^6et%7`GD8d5$7^vQs$g;`!C6$# zD$YG2Xd-7k5@-R7$&5=o2~BI*f#6*1mseoM)d$}gm!cPj8GfJ@nf;|od>Q8hU3t-2 zyy$>^$=SHO1lRazlPj%yn4-biywijB$GcJI^1bj-yW7AP=4UNR=o_0?PokMrygUR9 z+Osk6>gnJC3S?B{*02Q%hj);y1-@4RUySGHP^}!_u^EqGcLf?X_w{JsCd|^BP!*<-9Y2(+e zZ9qx~wcj+g0ioV#qthB5ZL~2qX2n-Y8!-#}S~@5-wQ(x@5w?Ld)!zcJ$m?{yQ*1DS zEDGlumUMJ3n|mVbKF%Ie0C7=~_92^Xyy;pzK~5kM?zGmN(!k}k)2x8FPuh??}D2&Db+<_00E*2P`x2pd<|NZp)v499lHk#nz@yJ5Twxm_>{UIR=|PWpul z*Zv12Cf+#d#`#ktd0Dl;t0NX$$8~W-T>T!U3(MAze~Btg;p#S-!TRy{N#=B$%=G&4 z*GcAuZ89%hKYqPru56RJa{V}!EWdDFo6N-e@gpVk(rUgH+a>GAVdX-_E80{{tslqQ zjm+!U{t=W$$McheatKP#)WQwCk}iM)N(@xtiwW3Y4nGA&Uv4*>xC>R7`Z#=YeN332 zVtm~JA)xGz+`-AQC4kvKrKw!FunM0E+?8XZ*N?{3&rkPwWl%JX$2J2XIO$|t~PW=HrfLZ-MtP>cJb1P*Z|m%`-Xhf&I2blK)d*LUIYpWGr9 z?ZUB}kmmMF72tR1@%1WCuu35{zs{n|bS>U*GY`_hhGHE8ESO1f!?rC-vK z|A@}#g|SU10g{e zUbda7;!{w8I58G8*kr!S!l?9PK512vz%jTf2?_S>zvFl7Bn$kXuz&>E*X4liV$oj979IfxjBv`Bj09(Ol;?fH^OABIiig)ah)U92ou#g zB8@OHog>Z&6VbURbeMR~5o4qi%{d~BFtMB?zV>$h%4I1PybQ-kVXd59p%l@dV@H4_ zIR)IVK7sKk*9-sX5uGD5{nw7fe8bh}D;gN;=1Lh5dmEx{7!;#K6pt1L5fW>7O`1@T{hnfPXdN3x5w)aW(K4k!SclAM*P^HLrb*;Bv(L6v{n> z=h&}sldqn%K#fpgEK^^>6NAsWbUNVI2w!}u4A>#OFDhWlWiy=`?esUbQ^qaIx}hfl z*b`5xT=8aIOML_F;2LH@U15MJ7OgPh@nk=}ouz1O}}v@L%e)zFIz@Yp(vKIQmU>t7H{ zl~!R#um>St6@UeYo0blJ7bO&pE+Ae``Pg%?>SVISm;G$@6e5++Q6(3eqLbFN(3Hex zdn|3*8|yLgMHiS9zHI0jlSC4yA=sJ#`^ejb<}S<-5B)BoX$!)f7dL^gKW*A#-;#dV zyRlAx(blk~t!#>3(5AOpcl;kvAKhV(<(dHLGB!Ek`;E|j`bIDA>WItxjM`VFj$Qfr z@r*y23Uj;hI%0gQ!mz`)%J{1CUF`=6oW5!V?g;wn(rVnjdN)u`mkti=!-+r$oQs1m zgup4FM&hoSg7-)QcIlzfn7tTlkfF6L?@(VS{eJ|&WURl10LGfMr_F|da3#lB2B+=h zhl(>$>R5Dvvl`bz=H$$m>(cdg8nO;)h&o%xvQ3q?Uf_U)=FVH!dJ*bvWWC1v8IiVQ zkWl@(`cf?t%9MNwrm$^q|0=N2t6yG^xCm8~GN}c!UfkdTrWcF6mi2jAE<%2r3-OS( zuiP2IC$|c&n)$+93mUTEl~)*SKL|=uo-S*}HaGVKQS8@^E`+f99tjQ{xaYnh#HBq= zGIp-D5nb@5e>F)4Gn65`NIk4hVQT(n>GSlWuJp~v9<(BmOo2+t)Ick#>0+A@%4 zjBZA^o5u1O$jldjr*Qjy=#LxMi>>-T$UK2}kl?A*;GFt4a(LBp+y{puwl4S!3`CoP z1}n47i>@>AX%zJfE30YT)BZnz5RAW{l_fJ@eXd`at719)4szsLCcm(36x;$aXdH%( z|F3ixSNl_|;nkkhbl`ZV{*xfR$|gIZDPedxWAvX)Omw2svARL5z<%K(E}V~}Ug==q z^dkZ&6?FbkHK-@0LWE0p9y%&wKairo(Y*MwkQcQUtf?XL;Oa46mkRvKm)Ytgs8hZ$ zGHJ@_-9YQuYc=Y zSWD{~0PEx2Rn``#Fk9VdaDD~nj-hIF$e)H(5$!WCisv}gNXsc)P(90le)SDHo03Qa#3a+-ORF4&9o)bi`FL)&%6y`hh_7XG8giwCdEb@&wgsOydm#~87 zS7=xg7=VhWJ7j3@$X)+0q`a0*Q&75?YP_@!4M=P;!=v!@OOFOVypedh-^rz?pZuywyJo`4n zav31U0P*iKUPZMi-B9Nzy3Q3m^>_*^uC8BK{A% z41UBdz#=3fYqHs5>CT(%CXNi%Exk;G<7h*~enY+)lMC|6(lMrpzq(9CPB^X$5=#Q3 ziwq})oDIH)RnRNBK5lT68^g^l6k{JXM9!HSUZ@)A8hkmKeWtvDeu8(0jORbx?5@Cd z`!M4r3f;+)za&|53j8z&?$mz*qc8Pha{1?V9M;L{n*x+FM6s7Qxr1l36Q8ggP^0st47R%xUZ6HD6^AZbMuD57FfQA zL^#PfyVkpb<1BHE@G0KN(;TMW03?%sZfvqAyze~~$E;r)j(GoMID!q;UlhTd-tRAN zl7sz|n%dkY`s!!GvU=7j1JDSZd>t&5P@EHTQY2)g$s)oda2U0=6K@e>ffjN}0|ttV z!3!@teh@XfI*f4|cib$irsES(rY+>bY(#J7svn1OC{=nvynKOrEf^}Hud>0`uCEFu zv=?ujYAj%oe}egi>#G&hSY3ef<|Ty}2=Tc_7;(GpQqoKt1dqmvaetyPj1M3cumfy{ z)&j_wRrN$Z_BiYw_^v0n0%O=3h?MHFL6{aGzLxKvh<6B-7V(bBWNvzq0m`=-Ah$6< zLgO<*9q6MOHz*z3)!~Ken!1Cm3%2WP(V{$eYG4dojFzVH<$xf(e0%HxbM{K3{SG}h zXeHvc906V=1Oxm+c&?xNNxe~U-Ky#eo&QVZ^Atr&WZa1%Kxz~$O|m&%@=2D&8Hz3$ zoA__^r%^Iq7#%Ie3nz}Qh!-v&U22f7i-5)0$eA(sWXw^%x}gF5R|Jk7rUvd$yuJna ziK7P-?y^?6g+wc0fmyg*Tg!w5|J@)#qe1p2osi}dk9W;JYO!JU7bB3gqBOtK zV2i9WatLx;aM6wDg0OjfjiQd7dJU$YCsQ*w)(IBZlL3s<)H27_1w zjdRqmK>&(?3d9mlz^cn_PjBQBdS&vpX(Fy=C$@F08R{X9jqf9~t;YVTd_*MDUtJ2N zvkD%d#>pnYlV*1XmFG7kK5+QGJR3HJO2%FkaU4dAo>M5VeIDc(W;MIDz{1@|E159- zw=%3b)x2Y$()}x>TQ+47(vbx}l(%QOnG48W#^t1uG@?i9{y98gqsL_H42-RQBh7&loXjinQzbkP966L%JXe!qDZ9)U# zzVkeA-*Fy>9{m3u5JS;^h%abs3(;jPNd|1f6Xv2;Dv4ca;s`>=IVX0e7tI4mCLG7h zPXGu$YzFAb#((1X7V7^BKSU_R0rN)SAub?xA+E<8a>ElN(ZoYY8-Jjlk%wMl>{_je zipYRmq?CkQq?CkQ6!a@Evg1ugt%Q~p5P~dLx=^<|0L(PLl~YQm=(M3m+M%UG^#mv{ zT?hwht(?XcGa3#LVvG*rh~Er4VwFzAo5>stJZUT}Kg*dv3)VX)gEy8%ZH47U3zSLNBM zECs6!zZpW~)0(d$ERH$h$ijf9bM9vjrU&NTcR5pT0$)~gT)LWeWaGD@2-mME7JUZS zuclVptxDPg(;_)2?B_F5cL&A@AB_Wvya}0M8u4(HL|Clnpd81MYAY=608fdqXhICa zqJ==w)rzCgZnY{sTckuYq|iJ_2HVGK)l^Zx4gu__d*W=u!pODV-<#cbZuP0yz1MYs zl~ulImDe^+Tm3Icgcn_l&8dH8Dr{DTmCf8>)Di4*=VkG{%C+tTK0ffFa`s06!M4v` z*Ef2MyAFqpp{5TD=7sJ$v+2!Gt%OyJdlHQzjGD)CS5z{(Pi1v|ComFjl(Bo^$CD}b z;E5)C=g=ZhT8tA*ZV`h@912>o8&R-x&5GVsO{j{N~FPlfdG4-r>OA-9r# zU)Am_dj2FjU`%3?JBqh9*$`5VK?Pjrs6V08rH{+loB|lz0MlUDzp|r92dHak&_y*f zB*QyVth&q_eixpjac`I=n=01sk(Ome==(`z;)o76V{H(6P6JqBrRW4;dE8=19vj5_P! zmnIp~m-}iyaU$DgyX*WZm}q3ZDfO6vA~>_NG<(8VqA%dzz4Pu_&Ai)J=UqLJY7aS; z{5vn_DdyOPgIcT@hJ``k<#1TmCIEd(6z&Vw0x$BgyqC=RA$B}1Wne>z?6$Q~T{KFK zkXsY&;j+jW;5Z+eU~yLcm9XA2J;Il@R0ljx^kph?fxW&uMuKvSJ$R(U`XKPf`I7M` zN&52I)iNZm!(R{nj>lhszcu)?@wXm-WBB7jI*7j_{z{vtZ%2zk>B{N1%X8E8{qj72 z`U~r}8{v`uFl&IgPv0Q2*fRgXLM6K31Oj>C@$j9n{012Yne_ zvXhsJqg{R%;geWtaQG-mR*5-b|a7;(r3|@scQLvDYfx*H))LW;*1sbrLw`b+D>r;#`fhH+Z+V6 z_P%P&LE5j-q;}3qh(i{>JAkSaYfx+cDh~%`IgtruPDsH_`+~NfC)$5ZX6nRG!QX9zoCISGfXkPPeko1 zx}6DBtT>l=+z>B!+rBQ5mx&>F(sE{15+d2JRG*L<%^e@r&}Z==0>xMgNAmE* zOOx0m#>xWp+aAxGRj%ojej$$$;6a)59_VDR0zT$gef}$;cn@C-0a$*xxTFo9rou`v zv53oO8`Yaf1)V_FsNbfvUZ}QU^D+aOl*JJqom+X5#2e7`Wq3Z`4M~pUER5eg>4H{R zd0H@`WAJvaR+zj^`AvY?MWuxYpF(Xck$S1be3hjXpQw;rb3NfymSUGHV=tYYs-EJa*JzaTbZT@l_V-KZuyir0clyMEnm#?Sm|n zNl$|0UjejMlL3uWJo z$Nu|=`~YoAy%_yut?M|Cn*_-;aK!q#*JY!fBz&3gHlKh%uI}|G8Ut2n9n% zT=6hj_hK<(jW~%^<5kpphoFf$ek+=aR19&~P9C{zT#U34T=0T4aKZc16W^i4LxJ=0 zMB;_j6mHbp(}9!|nGzTG3h{}-H4iCBHC_bKS6$qoOQAQDXrT-MUBC8w7zu+@=pvKL zCW(4BRoV<>Qid>TNL3uvc$Fy7zD&9mXc9Fk;VH;Nh?(RdJOS|fcM6%Y@pqz43F2LD z^PZQa$2`O*JIfpL18O@dsLRW`ZMiI}>qed&rqyQMiKtA?z z3RBI52NuOx>8_Thv9SypNB1t|sC_YIiRa5?y%uul!Du9MXvXjR^HWc8pR){CLZ!{} zmGB#jm#w|Rw2$1+!MSkvtj|-U4mE5N^?9n>inw;A<+b3tYZqr9ox2hf@OrRtiTq|V zunU&PO|pAB(&J|#o|xbguld>4{EVS!0CO4HLu$q{}8zuLEdg)R?M+C{FSVtFJ#wR|3Y0iZkc2~M&|WF zan_0N9Rp^%f@2-6G2KWTK?FtZG}r(+-&v6MNxU~4@fB=gpRgwjIu35G9~Z(8!E^>% zpmavu_?|A-t!{sj{$Mg3L|4QmbVY1*YrYF2_BD>xkD2spj9Cu*_tK&W8104FOKxm& zyZcVq-DBw!VtRoMjwnf?Lw>!R4SQy5fi`2+QY6`a@b<@B(x6j!!3=R8Tci=5xClPZ zK(e{TRjsRBiT18v{u@j~-|d@|6^Q zgx4VMJde~US#hFwpgdA}cK26#r0T zjYn@_LZ8%zNqu6heZk22;9h-F8v{d^R5;$@WP#W|LoTU1_Md;7-7@tiJoIQi8Z#A3 z5@&jTe?3}ph`JC(;g=TW;t5<4(ynNfjXk(hHym2YxD)R}t?{=B1%-L{;n4a*mfSCg zR`Tz}Izm4IKMOjvt`LB299qf76VOeqad`bSIkf&7(wFc;@53JJI~cu2OqySCSb`G**4IxWlCZeep~{WV^%?U!G@ZyrCA z<<0SKlN0PPGxS;T8rYkyaey}^hv4gIa{fq;{yl!8vMx_2*ybLL>6V1o5|1F&^ezYyH!V~}2 zMRqv)+6VX&uYEMvG@i8FbN&T*-cG(3PRHlB+HcskU^2UQbC#ZpPtcMV(fIn;z8?ua zaJ~8=d%&YX6Xfw<6Aan-^PWKN`+3Vv|5n^J`f;3D^>3X@Y@L!1ra@gr;>VB(L#IAv z(FU{t7GF6qEah0@L6nfsx6)}#-^?LXqrHP-sT1zyqRVRU5xU>W`P<3h@z;|UW_4`O z=aIuBeOPYXjVq@ZZq*)^O|Hv^p9>3@aQOXpa|r_NC*mv%N3WHmxO$^VAA0z6Ho-(P zoNe}sYv}IGb3h(9SI#vE45GO>eV^b8+5{96M{5hqQNk3?FHo|MZ@ipz`ZwS$h=Va- z@D8-2mNOtU9Rp4808P2~hke8=9|Fsc?p+~R`xGc&x7&zDqG>+dta6?IzTI9S9W5;L5u;eq=2FKI|_@2?&Dd0h!CdA97X!yQ7{U#|c? z5Qb;=e2;C=S37Oj4RqRJ8=o$oEW*eVxfIHaPtx%j@54rbzOPS@*>z}>`*!r~bKshC zM-e5fqxFH)p4)@;>EdL8s=$ zqkTFs1lMqVH6F|ly!4MZf$;{xk8w52>YLGctJg9dy^1>pmWSP#Kjr#0XDNKg^{psf z^rGK&UyHWkN@&`qfY;4n$=ttY3^ewG?U{(6%Sn-1U)&C8FQ{Np8m(Y*W(CjSJvVB(GTd5hR>JO+kso~LVV6Q z3L4W1Z%pEY^XeW7@Gi6d$MFp)e?6QdbL&I99oxC<0JQUt{b&b<*T1W8Ymy%lA!3mToXZ+PQaLJM-xV z?fGvWAH2l1PrAMJ0JQT@^V(^q+jBrS=zo7>fAsyt>YwK|b{+-^bIr2OGvh=(?d}8B z-h1Y?cRt!Xi0$#;`H?o?exTZXFWb!41x3Q~Z=Aq&&uCX(0MOqSv90f-eav-3*B1H5 zS6U9k$!A<{i4Dwo@OtyTY<^<><7fpRIQR$1xk>_%6`IHu6I*x!{{%i+;ptCS;8cQ^ zkx!!-_lDReLavwafanf_5^RptBjo;4OvFIl)eKK(hZ;p38xoi=yrStGJ{E(`Vn_I$ z82?5hA^p_Y$U4n_LUtagejajw`>Em0@8_G_^z)-wGVnbd|3+4le(KsHU!FieAyc1D zKhJ3lj2X{itbW$k)f~_@2c)9{FamFWN8b|d=<;fw%Uz=JVI05p!#GQ9bqqMAIBh$- zo&^?FMe0UXyS1pKnB27Vp%p$@b_*nLO@>>M6-*usyi zL1D=7jH6x;#4DXnu9in3g|qdbVmn2rHh>V^SO=Lp1)RJYyboi(Md$GR-NKrNeRydO zAI|RX!j035kbkN`D8B%2^mbWlF;e!pNiVm@_BWL$PzW35MzPAlk(9!4b!`YGe4eV7 z0Kz%=B!`9`K217b8|K$J*vzpnz~MOi_)5|b*VF$V+JBLkcqC{;cw49yhK$z-Y1^J>Eg<)>;(@$e<0lO_vm zSN*{EYRiyr`?Z7c*prv-p*Kz(#OA zo@%qC)i$EPPOXMtbsJAyf%U|x2?I0XK}L?OzeXhd!|Kl`5x&3AG{$ z(u1n@U1V1V5%@L(nXmvVmQbWLh=3GHAiyHHjt9^>AUecd7ao!s_qHu^6&?KYpU)Dj zut&WF0cpBc2ACD`S_O~%~um$b*Z~cDIL{$b{qrvYYbq#2JbPrXVzBYVJDFK zTe1)b=Y;_7sGHap>_XSDsc+y1p9N2w=$j>KyE1l}L}c)s-de3K)Z zZffp27-B`lT>q_O2#(}--4v$WJ%TIsIZ5uW;gzaDH*qoIrfvk2M)URd>H&LZHENqa z+iE$6DeNle2=w1SU59qHBB&*Uy_mbEbUYp@jtm4RK@{x+rf zuq-AqW_VnRDzu=X1ona(03WInzMbU?y=%CU6;tjItnG&)grV7m@{T$Tk#quDT7^Vj%LJThz%>Wo(Eb>#}SG-fS@d#2!6A0QXl&UeitZ%D+}P2dp}Dpt(OXVf@Vm%)T zcy&J<>#jgj?GZrJuis#RO633!EllSEEw)2UeCvH^7pn|4!=#V8wi-cMe4h|F@!wOM zgYg*3`2)v5^#NzDK=##vzqooNR;NYUI(>Cv)umlv#A^WM7gU>F;|baM#I z-wbFE0F1w=T0!+ljrJ8hR=AlJhN_EDAp$gn8AFlM6?J@F#3udx>cee?IZaFlq-KAJ zPWPo@O@}qh^_n(fOW@jrPuCig=+$A#4rF1U$(N7#?%ggR^nTFIv3q;$nA#392fI!U z<%Or`ChUA(?HG(%(l@KC?IYz_q?FI_YHRUKdofvm#B05K)T6I;^`OLUTl&WqCvtby zjzgJ-98!0Hx@9+!zYE{XTmpyo+qUG#T$C$%yUq<8*KIHJc2Q5#dYed!Zcpt5niVkN zjd+%myZXWcBB6c@?uSh-W^sA?0Q%O*M<+WR-ARM~60deVQG*QAZD`c+I^YRN4!lNP zodGkTcyAewo|G0{xmIKX9~!qSEAVk@=F_7dFx z_#d_=?@C+a2fZVLAMP#E$x}_qc>gtr?`vaSXrQf^Rdp>|4D|?5k#}ZfVvgHmm5gDRbF z?PAa=ov8gYVvsu6$4L{tPR8{kpvJM8wH!3tfIj{jBx#UKs@M3nXJIfZ&-K+DAeCV_ z69UG4wS)1qT3VzRxL?CtrEu_u@YRhDAtW4C&Nvw_+E(e{=C(_De8y1_?QG5<0kf+T z)}5f=he$uAFfDucI9S&bu})7xLGy~8u}ZoVop)ljE71M!m?I-OfkoJI+A`boI%DPX zE&$hS<)B%%J6$fdc{tTKSD6VoLQI6WZbZwU8N90xbO>vj2l*^@BwyC zZ^`eB)t&>+C8c^bV|Qz=EXS~rl^i=8b22eaui`#X%fw6rCAI7L5QVm#sF(B$z4)h2 z#Hd~e8rrGeG!Uygpdpo5s*_6&OJ%(LXcnQ-&Qd>)2PjpblvYztr%P&6AxeWEpOkxG8Wj$Q=zct@k)%t^p{WG8bJHq^K<$#G{+L7KP6Tf_WQ5w5Mnk8USs;Sk)q zpK_=!R~6L)0;2X6e*0=_?5Zy{OCBv21;4`t%0_wS9) z%URNELHmz@CPvI{(DJNyx^$#`f;W9WF3nMAAX+)pn|^maaQH7E626 zcZQL&_A?c5xB=!6fBJvJtjeH2eZ)|`l0UsAjOa=?8H_>+3q>{}ctr=L4444^Sp740 zFPMs)h*vU0b$fGIB}_5u_T9BJ(Vt$07q{x)ia!i+z#gE3>G~nw^t~ZQ6?E|1^$0qc zTx1Z}xS}r4Mlge#VJz~dPYg>|Q0>KGL|1z#?BWjW+T94{YiAR)9oWGlmH6m{U)n}S zB&R7)uf+>l3F@0k#X;$gfdV|*xKL0wFXH+X|X7ikWs|b)7YMaU~VM@SAcI=i3SVB zV(g=#NdPm$ru4%CT%R?mxB&_s2a`>3ru`k(3HcX_(p~ih7(#j1)^LRH-pQ#}FI3l5 zSm@kFA~tMa~_OL{~W}wor~a#5t$-k zm@^~{bAp6n&W|w6=@EukE^dTpBH@ok!cRrQr!Hxf|NBVzCz0?-p;6}gNceM+@FByE zGB1mSza0r5wzN^^)sgVeBjJ;mHOkx*33nXSNZ%9*e=-t2XnCW|OCsU#MZzbHG|K!_ zJ-m|>#*73dN=Qx0kT6W)5{9GH;j9kRIjO@iXKEPc{0_sMv^u<#6B3I_c9kz@*B_(2 zm^}|nAbV+h_Iw0Q!aritnV@WfXD5-@>&#B!p%pou>(yS5l3p=zBDOefDjnQ`4X;}q z+yTQCzWh0}5e0WLY33CSNhQxs4B%EDzRDsagGnNZpZ96oiRGc6C`wGh0 z3irx*uon@*5)L;$hi7d)cLIk-A{t8Vl@L@lyv7dow*^2#1Aw=gG%qD3$yU!pB}0Xa zI9?-IsknH3V4!@;jgvyb~#C|FB-aYDSHRZ z#33OxUb6WuwuN4Sr=jjI$4XLctlUwp1xzWHyk86;mTG0VKfCrxPTA z1n{p;kbstdm|^k{I@(tW*;Q}hBc{H|2R8g~m1j&*xZ2ohy;GiXMVV{IH236V?e?;i z5&yzc@GHinl8n_Z0|h8R;5GOfBz5}b)9g;a_Bxir^W_wju=+vp)q@JAy+A#H60wFQ zLQe?1(LYCVP_zg2(*?dV-}1Q9nN8w4*3P(WBTd0rQxr6TwNleW0!V;)QYT0N39wV@ z1PLGk21}hF0VEt9CP)AY$Ak$IKms&gT}1*&z=YBX5|HtORZJ&I0A-F36C{9968Vki zzsP#U=>y&>`(_T6m$}=Yiz>4-_^BlIkpe&G?Fkn>hT@RWAHk!Xu)$VeU_wk>*HSV0 z#%&sB^H|n!>Ta^_IMnW#`W{P~_PN*jgtXs)^u-3GKtoDuNGSqhF20ErH*oHtf8%+2niJ<}}?TfCSiwbbN5B0$RUovh16eCgD!Jpp9GafA1-6m@I=##FcVBm_XRDbe;_^#f)CHuak- zo_=Gz8W6tJfDqInFwyox2z#yn<#zR%Sg(H`uqT4`uH(p+oUS!X!LP$Q8&Ce5c`4S5 zom}5$Zf1x}{>}a>kXA9CDg0 z0VH60=mZHMVM~}G0q*7R)9AqQ9Cjs_mZVM}GK1EnPMF7T<7$2_(&eO5i=j&q142zl zoKT(e>O-VPXI#$kP^JWBQf);+gn?{xd3;++-QQfk%<|7e!BQVGsXvD>P0`x>kw$_( zABFhI>FaRZF{G|y414WQAeVL_TV0J590222JQ+gXz=??UN$`eyPZ#P1o@9!HE^6YV z=;;NZ+OA9p+2?wZ_nakwhN@Fb?!m#U!c~TqxwaI^kK=^m`prOy7KHNYFce%*V9(OPVC%}m9!zjT2$;NL zI4s6F9*&|l*e7=5$hr;OObmc8Az&OumqU07z)M8n1+a|;wHFdzq5&__4qhDaE+sse z&+70}fR~EEOJ|aqbnOPhOEuu7+QCagNKkOjr!~f><51|T)|uAOR&l9C_|4YxN31?% zA^Zz#d8WgJkM3B0i4Jp2VS=z8`5VTRmJy8Ud4BCh9ELMuHON1V>4+ZFd%(pVX}sy8 zW|4dybtr_lBV3!qj~VI579Q#6gd_bNjPwpvsch6uV5BSINV5@+bdMit#+PP<3u-S$ z#c=$;xbXPzjlN(h(s%XFkiH+X*8D=#muvasp!27Mj!+ANiMtVXMUe`ie?grLlHM+C z10!35vhUB_hzuN!J%3)tO*#XUu%*UJbOw(0S~6a$GjJ}}lJPQTxcOT#{O}p@?^ZV> z;X0bEi*CzqrR>LMUfxtZ7A^jeE9SU{4U*;mu5Ed;1?<6&1xvd1ub@jWBxS6pqqZ4~ z2)^##i5rG%&!zxL<3i3?AhDOXRARG_@?pJCFHrBacJ=6O1!bJxR<9&V5T!pvIStPh z|DMkPo))kbmcJ^f z1*;JV!#z&}H(6pjomtFF_a62#DB<1{S#Bh)vF7Mp-P_6_eEB#Y&&JUTO+V@ukgj%@ z3({*G%BxMrt;i_jgBp=y52KjDG^G4(96VTIxDM*UfRoLrAWVEWfR>-Fk7N1SX0P^K z;0rO7@N2I|y`W_Fa9YqxXAHW&TRRjQhQSS|LVEWlt&Z;60x)tSExdan+WH*YGHq-n zO)vmB27L`0;oB})5d-c9!}#kE*A9mJyEO!x-i}J*>u@F7;~H-BdW4{bN15dAxC6fi zY1KnmraO(e$4MT-F3ct_3G8DSFet~5)ZW>eNU8m|F)IcfKO}^3YXj` zuwmFP9|fEr3!EZ8T1A@S`X}z_jVRvAd>T%kV7wadJp0Tm;tS0_tTS&N5xyFbeS|WA z_Zg(tw7CXORliq&*8{+-3FvNZCOWz`SHp>`&D+D7&mu9;T3m}aMkLRB9lX)hAyyW$ z*zO2hS%_XcJzZs2j3wg^?;6YxZm1)KyY1j(&FT@aUW?qCa)rp&O9FtOQD)lJ$Q-G7M(Lk?(2Ol&_@1|j~ z7Wokmm*6@oJS1`pdvO#h7ZXI>^Nw;qNk4V~65kL$E>Mj(_la4?H_+xkWBnwfPI;g% zjCiFReI8RyG;}dCe9G(uYyg`9?NvhjBo-n-qR9B9J@sl3&;!nzO`*i|fgB7z38#~? z-kGm~hC)9y>u4Pz#O3&{bSzmnI~rxDNBR=@fS9VOLmq}IDp4;q^3)Z0r4^>w9lKWs zqi~_RR;?3I7pVzXnVHYCOKGs}#bDbNSQmy{oofwpHF}jK2u#nggSZGvwuBD43L-at zi1yoD+J5_K;L?60e4hR_==kPp8gDZ<6ws8093W2d>C1@*>5d*Nx&Kj$d zGzzy11wrYOPC2&j$H~pBDg%&0yk1CpR)^M{fg-W*wYDm(f!)Zeht{z5WRBbvvvrgz zSz1t;VzDddHR#uCRcY>}EP8@2nr+ul;Mg3b#F8|iY%`vqKa6b*aeK0hERCQbx5y~9NUPPONoW#hndMc_V z$6`F;BIKVEQg#ejtSNJg$)w^0l*pwDP+FBtN@_4s1;(w$pzWbUJ4pcsQs#xb#zdi| zlB=p5q;^wdkVIZ(nX1DP0uc{9@lcJ;R8&t<~1|VV;mAZRjBKOoMno%zoQCV3}R&vqA5=bvIy)3 z=U|y`)i6tkDHzNA1CfkFFg_Z;$kW7?Dce4}95P==v-Xh6V$M;+yc+MWMR6#Vnu z@2yacNKNwPO7GMm{%xHP+=}PK{*|7q9rO64ro&)5uM92z6f4; z7&vJKO_VJdT~t$FhIEjKHQM_Lc+(%yDf3-N`-ytzM6BT}zdzM!Ks3jA6==D;Fo5#g zD~LV8()Tr3`o0EBj$(4sGX@hl*?%9k)O`(&A$^ctZR{O|+)-bFA?41jLNV20IeE~v z+7~Z9o~GFjtsGIRZH4srM`wrog+9M=`A(;NKN#G zWys7eT_b%#zCG+#CX46@7IE#&LvV5KYZ)n&`zzFg-~5^c^JRk}2w-`bG6kE&4R-__ z4%bp_83VA#wjyDMPa+(;n<>~wh(f?#YKV2#$?L6(4&Hf znY#%p3rtYCFUZ@@p^v~H%za7T?w9e(-7N0r-2dS1Wa-1a5y(ykNYsG=?pN?o?Pbe8 zgvSIvHXf}Wg_^qeWBkQdZLCk{PC?~rZQRv@3vEfxd5sTe?=LuBN8qINMe_6;EBF6I_WL={Q00t1Tnpo4Ok3O1oi()1t#OkK#*E zi0xj0SZs8tr+YTsxQ2bUf|V6{iwo{4nKgLI!tQn?(|&DgwcR>Kgcu?EN%uc-b53|z zSBDQRETW-G5hmm{Jw-S^h=A1i@bIo0;1WfW@!fYYO(Ht;>v$tyLIQ7qXUiEib`?Jr z>TEf64SGpH9jC<3SZG>b1IzS&qgn3;j&HTL#>U&&*3D01I$QQy1IukbJ%sE)>4PeL zO{0U%4!^)T!XFpkk^6Z1+JRg!`)8Z{v-=T^qbjZf3GwOaswxr4RSr z5BJ6dU<5VdwZWc+@(m(e_;5VhBPblF?~5-QKy{`!{8Qb*vJY7Fb z^ntEyUqLMz9hca{Y?g>(IFtPFs;G|^j>6IiZ`y7*avK}44cnb6^NZJPI z(FLg(Fk2i?9tK1n;&Z&kC60gV5}8Dep}V0xj-meYibhl5Cx$+bCoZ!2N7JLgiMOCN zTf3^=;~^xizHftt*0L@fSFlIG*h1b=LKXnNg~YwrVTf^e1}JMaxj*WCSl0WZtP;IE z%z+*AICR*i#BxWYl^7py22B@*O0JMet!e%e{@Ms~f6atawGzz>R&JeIypSEf&2^zDrl#-2li9 z)v-t{Di=f6bO)rUyOB1H+02jduIc^*@KG9Tb@#8uEx>CUY83EEDl&gb?V|}Wbp|@*{<;3Yq1UJ+uV6l3I zZEBGQva=7w9jI?(V?(2SX_z?a6Pk?;sm21#e4v%6i#3$A)|N)}*pSFPJJzJe2m>QI zMn8OO6%JVRBdIWi(|6#w4K{765EwS7JWzDSF;Y}POTv99Dpxw%zyY8UVJQHB69)vj z_(D!=Y;NF}5_<@v+5Is>%m$2?)Q+|!#%n~j4sUP@ssxHqx&(Q6*1>q-heaUcNwgm> z6qftaIDRnvFg$1BeL3C{yg42)g5d|@4daGdK!=H2OoWtu|3%x!)GOHyRqX zTO>5Rb3%w`#*PYMhx4BJW^(5qsrf}|kA=($no#gMQH4lqh8KB00O5#LW((qR`{T}D zxD=4jl$K05feZi>=!Q~b%C0A?s||Phi8Gj)i>S%i|9A-A?(68)c6`PhY9X1I5MocC z4tKnI%k(W%eWP^~>@StZ_FAX{ArO8`4Nm<*0pNERF;urCd5LKNgak>9`+sLdu|_Aq z`(HC^NXMg0G4U1lv*K7hicjv1@nKguC^sblxwt=JBLF=E+6EPANs)+lZ-9I1bx7yv z0ImQlBj`<<}lcSysI5*Bn>WUgNds0a%S38_s+KDg`Iz(DAt%>3Pv#Bhl_F zkXz?iha6(V+XemqR_Y5f4e0C`E^Ykd}M;cl4eNwwA|@L=OoXeE~dIOrbf|7A%)vxF%6gH)fQaCt;v_?lW0pMq{E02+ocOds~|H+)>4^i zLxi;8=ure-#g4)ywxaxUHo}1i{kXb9Ivk<*CFEd(wVa9x+q*iv{O1sfJalG~K3|*- z>ni1y3#Gdi5b3{-K@TFENSUu19UKY{`NSNoa;$XHR06$ts}8qh_+d!@w2blKrQ1mV z^cb~pT6DF7Y~Zi5uv>wv7V~tU-X))B+(3D%ZOfkP1jVd1FZly+W>9OU$M&9DFf^r` zF@re|-Adgl5yDxszhE3gIn*ciL^(JU=F{En%)Y>*?@TQOTcZ0;_I9B*d+ zidXUk(<)I^kb6(Yl$aXP7+P<^UTu|vd;4LyGJXp@8w@iCFU&$#Zi2k+++=wNbDi?8 zwR4li!3*PY3Q63}xisERmOf=f>{3QV25@E*!Q`+6LCf8p`1v&{30PiU6?YG&+~0@0 z3gOsg8nb~re`epE#OPp>sqcGqet^z)W2Rx`4x=+MGq+S?zt7lZbgH|+%)WV8*vcJ^ z5blCs#5YdBEl07qSxvkMCXD3iD%fh75OqI*PSCeExNa>{Ni0$=D9$Wi1kWuF7B7N( zii5?A;Kjwk;zjU62H&DFh);<2?nfKe-9UpFFxIrvmX$(H-Fc)L^03CTrC%Hfm{$y2 zya--W94uZ0&u8!jUZp41t0IqQ&7m7f%_Rwv9#ITIyerM@p$NtvoIB>UMq z&~7iWf3@Teml(F5g-xq>p@lk{%&hn=v+rb#3K`5>aWEEQN7@}mJp)rCvAg5!EV_;9 z?u{~BD0ApFrn`t9Sg^$-^9alhyuGickw*UC>HK@>{QEP@b9gX+4?WL|r^S5{Z{E=q zGH9#dxNc_2Uqto?M0PALc=25v1M{m~{GwCgW;7&nl9SgT!b}-Vi6hA+%428lfiLaY zb8#68&h_u^1>eg=Q{{lNoesJNuoszY88d*x?}0<2x$izCinyl&y$ouEy>v~u#|;kL zkSv#!gfsUeMMyOHj^7lET`jX3jrJ~2W|>9;uwMr3*1jJTw9|JB7ky!phV$~gldL8E zMfAtH$nyu}X^MC!KE_#__X1I6+gQ+D3H18u$EY1O!?@kWU4bB|k73@xC(bp~5ih$- zF>i5TjL+bV5!UZDmo4Wsjg@m%e}l&CVwl$8TrxINxLeJ z2PV|LA{}uHxA#pZ^lGK+TkgNmBQ>YgnpvTgli7?UO;{T~)#ORsBsML6VwC75Y#U zZH@qmdj1*tv7`MUIXRQOv2PaOZ{X5W-!GA11N*9bEW^kK?s0Un@quU1*a`XnSIT$$ z5fMS-J&a6gUial)U4qMl9zmF-r@R^{ef|oJvw^7e8QgB+Wkx=Zb0C`WD$27mzXHgJ z!y9UL<_$GfnG4WBy_bPy?^JRTZc*?dWM>{@BMF@?13lIF3+dbuYKO=*>H{iqzJ@s9HR%Km0atoL3&7=` znh2ps@HH}m##yk1hzJ*GTjf!c)o;XpW|dIZBHhP<0CqT&B9af6U~(}LwY74`1Dt8+ zPQc5okiaj-+xjPZJG-OXA`IX2jaCj4wS!59XS3lWFqP{;i! z9BOOIlyebnuf~El%=})UMaBanSwN#%TWy{_Ht{&p* z8x^Rmc4*!JhO=>2?^jTv40>*4ycN#;8Wqbti^q7Y_Z#^L!PhkQ1w#DU>6!NW6H!v; zIizgv9BuX9mQM>otAO?1nGeG?vYnZYQiP60|1u3!&G;*MHG3L>VK{BHeCP(5 zgtahK?}J6C+5(F!^bo4Iu_9FMU_~gPPRv7{s30Jv3L{h<){;ELRNIQ78K}*q$i2T= z*lJ`g!+LEJ;$k(hO+y~>o#Al^d_YhsWB?31HxpE)=Vg{BTkzjG2etH$0@h$oit_JWU|*x?5TDuvX=;i(*RdC z(IhX1xa$WP2s6gub%uIz!4H>Ukl0g^=5+CLArb0+T=r8UEfK(r9E#T(^pAC&mX>YIs*|mDp%ASUSLFN2l*MU`B73qZH#P!gl#! zsqK+aeIvb(@zx+fcqJwl?{DO$&h}(VY;$Lt9hVsUI63C#h_yv5z-i3h>$&T5Kz+e zL=tQwe8M@w8{`ua8W^MW7I(}bgG zP#uoT5y#AL5!nxY8dp0znK`Ibm7-zL@R!wBS{4S79a+}ts24O}=tM68pGaYy#w9V* zGuEGphVZIYh~?E`Fq)}DElNdmcgLt4bzIB@Q`Mnx=6A@S?E5{QsG!@8(A>-LRBd(s zfLGri8LirnI6$`r4u3*m1spy&WE`d_9Hwd-)P-_l8RM52llHpw*p0 zakQmrs{>6m)%QC(0HM@dRK!{aVNFx?7Jpiaun?gP*Y0h=5JH!LpttZP<(kHIC{xM*TbM-bYgTSO z5-7JV)-_AXdR&=_v;UNkFec->k}Rbq$0ar8R?jSRi}+OLT;8p@>kt!r$<79dr04k% zJ;1X>&yxD;I#JJJt(=TavJo-Le5G3j(0&zkE9MVLdg@kRNAb+(yd(J z0`(VbXXhhcDL^r~bW6E|GVKtR>l@?@j6;th5JlpK%xN{QW2SvnBUoWWjRNKM3gFT00%a z%7`4-EJ|O8Pzx&tUIutgc*zr{=-WcOCS^KqlBHj06CVL=yjV>r4nom*?mQJJTprJn z7mSsuf^RRoaUu9?~Jyo0U<0fHpA`eZU$uVP|}=V-&ukF%DnOpnecZ zw9hZ`I@aVZ_~1s|l1-nO9za(OqEjVT>3wbOUmE?Vs!7$_$IT(mKymjM#m!vY7b@hF zxFzz1XV^hZeuNozB=^V6g5WT`46gD86NAHmbO8hU3K&#~lTt4A=bKooZ-G}(unglq z$TFGe2oJa7=Mc2!jSnpy*!0G)V=1yuOSRv`et_YK+Bm*vy7fMW!uet~< z_nXMs@vIlq6_8J|NE8&I&aQby1vQlx#8@xykf9#m84M-%>*_87J#Za>M~XQ*x<*S? z+FYnqu&X_Xr|XnfTq@{H+)hk8#|rQ~{VEnBcAhVzU2L>Vosk$W9d34F;$k#OVp!f6 zg|9X5L%&M29eFKX1CYxY`{^~ z{#%RhaN@WnJ)uNoNsoiCLnIpc8HxDri$~%x; z5{tf+H?4?7Bgi6s^2lq(r23ICVXgBDJ4R#b{ z2y9n@5NNU5mc`4aZRvI?nOay{4lG+IZy{W*5n}7kf6ZyK^Rn z#kWnKiCWkiBH}fJjdUk@Ge83jJhp6@1RX8eEC?I;VZkZqBfc(R z^O6>PAh-@{88o0sJ?_?`1^t&m3=+v!gpY>YUm+mf6>>?BbbSanyStCTiBYuPOwFtd z)Y@}|KSJ2R2RE8sMU7KY<)yf_sDoD$x}nIA$rqxJ+r}a2<01BOez=%&^e~x&M-oft zo1+%*2iYS>IIhB*YTNJde*}Np;P6TJ&KfhZbQ-%x_oH}}0a-J@ENJ48f+m-znmj*Q z25eP@u-*z`{T0HNRtQ^OA?$<-VQc1_z-5lKXoI=_qv%;~9f%wS5y==ZjGeXBWG5=P zsCzoH=c9J@)MV1!-8slW9z7~6>a6&5)R{)#a@`Kv)1)z4pz2vPjiM3?5T$2|TL z=-{tMHGloAz+X?4^4ADV_CgCP@>h8&9)C$miB|39lJ77w{qEvN^!#niSy^O zahXseGPx=-3$MjJDLXOI?0HD!2G;$JDzvNV4uf$Z8hQqs+_5H7ou}I>qy}kxA;C8wQhVLN8YTTEwqIFq%b!oB-N|L1x#mD0X5DS^p$X)c+ zN4IZybHkgF{sAh`P(paSZ z%_j_FFBp4-47d@mokw*F>8Cs)Q9_(3GDep7v>Q8J`%h{;!Ne;FX*l+1k5Y*Z0y;5c z8K48jC?cv_Noye_qemQDIaabFA3>ooUQ$uD?{XZ=VskETJz`~|X60U^;qOjqTx)cb z)j&IFXIn3BIbvme<@CK7AB@#_NOiwKI@BogjPw$=teid!2|=wIQmeN64wb5eT5VqX z)|Jy=LJAPCMu=CN>i43Ct(=aTixfdxeu-`zWu5hNaU9rK8>=lPDu+0Yek}kNh*~2= zttlZYixjfeqGGjP#XvIPUK-9&hWQBT?E6y?4!hVLl4!+YFpGzk3ma5{#^SQ@VFQG> z3=rOm#XE~2Pi;Al=52wVoSNtv-WSJkv4MjaSAs9%8}T`DOg6Kap4lz3G;)E3@AT<_ zqjL;TYHwoeGUeClTT9comZblePQSYX*Sa;p(Gta9?G-N$1boH|5C;N2&4BTy`zMHv z)+M;_GkX<6crx*I;zL_{+=_(`H(?tbC)4GOdFq2ugm$0yT1c8 zGrrP&neTO1AaH9lOrmWthI~>|LLh7)nE^9ItP4gZNvb*UXZr9WXVssnG_(ozeKW zvGLJNGL}A!cSOc7A(6kqCG(VXkic|b0#VW#RWs$w3?~J3>!=#HAp|SYFjb`@s%ZGW z1^9T4RB@y5$|RW6bbp_3lT158R`w{K^HEPQ$c#oL*0}_Qw5p0mVT=!u#CtFlTFFhC z09Bd*0f6}{OBL#tu)b<4MHf@P;S&X2FcZw}jddw(=opLAa37v^b zV>2rQ+;K!$=xZ9Y@UGTy_Lsa?ZnnJD7SsL2-JIJOZzoHif`@#B#{jj(bZ;|pg!?Zd zKTLWcwx%SqDxgILNPA)qDnBI_#9}bHE-_rmhIrh49^rd|Qsi%SDp zOVQofHvE}cO1AVcGfUCd);S^37RPoLdW2qpKpBfG$|Wpaml#nT4;a)-!Rkh>^rb%{ zIVX|P(6FBBauS6>qHrmRYCIB+YQPqBk_cy#_^l!#67)nd^`_^0SWeW~gv=_p74`IT z$z;rNzY759WQ5}=5MF``U_s%dFq3mH1$ThWY*J6NSs^^D!Zo*j&vY*pBICRn-*3e> z&!Sa6E*VfjXb3qx1bi8@L(Ayz54)gEpljkAmWofF1wGuK;}LP1JF!-QZFf~b1}cH7 z2QHeo-A@obm0p+(oy2yp@RD6l2iLJS0CpYPyD0+F(Wo1Ae*wtRkXV-{wuHE-&lBT8 z^#yy__OJ&)-PsUQC&nYPL5lkUs;zL)ha*mJJq%c8{`9yUu~azXc&luq!sm0)-R1k` zGPHjsztLaa6H!e>@p1Etku{7YZ9fKwX`xYS>3EA~^f!vmm>pV1-6-rQ72D*YqBf}~ zcBFb89Rs$>r@UmJq=RjOy+zp5rrU(`@8UKYrrM=LK;y zQi~vNVm5b#JSlpxu}d{f%VI5rNymLq*UB=u1p=m}RKSQ;vy$jV?|;_M?jy8EWGcsn zI1#bj7QE0Xo|j0996c3y@Tb&37fs;ACt=JLY1&nnXo+JTF)vN6#F1SPwIXuek~nVN zV?;-3CR4-4WW*6Y)YD%+iE?9Q3n;l9F)>6)dTnd0 zfwgadsL1@}E$F1!HXs_F3;h~ux*~-Rf~Ll`QqoV^NiGL%SgxQb;=dyFh2SVS*~!G| z?na3^-5U&X=?aO}YrEfPzlT6_;n!Vrr0T|}SC+80JDOQfN1pq2-m&F*5&L5uyHi;# z&>y0_9LJ)F-p+Ikmalm18}H>~wN$=$ONJ8jQW?tnzdPeB=}|h)UV(eI5$qS0q8X$} zI}(2vItEIW_EIJ3V7tl&6v(bRbt!|3X>)|C1c$9*OPrn&+aRj)>h%D!i0bt~QDf$t zR@l7~XbqBNz^JK%0=Dsq>ndHXYu z1evc&G2bB5o-y+WnZ1y(gXC==G?tXF3Mn2P1PItvWHF3^gVLV-`X57iFuShuTQK{e zgz;chm{-0-E#n)mJ1Jb3P#Et4*ANG4$YPA~miq%e5>GD6ipV>4WLH__5Xb0USqd@R zosOZ8(Yty1Sfh7$j3(yqoiUp980r{3)gxjz9RrQg)4Wtu=wQ1ZiT>WeamgE&6QeOM zV@od8V!zqT!4$$NokGACtju1c8nnLIh-+c6z@%(CLC>Z$SS$r(ND0V6U_d|)5(@!2 zNbH#TiP11qBu3}W6xDXP!CwDaR&f%P65byP1JqHFZ8*mD6Lf?^Kx3#O(O%1(!IX00km#Zw5AvZrQ5LO3|6#qY7a1B%TrsIkBeOSg?dG8J;^F4LX~32 zU<&4q(r+OY2Pp%sF-UAd52%bmQETAjE$(`32o_ocr|YaZmW!o1f~q<40lYNKE4#co zg2l>9<>H0!zoXm2n?2|GzX#3Y=@mP=Ve%HuZJc;lu7_Eo)K*UA5vx+{;0*=6Vvt5I z=~VARGm5_QG}^HVeahF4qN0cxi^2r|wl&0%8S^apvAiii-;&#^Ay$AUU2@y>l!{RD zdP;>@p9WbW)~7*Mh%ISp9As~_VbE=Gd|fu!VDp+h>9UUMviX314&!IgF4W`9J)jYS_qfcfkwT>a?K&k zOjQ&y`uw>9z)fEdORX7qGKQ( zXt9^-a5|_1;m#=j~3 z9gTvb4(4#0I#|S_4ya>2vlcobdE*0`KE64&TEgo|Bw)f)GwiovE2)60w+#$yFxzS? zsQ`_vRlERL$xP`}=qkYQ*-9$Jwr>Y%g|?@Gwk?(H7wmpJ#C}oHM7Z7diwe-T!+uc_ zif1FJq-^`f?h1KHeZK*v0bjY-jE$8qQKvo5))qp)LE#9>KvHziTU}c@LzudsV9Lg&&v+` zZ5>L5>QLDAif4rZbR~rx2GG0p0NMxt5C_mxm^D9udH`0H0mu)aUXn~%k|EDePh*)J zKYQsI`uMrp%g6e?yW=M@fA5T+q{mRl&(l33_R}%Y_<4qxY7HI#?c-Bt&SS3Gti zp_)4uCtO#a&~|-Epmg)Jo9%8WOGtS-gfmJx%3h9>XVEeAadN$vk0rmm<0LVE?~IeA z$56+~FMCA%A{_&blQ(;*zC?#_o9Nl}%L2hi;nEECR_8fB#7w>gf^*BV`W6VzD~l94 zG6cT*2#X~*dyYFbPU8-mw2fzqJ#2+H+>YZ z5A5{z_K8-o-ec#Yw~w+y?2cI<7`%i*Ru6V9Up*KcmReijy<7gZg`M91p3e&AXWyRB z3bF6Z+QML(%9z2--)nV>!t?{O7OR^-*cxdFn**?Gumq zlkfai$#MRdmt%N(#UG(x$hkX(HI}ruXTyD)*Ne)|ycHyGS=6?R-3lNEEVwZFE6ru& zD3|oZCFqB~b96j9CwrsYc1$O%Fh={t5*V9pT1uYM@YOSa&s$3raQ4(?HtO9j-13$wv;w?ME)b*Q%uWtDdx-@OC^()~09n3;&G{apBnliQ2M#&mPftTbA^qpe)4yP++w!!w z`)X8{e@Hfw8;C3$fckW8e-#c?x(qpJ|*X^;1P>wxYDxdX< z^6goDe^=ymo#{zxb$;gSSRd6A#H)%N0o3C@?sE6*JYJIRTzMZ%WDg_`A%eH{nBlgG zXi&s2Sc|SPP`6F!4SsC@JqH}eJko6Uiu+*1`A-=2{wci<{sB^dCMp06^K&!~HASyrD>_qMV~4t6Wu{~?gI z1Kb0&(v>n)N}uy<%*6gT1e@@;nU>?~9dtlm516lbT)o}PM~b|=<0>(K?~JRY$56-B z?|DT0E*%5egum~lx|0sJPx+qlrtKM03wH-p?D^i%_pa<2->uy0TY1lT)Bndke?GCRjO%b1O^PVR4&xq8tpuD)I0j{75I zk*hQB8MH*e3>s$v=1ABenj&^{=W=bevHf?qPHL8`Jk@oe5l5~Atxh$Bp5euzID3kF zc|$I554FO${9JBR=EbtGUhsNQxwAEYJ1D-eZMnp%bnv^l{5m<_&UhaykN3TN3qNBz zQ*1xmj)O<<%Dha=I^2IffSv6B?Ysi|fuFZ&k1679pBCr1KL#fVZx7y^gtz%kN8F{S zc>8E=(Jtlfg_s|!3y8tnhr?5yst@4?Adj<;L{J%L^E%?<+lYm;iBqW}H2`P-RCD%E zgtL_n`%B>KTYva(nuCiDxYq!4!W}daRn!Ro+vbA!>bf3SFq4+?WfM6_W_o{uYlz!- zo@Azb`Dus3McFp)jJMQn*wVyT&c0qKFAbsh>ev^{Vo$K;!riL~ zhxzf9(1`m>`h3&Yhw0~h0iPF^vCejX2#EfH#r4LzD4;m*bI6gxSYf+=hHHq`&sXLi zjqXcjd3{JdMx=mGFB($Gi|6xYmeWF)c@3fF+2U8a zjG(arbl3OFD_dRh9p>A3ue@FHUU{onl)FT-RE(G0r*6u{w8gk=^L^@N*vNhA3Y)yj zBy3%(E|C}Ct-FcIHkI-5wUt^uE~d{mw$;$S0WeTo;lnG2h2gYZauo3?`$p6W^(3}- zl2t>F`#X;j|Cr~&im-&ki(oON7}oDSSj3Y0Yf$b#FT<-GRykfTd$36VL10O5e+#_+ z;K8EERIu`i z)f977VO0(Ink%MnGV_RqioO>SR;7jF_%v&wG|WA0m#tdDy&?Uvf{^}Lfwa?`;GcFM zJ&pxExFMp99@HPh@&OC2Kh~t`!_*%&HK;$9Q$rL;p$4x(lkZswHBQo6YB@Dn4ydsR zFHnPuDyY!_YM>~O7NV<`(L%}+S`^9>T2$yeq=jh2`g0mW3w&?h82!%E;vMD;Pp+~0 z`fDO(oT20{=`qGfk9VxEyrbMf*-)XU__<>s^Y81PeEDBG21@l;FV(AqrTUwf>Mw(( z`n#9vH9F9Dsh{Ahw|-lJmS{c0mTbqRweO0}z%yr8*r{W}=yE0MI!F@Hqo;ybeRE1J z#kO~2@nB1s-Xd#-#o2%F`tD!_4{_;t5D?mKgY)=)UK+NS_ z0FCq}!gr2F;55BYt$g=`Mn-l&c&RG%tO272-UG*7WJBza^L2kL*@s?`P20a2eX!1% zH-r2K?w1qlzU3Z0-A}&=`c~Sn&lpDr5;300> z`4=DkhDzykZe=E|YY$=HP7q~_i7!OQVEH`j zVFb82uH)q+QB=Nn%l1XgOXfsCh<2R~sLwn8{Y#CFZ^k;{WGm_sv5Jm?rexJ#st6sN zL;XM4x3l~E`*sF7+DGcVzi&q!%-9hZYxwr<3_x13UA(_XkN)YiEpKio}y%Np9}>n5M|OB_;d?VAf*Z~ld zee)5rR;^7pvOTY|WC7Y*e+^Hy?g5^0_r_tZ=FXt|0(N(y`J0&R^irmXYo=)CThsap zyvM?B3?g%BW!RE!*t_IeB`S%a3Hif$m12|g)%mjOum?k(FT)k&a=xroxO=H8!x}7h zg8nWb&Nmu6p`Il+4$S3-Z~Iw5ek*x9ZuYHk84t*$&w*4r*X)t0rpimD$mBExg-m6l z!b?^e*kG}s)47)1zhk*E@Q1rkF-Nsl1WEBw_4R}_g$N)Jg zl)=gXrS2^si16`UcO*DN_Qs8Xqj=~Nor1bN?k|recG~76$Ax|O6)(E*_@a``DETB5 z7I>?zclL{V>?>Rc;rH}BnS^hCd1Kq#xQ)Dml<|%q`T1@ejjoj>N(mMD2{r4T{Sw{) zOxNx)U80QXy!qpMjOX5wFBtvT^V~b~$(jLpZmh?1V+uT{zi2|bZ-kuV{Zondw;|^$ zs;!nM=#*~omS2oe>(IROf%iJ)Wly5V`_|ywkUbRzv0CTZ4%vfUXa36v-tub?TP$@4 ze%XwO1JQV|ea2O6pS7R|)(T_oY^Z;C6IHx%T(!$RD4utYd+nm`e}2z5%|KUM8*SJ} ze>Cbe4t1(CdavBsIL)2H8Ou~WB2MP3*g}Q5#~(oSNkKb)SUhRCC&S}p@MT}@D!O=u z7aL-1^_JF<BdVUZDT#y3;I4|3gdMSe(n{IJV= zfFCN|p!=WA50!7f#oVBnAFj*u!=C?set6xR;K*gA6}h6*e(6Jz8{c687EZ zWB4^;e9Y_d@{h1{5zoJDw$fC$DeYe1d+$!A2ds3nDc1_Q602_!N;R5t<&X|kHy5c% zcX9wjaW{Zt0o2`tZ_tADeqY9I>(-1?S*=pF|YT0`GLeU#M^ zGTmL70P%8gY$iQetl{Y}gv~0;BmK*QhN{m@`%h|lC!#P{aoqhh*uD84py%$Z)9k~y z@Wv+rSL-IqmXFh#@11-66pl{=#}b`I;ky09+`mO@@mR6K&SA6UTYMFgsPilAtMxLr z=+%{?bG{R|`D|9%kzYBRReYM=CCij<2LVs=WFUBQHeySxuo#sHkg(q*+)CYfIYXx%XvR#dd?c&g0~UXa9K^|qG- z#;7}5)m;rmdyI;Ce4EeL6`jzsT%Hrce))Knn?ENcvba=N!nnH1{Q$XcfN}Lu#L2jN z2psQ~akb(upZ|(+wc<9C$KC1BlEvh+;bUCuzUX7H(u|8IlAjsZl9=$B4P4Jo9NNxv zZhdhi-SAli;3DR}8Svz;g~xQK(>!P8u4ByZW|o0gW+vj3*Vs5ZURW?UvrLm&P7YGZ z?942to2v7C;4H^C607TU}6WgdXCo;<27BC`)6-yUDktu zaN&nBJQtGh&v?Oku(IvUY^GaYR=AZpV4#QtE0;XVbSHp#NxVtKWTXk$x<|7=Sni4J zJBXnd@9d4F?-&qT97u||V;F~?W@k>;sU>88Yct@sxqAYrdpRL@76N=Q6>PLE=NPBr z4O=H{7pH(U9Z}PL#KfvIE*3)XWDuH~A*OpDo|%s#Bx0>Q30P%uji24opghinaTJ|n zP||d(@j44OE9bK) z6pOM9Sg8iXaywwp1ahQH0k=C*?{uw|%>nQYtYsuM!gN=$iV~Iql93BpITfpF+cDg9 zZ%59KgCI$FLss`fB+IB94ur7jNjl;pM5K8bxsdEG?4H$_dX&EysgmH|E5coDu49OiyJ3|lLj1#h^RHx;l$s+lz>oXHkTB50`^&(oV$HmPoAzXMcQeHm} zwhIEkzRBGWsru2u%!t;jb^>e{Fg5pqz3m7pegi5J%p3*AjD{@7&U_MncEJ~jGTUp2 z`L59Ue#?Aqu#;Sm@^;CW=U$5vB6jB2Kr24!bUU6o2=!gF9#yCgr%woH&O)>j*RkV?oKrL)PhL};ZLG^EMFC1=j1WJ$LS z<%}mcB!EUcPDCCnOz%rd>l&izG?sFZXz8+Vc{Xcw*gS z)4t27X^3)qA8W@7&>^VW)aMvTteoE6Mtgz3Vqi=HFUbe~fPw$S!|DBfKJZosz9@mS z$9UPVW8gy)ctbw$at6{!?DPi4dMP(B@Cy?7eJ`-%jP5HWWb95lS;wmG4@t;5`H-cl zHBRqSdGDgs2~O`m=s*Z? zn3viq*ju*?9c{thlf}^x?0rxiRc2F@5>dgqz0;D$X_hdEi+({tLw>}lZlu9OCQLaE zru$K_Oa#Jl8HcGrGL$(UR1aqkMK3{bT!K){>oTX|-DukmdfPE@ju%*t!0H&dpNIg! zX3Pc~ThUlhwbxy0sw^jL2Qya{cbM(QZ*?X7Ok-cv6wa&ZUL_tV9lx^bduKzbRsalFdoXi4XeIGb_3eZZ$MvHgOOSccI_ znrCLBPVuWE%F%LFbTe*IP$NgH9yuJ04x#+$0oKTm5Y=G{e2z^Rhj`V5lNyJTcjn%R0w#EB} zK_P1A97>>V8L#6X#6N*Q%$!2OZhRubz`BQviJ3E{4j#B?1C71?bjE^|rut4N(bC06xNV{JpN3*9P@XG9>U=f)!K#)dcFY=0BHD!|iw z#Udv))-}|*AMhoQD#)W_Q9ynZNdDv7mLj z&XjlNX!i82fuxc{ma#8r36(JBYd9Z6q>rgHx5i21%th!_5i?6BOQV_j#>ESnYyO(#^srO}Sry)&R+h?17B#dJT&<<3;3C7K$I zxY;FfJ&3DrsljJXSlU}b9w;{<4^*mx97+D$x0;ql ztYC(7W~a22v9*{GHl@O~I4kNe2eUG}*3R6{v5_tppi;?4tjs@wjNE6}i^A9U;SuEB zPALgn!?4pOY$?L5Oao83qVdl_Sn^yUToXrOX9IIe6KOwlc|6DSu$b#(+^N8GG^Ci- ze#Q$kpPEaBjQB{!d&B!41r<3>K9i8qV>&%H_xS&VIs$8Js$;miE3MTL)EY!5@pOW$ zj==uS;;yt#M|61+A~#TYPDfxzfyyBg1QF{QA?;-uZFui4^;LRG9Np_I#HYI5insDv*ojRV+48gtYt|^T>6@kKs)1GCCzg>P2Dm= zp)WDwxQAd4wQ~ex26N13T8Rk49y|sd$^B7*%)?X<~l-ca-)Rj zbOe(AtrVt47HO$xAA@%{+fgu6MPIz4^@xdwNG2b`5nP^k@d_`+gfYq$cRcJL1Uf1# zYC3|KK!7a*{aW*lZ9q4n&RkMnqI&UUn7jS~g24s|A^T^z6fjMj-B6bX!-ejj!bVt9 zHc{Q9TaNXZ>eXFH<+TxNvZO$5psEOodbmW_PnRTZLYC1AIMRNS(i-05vSfbyi>odv zNdt?YF@-c!X-0WzfCDjs_#7F4@7T6mgFRTGhbi4PJKI2|sJ5 zU7xIDNu?D^%m)S|?g^9&jku)VD%p4>i#XCLCGAF}g^>gEZ`TCs5!*r;7hM7&TCK|n z3BO}I5UwP|m>LmY*G_O{s;0q;yB~rGnuDvJ4MBHg7pCSdiyLjCJp2f3MQX;ChK{5f zHz#H#>2|bLp@#FFFs7j#*}W zTqMVQxSKxrD&On=gl7ZRIgUexpZW}dn^{I+v*9|vw>BfJ&1}~B0O@={s;R0DyU=M; z?)Shz=DPnyN~&t?bKfFM?G1Ny%Un-gTHM@nND@`1$b}vK2soqiu4!NH|D7t_#i;5L~!|{h6Zh&Eo zJ>XV-M|3XZE`(u)(-?+u-H*sVmU}sY+zUbePk7Dd+`srT*U^{#l0h~T=a=D(XPVLH zb6XJwIcXX!dyI@(%oLy8;?I_4Sl^+@kZi!rkXk<#LFR+JFknrMnX6AjD6}$Fs)H4C zHwF=ZA%lxOyMtp{uAm21Q{`ZqdS)PWwGRk$8Tpw~zREP2R$KAMC&azFu|iOD1Yl~U z7b-QDq%EqlLJl7+sLUkRo4^G~7^V=5K20of`iK=k3et)7ro93)BJ?%pi%%Y5t}En} zFrio91s>5_6wy4I%@UenbW$`U5TV&{l7PXaN5Mmyv3S8!XvQ2&GmIGsT+wW$A{n{> z6R1pzW`d{CEMG6ujKM;)67)6A1d0OYrS^jc331y}&SY73&f+VW!|Ic5*4nus-ngP? z9p7#U(^u^b)0t(e9;>Gh3ri7xI2+m|?V(qIhfNo2kl2Z=`$QY)&3PH;8)lXXph5ks z({@_ABE}Z%sKnw})??W6lMpCRSUKUI`oSL!hzdd~Q!Z&J)a;5vs7r-mV2=0IgX$3|K3F!3)@7F>bn66b2l<~i)8kiN=i^*q^WK;UE+(TB52iA zH^C)Mm2a!7uddiu1z;80iiP{yirx#aD`~6!^R!THMH&~{O2A87K~hUw;fzNlN9ssh zeSsx-)`rvZz4``ryKEyn8_bkW-xmoEiX;pQeS1PmY-mDMKF9FBFA+eY<9!)k-PkuX zrnIdYU((k9gP@9S?eBNYSJLmKC^LHtVpPBT3S4YxMzG(}pYL~dz$Euorf87_USkRr zmDKBZLyfT>(~wwq)79wxm}!i1_>6Y-vk^QEf>Q7TQw4OIx0=+Y;kK zBu4^BTYepmr0BmFScY+c!1@Nlu#|rj`$qPg@LmMq=W_2`4HcNboMJvrPER(diO=8qv# z>&c{p84Km^=6l@_@N9rUJ%M`i(I#ob2+T^>@$J)-nGcXePsU7_x^hPqFeQ4a$)F1> z5DTvCQ8iI`#ezMmf<-vb>=3n3Rf83tM9q=j9DVT`Gt2s?r=s?Bm{M1_0XPbw-4m%* zkEl{4?ZHho8ayeySQWTV+9j)qM^Yg*OX#~t02bQZ9md9y=FgrCcDN0*7md8FVF{F} z4+!Tdq!sO3m+o^u0%cmGaJ+a0Es8THW4i_ni|j8)|bvHKVQ;=F{|O}Ss3UO76audMEykYLLs7%QNC zGuhCJebU!2WOtp64bd&b8lzOog|CF4Vo~>AKvhb4AvnZsgp`BS$-!yHx9~p-jz;uR z^t=3z%Em&3p^y1>acvlHdXE81Qm`olgAYkgpftZu)C5B@vtJO%IxlfWVziDzRi>o zYmJa*mdOdJkR}%N(Xk(x4rQpZP*Ev@JRjSAOv zRO37v^7%=Od90q7fHYtNp@o-#9`L?H-WPPG31Jo7gqGRTSRCyB41pZqW?|)J9-iC!)&9T0T zynq9Jktrh1ewZ3cp;VZ=@#ofpRrph=eIEbswy3k7;FdPB7{F6zrk7DMYG8LRtz@pUy|MmPTEZj~Z4QbzMGccxlw< z^HFW3Q8(qIMwCYVPd;j7Y1EhUQKL$u?#M^s>?f=0tJs}|xJYT-U4^)4Y1|JBan+@9 z_ZH%6O5=W3h^sA)d#DgsR~q+lA+EkO?$JVAtTgV4LR>>>+?GOIV`<#43vo@Qala|V zDb~r;GtTK6ImlBRJ+IgfQee+N=lNRci)8$Qz9@Vs`r<)Q+?9?v53aoSj_Kbt=78WW zOakVZ*`K3lSu)OL9%3i+<_CwE*qE7nAQ1%m$!yPrD>}7lhpSlhyao~At^9+m#Rqh**ZzaPF z^-z(ed&)3FfMz(i4`1tM;mLD#D}mdVQ_L(wtIc(M`NkM#0T7NcA@?3|O8OOo-6y4@oU21f7}wsCw^tJ#%YDkDLr}yBlycBvUqpcp zkR_nQ6d2lRqlS?kt4psFqjgsRg{{qdf_{odQx2ENmk>GSS0qwaaCI4wflQ5r;_{6L z6`pBB2*y!RF;%Sqzz3Ctfg@GiD7?(5 zw2S+OQiYb|M+$l8V= zAoRf6MqzL)1bc(yELqzihhWbpD0UD2zOjxJ)ngrOPz&b3421;vRpWp9uALJ*yC!x` zn!=EvaSEPCKL>m6dc*iB-rv0p?gjn5D^{J@#}pqqBVZhczBhK^0^>>Sy(VjpoxSkD zeer%7{;y&pH+Jt+GRv75Ka6OB!=JuBRmH`~Hv(M-#!i<09sDoCAH*}xbYPFcLM3%s zGz`CuWgLb-(*^MdUmIAjlmOUm#O4Wes1a2`T;pUp#yI@v;g2>lFj>d%nt6nQ9$d zI-a?V&#T5Wd|8kft~=xKe#dB-$B;R3KCct}(r{)+k4$0g zWoSFcIB)jt=QS8vYbw+4N!)(E`1l2{8b^SM9pehY|J8E|;g*Z|+za?4rQkD8XmwkV zFgISp*tw_hdEYL?t=75r!;bMuDRC2?pEagqMtNR9L2f*ba4r&FI(-V=^VjiNbts?X zq+KqRvK|o3&y(j_@-(E}uL5S=xCB&+8zGA&9yON~JO3EEpB|rB^)sQ&Il9C*q%LQn ztcdXj=s(=J5iJro79&^OxK?uQbh=z!9 z#OH}NpJTuSql`~WJ6;9ag64Y}z-QWFj6I>BxXnObv}2gheP;4`>Ct?SKa$TW^=$E5 z!9NjW!(3xk#29njJ%H0CAyvKPkkghk6mov6o>U$TSwMG|uU&I)95^+1@Y?k}mqgdjV z=wFmFzoS5f)Pl^xkR6>iX7#+h?+C~o`X~?Ujg{a*`YdAue7~$&wR9nTw)P#rK>3*R zKuCy%$hAhK-~E@|b6yTI@oXcExLXfhyL2PWU1u8s6xnsa+NC+jy$c1(_fB66n2qpN zA>}LQG3BAgrADB=-nj9IwM#F8q`XE_uIXpWMaEYI${xECN{?~3#JzbeKeY3^)Y4`#t@0_!l?^^g+dbW?H-w1mmeIs-9eaSdfd^cZ8-_6GP z$Y&U5jU>$fF)o!7de_l+tM)Au-yQIgW?vD^zQ?%H^~Pq@XjkJd<7R>RXfI*jW!xgZ zXQ$BjBjcOmTXGD2KQnHX60X>dCHxi=W&=jDT~-k5Kfy=J-y2-J^h59+BEILu_lmJV zd=Fl*cInm7oqNRh$)lL>&ocL{H~uDZ?SYS&8v*l0_!b)NfeWOBW0%o4CUA-P?hLP8 zdabd4;5P#0v+zxYUFPrN+ZW~S4PU_82wYw|iTUOPA{ME880bmgEQ?qV7p#{DG8VD^ z#c_;V9yrq?hoon-w#NrPEWQoGFDC}h72jVbFz(dA#geZcP`+)P8Th=!eL_;M4csEW zrio0M3w+ZeV^*R7b?kJg>S3To9NSB=;P923Ps6 z4;&pNUD~Ht_slbH)V>=|V9FZ<#{{WS?1#9Q;X6)Jo^nZb&nw1FffeFA(o()tf~3SF zQ*sIkKLNh0#rNT(H}$WC@3Z3j(8Nvs ztKhp{e8aPw`g`HKL4428-PC_Nd|wdXzuZmzYvKE{_|8XpEd3U!R`teB=BEDj@O@3< z#>O}GpKaV1__p}2ifrmX7ryU^Z@Rsy{{r~FCq6U0ssCd5?iOEtZd3oI@cl@9pAK&7 zzXHDd#COsMH}zj-{3P(8_->oAss9@IHjD4WyKL&e9=>0QZ{nOy{Wrq*h{}i3zXac7 z;;TmKx4`$L`0fsE>i;@?PmAv_hivM<6~1SK><`vSn;_kRTRFx%#8SI0CS-+-CQlcapId{ z_K7bb^qgs~5nqeYdSCMlrxDPrV3gZv9B6(}e0xet&-Vr>QHVPgVbK7I&O zp0oc_%kRc>1;Uy4M@V`0NAAP(;bnZT6Zh73hQBJ$4QuJ{ljk2KTWb0I=?XqiIEBx9rt%p*h|fBCz9hMJmh{KYW%x-;`RtPLnP<=)T*&7M@;vi= zx_boX-RoGp1A*#DV7e#E zv-$&c8{&RZVh_zJprS;*)AvG*q6 zIbPkP_ulvTAd*Oe5JM6Yf|8JkA@e*unayHOHAo3!2q}4xm_h^%Rc+~;wp3bFwWz73 zs;w3^)I1eM5n5W5I&1B{pF58?ub%$@-#OQJo$ouY%gX-kwf5TczV|&m_dOKqVy$&# z*g1%~5Q=h7ZImx5DBGG)E@3f&Eap!gV|M$X?82l|+Bw6|Cf`dC-*YO;H{(zyG`Ivk zI6w0$$cuGvVV~yqg8uz8?$@p!WJ7}i-f4xyU~Xm<9)%H3$z>*EdD=pm-A8Xo`-T>0!s4`lr#!uXcv_C(&cW}F>`N%4l#|pp}bXB zw~4OWvBc^>=h&f{J9>f>Il$C)JuYN7SQf6|aXKM(LY=pVL;fAReLSIlara^0? zP5KS+h1NKhkMevZ%2IEXzb<6)t$iVFTGw6hI8a*GdQNGD`(gD+D=dc93C@wd0=mIj zr&lD%{d4<(Wgq7uAcNdSf}~AQPH%`F+BO*ja{s_Qke@aDu^}b8+loe%v|-_N(Do{H zY*Q(x6^?I<@_0Lx_Aj6u%EFhK_9oN*%3}KQc!=p$7zUQT3cqG@Hj~L<->a}c3;VLL zE7m*z` z3BWcy!P@FCCV3k+Zft@07aJEt`zvkcLwFv{CQ9C6GL*?HOolbY_?>PjFE_xs`8|^t zVAZAMf*T$yd5^4M{wo_T1#hifv8SfFVyd^8?B{kI9y%K1b^+wmMmOLolUF+Z*f688 zJsiI}k&)w9H1Z%l#=O?egKQc7Znt`5z?ee_igo1s2Pg3FO+GI9ysI}^FlbD-PQ;S;JG9vRqDPQ>^rWW{MoW#XhnXc4#Sz=Q zeMBwTOf7@H(8ycu;n+dSI`o40VclNcC(trKu3mQC{m6#q z4L}|NiFvto$GqG@^1RO1@PBp0CNB*h`#^6;TBH1V5z0xEQ9kL3a`+OIgyoVlsSS9> z^7JZ<&B8XhKdA%w_l5lfC085mf!5dvzvWFUd<&!>$%dnOT44Kj>v!mdGmx(b89w_M zw5NUEibmFTILWz9_g;nj5>Wa&wt=*RVRU)G*sGL1NG6N~4-zr{rf0801zNaQ;RBd! zX@zIld_2wOoj;r7(^yP2i`l_efOHnqip7+(dHO1gna(_HVBytF>%iu6F!LYEET^*= zHx|l0^LM2Alw~xt(|C2oqpb(Xb-&)#AMaQ@DMTp!k%O($Q{~CAf4(C zfZj|UjN|ZkSYzSZBkSc`IT+p$it^p2D5GJw1|tNAm**yB87xqpC zNDnd(WJcjPtjEW(kx&GZ5*L_3lq|OI<;_#cq%Y(slU0*2p3j~4Q_!&VnHX%sa2;td9IZx8c?#od z4LjDaV)EZ(yh$p|L~r5^$6Rl629A&3?u3=u3EGhZ{u1hR(!0=ziI1?X&q~tew zlUKFP1qgE+x)A5);{{PpX!8TiG6x)`#C2>QtiXru%DOioXJ|Rp$m;+2bNyG>_Y>9* z=;xyUj}2|x2i9RF32NO@PdDm5sus3GpE_9Pbub<%39!TPF*{t-C_#zsQ|*5Pwk<2? z)ks{6Y};S%j4SgRWiymHO5X<3&$J6=s~ z-pZ7Ckgrc23DVk+-$P!mW6@_FX)l&Ri~%eU##{RrwW;oK5=)9*XXIcV`aDB}pP_6Z z6DcFxCZ*J&B!}si5Qq4c3MJbGMNIya%H)bcR8onv2Z4V}NW^55WFj#J-J^D7oIwpG zd$Q7?=2AWKtwF7&`UIw$@X}FgOxklYO&@xsdsC7u=yuB(&!(imAblcIwxBk(ktPWG zwHDG0L1Vfgl?n=4g0xallpWGqL9ggYp9qR$KKBT!%jl4xMl9V~L0#ryx*LLSEJpf6 zP&CV3X~F7eYLkz;dV=<{8Z{F%vp(wDT6N8kx(HgpC|b~~nW#$_^bXU(JB6?XO+GBY z9ING6w9FUe)f1^$P*av}iJ&cMs9PoIc2lGe1f6A;+XM||^p&7+Mn?tRjKp*o1?^#8 zZVTGp19g82dLawR)RLEaXE9QJL7&7Uc?!D3sDq&JDAWZBk`s{P1*wyedI>tx32B&B z7mbuFsLBQD6+zQk|IHKh4eP&Uf{wF3st}aHXrrJRuPL!WVUG1a+Q@v{_I<1Eenm1=|M z$s$4P;#`9|66Y7t@+zG&);lPGbYZlQOc~oQs52QLs8zyAIgpGN)U3s6DUcK~!qMXw z6i7ZWC?+U~95HCU97Zl16Pw*AG=+nV(2#}x9c_p5d z6G&H~YoF*y5=aE2eWvLxPRfZSf$PZp7LM>fhzulJPL>TG6=Wu(1Zh#ZK}lq?L6d?~ zNs&R*f-=ZrgNlNBk=00~oIIXd8q}A3$Y=>EPgok%k9;nuq2n7t{mBVoxv%c}pn=5f z%hTmYEeioy;<5T(E_l5agU$7(A2k z=f28G&;FaGBGMo3G-0}){eyywNfr?9p}X{-7d)HH61tBwH%oI!iJ=P*o=dh1opWYc z@H|omSru_1cP1=UP4M3Eg=W{eH6TuY%*wVa5*^ygk|}*|MuYJpb^ZbxD(FBhJ>)}@E2v9< z$B^}8DG;_qm;Q}IHj>?puw>pLo5}t#p2KhbeM7dAYd~oETmQ~L%fqb{60(il1H!WO zhhF)N&>;pFvHbqk za!klRg5O=n+$$X>h3qG(f<|_m6!JBhC}?&6`oZ6jR|Gk=o)+>AStQ85{+y5lE95W<5p*YQZO9SQU(lQB1453GTtR_}n?jBgC7OE) zOxzK2g0uv}`W5y5HsmyMjIruYgq$P3KwS4z$OW=e=#~ZD3b{ni2yzXY7IKAD30hJA zt&pEdy;$yL0OWq11Oeen`>A&cxj~{B6`Oosc@%PkBr(F{*i)cFMpx-aaGbtPu5n8; zbbx*6ZQ>Niybyo?`k_?>-$V#L$=0N-+IPrcL0w;Q3%yJ1;<@hN9M90-NGc->c{Q?i z=za27(CWyJp?{Ey1a7$^p?l~9lA6eA;@F7LM+BC0_&1YG9GevSgw#sn^nE0}4uiT1 zS`g7El+qG|28YTNUu=Tu7DT)hs?t1zMu+P3nn4pnYthUUt7SoG9eT*1nW1%QRH{`s zFVuls(H!<%7M5&Fs2jEG zVYU1`v?<*nXn2CJ+MFI0GzG|=J`nUO+0|@N^~d_e0y#Tt;PNM;8+I0zK7_>juG9 zB|myk(7cY$VSZHV&wYL|&MmAHZOo_~(s_mj&~^s34-2Gw4eB1&l?G*Ex^m*-5FOT? z_Fz;-k^`f|LTIJX?dZ}wES≤FdeO3=4~-se&ekj|z*XnS%1eCxpe)JVs??V)!dz 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

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

yH%_HS12OR4J<*2o02>8oYwmJsXy`bVU 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

RMyN1K1_dtj61cq6YEi4( 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 Jf&TB3{{>qHNUQ(= literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll new file mode 100644 index 0000000000000000000000000000000000000000..8e791611cc1a40c84c5de0cee1b694d573400231 GIT binary patch literal 119208 zcmeFa2Xs_b*FSvjxzjQ!ObQ7h1QHif8Sc)X!hN|z4zIt_dCNW zr!5nv5W<1Kzy1>9X*}uElj+GxBh(4)HYJFSF>hx-ZPdPK|EHfUAv{sG9^ipdxM1cvm&^qI<#wGf$}7?x{mBwy zLP4lLbT)*XHp)9Wy%W!-I;;dCT>iFl9zlAdj2-^=&@%&p zJ1k&kdpLYfeq3${X`4~s8vf=sAm4D;fOI*evmurq362J|4)#h~@=j`chUH{O7{%i7 z*Q75&Qx+^Db0p;YboK_1c^>^i@FQC-jmD73wrRc7lj0Kd6 zyK>qrpqTH<$y`9O-IddJ0mX1vPP>=|q{YP%tgRZoeeQoI6@O`h*sbT)!VQ$#ex=uBzq|~3u*THbEWC9 zkZR3UQdBJa8;5{hNk;)Ini?e+nF7uQnnOx$WtUMT#SlCt%5VWXkRyo3;az}Q zcI3xe)1`3Lqj7lWvc$VDN7KP+HIrEw_2n06ZB+-v5$7nD&l6J-#sz}rY^ zPHQC5zF3t^WYD{JUu&;*A=2hjX^XX{MN%C}XJ)5JI?Ku;=`8D|(%D|7TIW#nLprF; zP#1qokK`f><{{4i2l2F*}8kci_VqSp~gId1y>=!>Zqnn0eP;z2XOY$y`z3lY-m zG8?cQ@w#LKh5@h3*?`f(>vA-pxV_SK+=T-7)+315nxV^we4tSX7x_Sv*atcy`9Rm< zQ0Otyp&pX*xa&d$iFlGK{W-_o=uFYJ?PW>>b!&eYnOeUJ`40vu;#1WSkdrTSk)I$s zoY&vh45FWT{cB|Xi!iK5AM-X)AxR6p%Uh3H^fpje&@kty`Co~5K0pw68s)+WWL z04Tl-$rBvf3Tcu8F8CAec7*K~J)G7n^hj`6FVeIAeo*UmVy!Kp3C`eS z2AABtQz+Y1tjwT1P7Mo~fdHLeSug{^u&{s`2+$>z1v3x~4-1%qfD($r&A?h>78tm-XQYoO?Kz?Npf4rrPq23#>t*UPv}?p3GN1RC3=E8 z@x%l9_nLt;Gt|NqGqgAo6l2}$nbsjX2^!BG(G-Pb-j#u13cERSHESw|q= zkr)#k4K3q+NPDaqS{v5azmEuWLc0im$n3YoQgU)ae-V3-+3^mrdzoEN>^^2cBX&Qt zX-=?*BDP;EmZV3Ry_DF)%sxTvznMKi?3c`@xxjwUY&EezFgu>uW6Ulg_77%XA@(@4 z?BPGm9wq57%yxEz{f*hF#7Z>ZoY1AjVk&dR>U=LD!3p_(kfbW#u^zB0-)9l4@_jF{ zD&HRytMbjZD&H9~ke-n50VGxV#NqQQ*;K|fy#Ei z7p5w&7ZUroyvFIgE+X9td0kIZmDj{ruqv-ph*f!goLH6D&xuueWm}ck&T){Qkk>IJ zJ)w@TC#lNoi^QtDen;#{@)}jeh4C;|d7Ve>-|`x-^SYdLC*<{UlB&FBCxBIXy?|Ji z*Qbb8dHtPOl~=Y^dF{~x(i8GJk)$fGONdqN`4wVSUXK#1@|x`fdy>4e168jR$yDXl zZn((~m+GuzXaI;)z|G@@E5xlitRSEU5?6?;KCB=RqeE~xu_E3TB9Q1%8tYB;9bPx} zD&uvgz&s#^;V%^{!2~?RpI9*1BZ*x6wFjSu^&!nay}-v{+)fg*0h^HEB}X zMyux1(xkLIH*3c*!^9XHscdZ`^~=xIkB{3(j#e$cxh7Fy_z*?QrfecHEB}X zuQzMbq_pE(H0dptfd=Avv;PNV)F zgiV^1Q$w>RO>+23vnEY)h%LH39!1j9B!>f&oDKQr|;_ z=Uy4Sig;d3YUQ0I;3-%JFCm`iV4bpeC}lhoYwLAn!Sk`U*iIHaD{G6p$b#3JTCkb~ z$5oOqC!W`tIx?QGWpDw>dBWDYxSj;G-b6k*4{Jz3YZk97_#>RDjZCU5^aM)V6+B8J z-ce9mT)}Ta1D1M*-iAr=3{*ls>wkZUR>S@ftrPtrT0#By{L`+(AEGt5KSZlje~8v?+JEZ>SQ|O~lhodG0d1yJd{lfxO8kJer3BCoHyQF>B_cA`cb&;lH?{yczf3z&gmMp(cM1Q&$`%s@ajOVvR&>R0REZdm`u zp`Dp@xMT($w5~nwa^X>r)O#%l*3An>Vbz?IpO(8|B$(r_tr%|Vk#cWNBWV_lZmQlE zQIp0(40)CdB!DQSWx}@^B+6~fa+BHvqJ+xeZz``91A}~zi=WC5ooSdsq8WS+R(TQ9 zDy=;%CfaiX3ux5J$#>+Yp zSKY}g?OgW#)yaIHM5z;)%}&076EjFui@hwSIn?BtREvK!C_CS=n5Y)-WiidbCeOoK z{2GgCuKtINm^_jHgHk(bWG6qJ%*jcV+DR2V`T1l{PNLLKuu?(he?6I#lPI;5N7>2m zaAF3DYVoZs{*%Q-wRjPW|AOEj3dszfM5&wvdP&Q`K=h9uPNGyE{Hgw>(xOqbg<)Zs z^#(Dt%=Yw8%A8 z|N2WPLW(K1ky1bn@c=#P8ipAN4u%EHK!C|XSug{^ArjyUsvTvzH(b)bPKvgugBG-| zn3aP@7{0qABW21Mk$3}H@1Jdh5deiDX@aPSt!2#a^#iqr%tvSe7ek*s9wB~{f zB%qs72M$sP&KoC#zu_4#gA(mJG>AgZgErX_gLBVi7@-1w;;sf~d9jX3b|yLl9TJ_v z7zE?1oCflmnCSH8#YvR{3-2De_L;f+P-V1cr<=g5t`{cC)X2cy-~dPx@xO}O`}eqG zT}l!}zFaua)#yeb(^`Po;#_V|a4{gqq4ot7OP@X}4%BEdQc(XU4FGLr_^J9`d%Ui3 zDV+Fo>8h}iI1()+rmbmRrk@z1$s|3^x;$)hg%UZ^EX2*mSL)|g$|TJ~F-5hZBx*y} zHIR8zWAl*eTP?D5r;UwuyOvHZ`8P#KYL%92iG$=idWP@GlgUTEO!1p)W8Bg@gDPqX zRn#dktX~2$*G$7PaV_$kA8WSKY`}w?x25FE8jB!ilsU?Z-bpIMGX?(Z--e#<$1lW^ z*ENqQ-kCTJLghUp4cFt_30@C()+vYw>2rt@gl|dd3l!A9!!EFG>IZGZbaq5Ekj$aq zZ5kT6MBAd0x0d6XOW9sQ0U(4Su9qkA~#+;`M@6csAK!s{N%$#3ZWyrQd9wmS){VsR5gws@U*d zd5H`?OSM3~*ngS=;j>^<9e!hM3B4a}L!cR(zsTk$^3z3z2$+0GPr)sELRxTS?n4yraTH9oJZ{(TfxvLn&qiMh4mB9xLDdfFyn>4(&%hcH7UDRA)>L@Vaw>Q?h(6WW9o^{AV{U^B9w(*fA_9|C+oN&vTsu9J%)nVXJvsUA zTp3B(e=F_ee4hx+FB$c-yiT4NB-LZCbpF;6qn zjcVpP%R#tIs;3qA;hTKbr3X+4U>!aR_NsO>PAdlT#T>M*mT!+c_g!MNHa zOgjp*Plvgf!%)LUJfBh+Zr2z`n}o@tF#C0wOQORZ_{T8W6y~4~GbcLCXa5+cJ%u@> z!_18i^SK>{`doAwbf7SYb(ne4VZQjsFdZq(mpaV+=rCXXV;Iy?V*S@TOaq5`7zpL| z4TZUv>Id^fleFbhm?JvOg6J^c+F>v!=rB@@M%~g!28Nq~q0%fEB7@JO*_cc%Tzz4F ze~|@5ttBkL3(c?~YAs{IODrI2p|a2)E!}2me842fA4&6M{Zm*N^8W6uyAIykt~|q?b>nHjd8=X#ERosO z%}{2$aFU)O;rAeBC};~GCm}X$5Z+-6A0*)x7Vfl#7->YsqaYZ8-bWSH--mqGRXnXE zJ0p^Nlw?;#f>i{CdM6^eOi6awlDv8tyd8m)0pEC>uP`5;%;l3%ZE zQ=Z{c%`FdQtVC7xy@iTv5ZI-fA2I{>$ByHRs~%*Q98{reii*i>MU9diwMm}Ry$YLc zSaUl~C6iukQs?M-M%7-9p4x2{=1f>o!>>w3!>-6+t9>0OJX_x1m9=a5H+PUjZo&uH zltfk32P(b?adDHbx{_7@dvnzt95;!o&ZT7C z$0pPVs?yjCb%Uy(*@}8X)hM#UMHbqVGb`NkZXjWhg^}inelIGpK89tQZFxBf`?0W} zEyPGHDlm;UX}DOoApa~}X;x)3d|r97)30S=e9; z2ayo3DI$2Jht!bpb{0nZd?^X9Vqv7u)7$11Se7Apq|axP5W_Zvkv^Y9LW<1{Mf$v( zgk>y@^!Y!iwy>3kWu(s^B_Z~s5Jo!fVG{lXVus$gb41;}Vm}D_$#>`sbrsaa0H}x6 zRlK7B8W6zC3Vg=k2?eO<)m3az0HY@W*0|*0V+J&p0DQ_|p#t9!$h#QgZ<)Ig9Cg{c zytBd4cv6=)4jhdmb$LU<(fCo9*AEhzwll0%Q>xw6-ciWWah+2_l0Pc3>1FGAcZ%1d)+zof1SwEo`SKNMyuXp#+i9 z>S`s3j8t?Pfgq7l>S85`j8L@lfkk8>I!6iUJuJ0qIztKQeLE$Xs08%FixSW*1RwNz zixOO*1oT>*65wouEa)XTC77iI^jeS-U`pC9Pw zhx)l&Ki}2Q_w;kSe!iujKk_pa{mz?1AF#+KFE~b|(XSarq|t8{MWoTMB}SytZz4vd z(JyF4q|xtWMWoShAVs9nuP#NT(eD{Wq|q-Zg{2rHXkU&kCGE{|zNohpG#>WG`5e~y zJOtOc)c}s&1rOkVppuoS>M^htcff(0$9i7a>5WG^sb~%4R*Oc2<`Me{JLY8|ueWG4 zb*oX@$Bubqrq1c+vApVY1gNNDD_+}Gxz#A$%FUy6!Aym#o}mbn*^Y;4+I+ZqIaqZ) zseWOXJX9ksJhIXX#Lc636*gz00`o2~kA*eN@>tlLSswp*L-R0j^r$ctxB_cy2qOa$ z1**7$g^@vtM$!uEn$fGMRwO)~g^^J+mW2IT7#TVLLuo8#VPtUliiB-g7#Tu%k438{ zGZYy$UMI^RK%z&E$4H3l4+tZp$K52{%EHJ9vW$eZQ!+!5QDhMb*RaqYN%AkMxQ-?E zP?A3-uOVt6$se0HJ!%BZugg2j4B4Yf{@}b}yf^daoyv<%Z(e_%KD>D~+;hEoU3lp8 z<`wV&=grIIVa%J?mIo_uUMdf--n@hmwR>-#i#LEcP@+A)7inv&+-NIknHr=aSTEph#XF>+u~;w7Z3Qh; zgEScH)xE8ttOVa<1<#$f;%!pUFm8r;fnY0W$sMHmLoXC;1uegWG@mbb> zy7Sr!T4V=l3ejf*wu099L7J=drpZ=(N(!2+^tR1b(0(CEvmKf{Z8dDgx1^xyOb-&a z;u})Xe5c0*TR|IxAWeLF@nkD#8xo|MRIg@i#aE=DDN=VXTk!)aXzr82qr^UdR*M%g zh{Y)f4xE!+K`a^Rz?p>Z;KKm=jQR6_K4UJF?M{`{ow)7MhE=t_8g6?P-1e%9RTKRG zn;mL}SCV$E{J*8y@dRV1Dynty;@MV2wa53HH0>X#9Z~CQ(xkHg)}(Nni0{-i)4+E9 zt%0qECybZ+4#6e!OH~`2Edwbs*ajmehAV#7;~>uKUw|ph>mM$g+!h5hVMn)K$?ee# zSCLCxtPyDD(kw69hCnkmRnayC{%&)t42>fjECgJEw9r)WT0*hg@5!96gyGO^7rEl& zJCSf|354yUt^w<#Q$nB_o2$v@CdxIg0STBEwr*S?_eTdO5EYzlXibRw7BxqP-Vd95 z^$P}Wmz7GV@+tl|WT3zdo#~cBNV`+X;I6wv% z90ubeP@17nP<9RrC(hpBCJICA45w&B`~`^L5t#2-8n`5M09JUdSw%>Rp$NT^RYo{U z2YpM~Yo(#^7vMU=%deth+3G#+!b!Kcel5uwNps?bCDO;KaYvj+0*tp!c*= z`Q38dlX4qKLE==a#=9LIQMRUqt75u^Rr`l_uq#A<^xg3Z#_7tqzZnRJcUbV9=WilG zt>C7I>L&&MipU=-E*yf^LKGw2We$QK*0@{kX9jwkoTL-(O(~uK!+X=nSd%0IHQ_r` zmpH|aXOJ1_-z1)n;rm$~MYs#;D_Yf`_5Ark^zarPS5a>jR~KtD>I}v95+3*xdQQG8 zSH0n%D^307cDymS2L0D$njUb>)@!8rPzH+Rg3E9j$E|B2nB%S=QI_?%2tn&2jfKG>kAAu&uO2%JF9w3a z(z=^dN7TB52AbCO_tK+a0S*Km^~c}=ug|F0W(w-Dv+y>Og5F8OiLH9Wi5VDeBc}!R z!^l@J3fOwV56ZTYp9|=#;NIYyAbk5mU-tIW7i7HFb`XDw)f=It)tACj9pe3xNqB-s z8SpzvUaKdRE`BR1e~1RSpK;~aFpy?i@FqaMk=6rWAlX*o8rVfY*^=komw-BAm-X)= z?zt2p-F?%yHH(Ie1e~+t`RL9>g*V+L)9lzv|{Bjaru~EqHvT#S>N)NsVyOyOL z7394D^#^U0VhyJZGzr3OCWy;O?>`#ye&kN1r4(hMvP18#xKw(idQB?PIupLtm+$Mb zk@U`GOEY*QWt$342JwD~D>gMQuY=ojYrGj_?SvU;CfUIj^r9C|5L}+Lv2h+Z-uT$% z2o!LL_6U*eG!va%St^Vx(V6ISSpDJJ4zQc|YFJO|dFV5msVwYgkTR;~a20Z`#d4%B zP9cw77{)oA^&ur}S2%S|0)3_fEkioT^LStTo~EK>d}Q}ztwe{{T^qz zoeuRTT}KWqgV!KA^&cUYSU0`I@AdBUxdT|gj{?8f!i5GV66yo$eT=purjr_T(9J%9 zlKoQ|7g66(uZ7{;2||0n72ezV&T8i?b)q1J%8g#{0qHx}t82SN~krJ|r#pDJQ;_Mb_$@R&88qQ7FNc z8bN_KqC)u(%YHbQ7ub04@1rH)nU@rbM+N#r=}h|&Z6S`QrofC}FRI^<_~y=TBI6)D zKXbQ2K~j42;0|nbH)+~`)cbY$()7C2sNi3r%ND6iO>3I*J*r2z~~0zm|4sR(fi) z(wWUlS2Qc#-mLVOW~FE^&7^E_v(ov^N*`)gdazk(LT+=h)ix_#(5&>aW~GOlmA2{B zTx>m?mCk5ZdRMd351N&Ftma}XYbwR``V+MedY73Q2>ufmFayEQVF5D`{1O&01HrFh z0W%Q%78WoA!S7)KGZ6d{7BBth!UAT(>j@}i zSiuYgxZP4gnSsC&7BB;WGb~^x%9kswUGG>&(naXio|>$Th4ETm~FMY`#m zzh2kGtd)i^PE&6TtBI=QGtN(9*da5BAt@|i<_EQEGxK9ZW6`+O&oAODm^hX924X{# zY#EB^aTF0QeQ-zVwVt5j!nXic0|a}6_!oz!!B|?4k(IR()EY>ZS+tz|k}TBtiXmD3 zrq?XYVt8jB8#I^oEV)zrk_zZCztg+SY4{=?xeI=U;AYTfgI@#VZF{__PVr!WM@A&{ zyZn!tflexz3ZcIQlN@bpZ`W5)#^>9a#MyAD(MF~txQWu$8$bKw2zUT>GVvo@oaJ!! zgrB_r!b%lyWTBqseS-wO+Z`*^s2?tq^Nv6o^|NKzkjZ)9LN=jt6+)h%SIV;jB~3I1 z2r#P}<~i|!R!S3t-wng7BCh&>Lud8Ej4bDU2bR9Pjg!Bqc-_}gqUeiSUd1X;abZuM zCZ2lI+-~QP>d+L^k6qO@yl7z2JeM5HHg7d{mc{w zNvzHt>JQfB}Zx-FO95+zWfz;6D)JHfe>Mi?rFqoSX@1gI4c>@=yXAq;R zH#LZ%6u)|fAFRRtMyA=RbTy2Kq!Qh(JyN-E4t@iSlIW82>3O_m-zG_P zSr~A=@iA&W_zy{nu{yw2?7sA5k8F2bl?j(cqKCdr=G~XlRP44eHd7ZDz1o1_*2)PZ~tMWO{zEM14a$P04dG@-i(Q*L+@$y+Y|he7_-K-donf#!?gI#D5WnLQS8^?5AFr> zE`Em5RQ%Dtk?#8U;`t$-D1Wvk`+WRi4I>%>9C-G}AIY8i*&fff_(Rds_hIoFm`8d{ zz2eJ`JG;5W${eC8xkSfyoYE~>G+@AUiKjX)@8lA{=cJanL=Dron2u-qdqmHNJ@Eq`8h!nJ&Z^Qu9x=XC)64-3U)VRbkw&~9HPcx0@GPxm(!oJm- z((^8A!6h~zF>m;75L+q%2NdBsE%+7W#{n`qYrO7jbyiGIr7p6GsWu}hrlC&@j` zpPohh+nw$l;}yeds2qlIPS5N@IT}_u#+fRLY8JIeyuEggaEY(0$-ZMptHLF!I3<(1 zCRU+N%gOW09d7cw#I%k#;nE{Lp3=6M>!^)Iq3-TLbW0r7-FB9r!EwFIwZGF*HNYkI zRFKW?;bhaUocL$^6RqgBuBS`%Ym?grd>4{T<@PhA^B8B6cyI{CH8Yda+?wmLB(>Yh(lO4bjI6FyJ43;{#7!LPd`|Ow z!^wVdYic3q44@i0s~e^E>S`+UKeD!AV#mz|busicL#)L!)b+bug|LPZ=aqk#+Yg#p z{Q1Ozp5NtGqem*V-bu)VZ=WuN?!^*9ap?YJIlhumJbt;ByzI^*FFqW~knU~vk^;04 zgV|+$zALN7H}CQ|_Q#yxl~Eth7e)>k08!8A{80+cVYCB2Nw=8M?OL~n(M3AkU5pME&&QxQK>Ul*_Zr>9>AX7Qyq?w2 zt!H%35JCgR1B}Mk5;{dZ1ti4P{Rxc}+c*!W_9iq_xRC{)cr}yIP9Vy|+Af6lh*(C~ zF#1HaG^lj1DI?th(T>r$euO?3oeip$>sk}~QWSBx{uPA22BH{#$tLuT=)#uwwNt2$ z(S{y`z7q<)sL=%0EzxKiqti8-!{}m-mNNQKqvec-Xtat^H;rybefh+xqf~tB4XUFj zN1oSHh@;|uMpvOc2|dbaGRl+CMn-3#JPAF^D2VbT^g5$i$St8`jM^ZE2)af4{E2m6 z7Af6-7@eiVWk^cP)hJyG*M`wplrEw6j28P9>d0tQwL&?JEl+lRKjShwyeUI!zZ>QhN;F;(OoV?sqL?#GW$XFkW_-Ls{UP7Eq)Xu8Etbu zR#Pp0!Ul|Vy9N@H#A+98kCV!H7T zqjOjnGV?KpE{Qfh$;%?+7>8SdMO}<>x$z(Aa-Hp*lRvsKY3zK^)7uiw?K?j|TkKA&K-1ci z*qD!hTPCH#$QG?rE{D8l(p8{JLfULGH?hJP-8iY7?6F})EqQS2YG0%_=(RAHow zgl@Owr;0Bti3;X_0zbO3M;xWOg6WG$`RK-}eTZIJSz&}zp3?tzSdQ;Xbb03O`H5m@ z`dUzbLJ!0u{r4c2$}#tWCRJ<%&2RNQsH@dWpg$&V0j>7E0eW34Dw)fCMDJqy7t?D{ zs)qQK`G?r%Mey08pyfLVHH9T#v>=-i3A-S9HG%jmkS{}gf-=t*!IXDUp345B)Q@3v zsO5gpE-9abmZyFV+8358CCaj{u~VB0qptDy0YvwM7K{5@eh16RT#p}fnRw%=G|CIZ zaTy{ZsR#V@O(sbe)89EI&oF(TQ+qzk53t0?Deudz=$cdt^$62FOm}l$?qHk2OlLDS z*!}{hf3&1f>$$ZIZ~3dv>FCD%ew4QE1BrHGI)!N+)0{yh_b{Env^Ue*!6a|Vv?o(P z)17%Fe}<_QApR)xN%_S8%94J}=P_+FjN}H>5lp)>JyuKdkC=8oh4=)fb2yeWm~Ldc zN>NVjBBswXy_ae1sTB6#9Cjk}7Sm^$UcvNhrtdL5n=J=3UBz@h(?8whXD-u09^!vy zz7x}}E|MH&n$41TV@Yy1)87@(<#svKElfuZC7TVL-?bceX$(mQFujcFWTxlWk-R_C z$C)l=n!}#|^pbWq^QSOf&z^^IN`7Yl?=#KdQ1`I?0;b!Ujvr1QDwtlzbUxSAIZW?o zx{|4b?e}r2>X`R4UEP*E9Af$fs3E>fHVP6&0{V5hkMB(P6c{2eG5!R3l9q>iCG{Oc zbVkb$_ea%RYtb*1gvLOM(Ss3YbmLHGbO4>50LQLl9NPeUvneKe-g zc#tj_6<2RYW`V0DZi&cM~~A;|^rsg3IbGKk+*Yi9X2Xli!Q@8ZJ*I zUm8b}nVpHQVavCf9vDoL%UPb%h4{XGiRLqX#v;BO`}~FNOL=VB!2RW1ZYQcAsor-X z_qcNIUuSXqJdHhEJ(B#~Jep`a*W;wF#Fudktji}py6+rg|4WCHT=gI~r~kb{B)M`Z z(E#^_7rFgk_78nT^^2!CmhnifOYG_}C*LKKyVhW@8Q=31(6z`r+ORns^|jV z%V-Ud=e!K5HN=&WS0=oSlb(_AAEve3qAJn$!rBuhE7==S@|NUI70X17oA?#*e7bQ{ zLAHoPkBgMyo#6kfz7O;%y9}{V!)HtUl~yL!+Um2#S>5Sjlx`Tc>SXZC9)!0z&(3|K z01I*cY;mrve!hTC)abLt`BcxX1z6hhXN$9AryWhuM+F{RSKR49K};0-vLIFr%Ob(z zR>Qj;D2Nm1D&#pjJX0o!=^DM7_3wfNFUL25`RBih7qMKqC47}(4j20jJdfj zp(7g2FONeE>a!(2Cc7ojA4+E|?a&(NxJErkwk~WbL^j!8j#Oh*6COs3Ju~{WD@+wW zjpp>}1eC53r8-SyYeacZ6Mlu*ODj=gqoTrA;!JHxdB_mwYD6WGf%71WeX)n~o*`yy zL}i^JF4c(QYa_1Ih~jG_mN8l-zKL_nOmQcp<*mkct0<(iRr+j+_ojD`LPkcWjOePn z^or7LK?$}M$J2W%_to`Ca z8~Jb=^rVfJ;UsD^qlKPdyACbP7r$r}TQRh-K;(BMFNb61j5-bfbXmDZ*N!?1s79l= zN1jtyB>HRg#mEbQhHA7oJ5*RK#%T0)_QgOGG&(<{p|C`pr_r2@ML-v6)O~cOEERJ! zsvGUY$<$>UHMYr=W#Sr*R<`lst-X~Ry#-ylxJ{$I(3OjIj23%JGBaft@qk8knLfNd z@r1TKh}P3pJg?F3XgyuU7LAU;XNAC9Ph1jz!DoforBNKxSt&l%s3X!@iSv17c@M&M z6W?p}48nC2ziL$8{hGomymU*Jt31!8uLM$`E%DF!Z;3*m`qxCEhkLEVKN}aelzI0? zp`5&jfG%gBhhz4R%9PdOI*pEv@?m#+qejy)GSrCMHM*j;4|fwA7_Aa}b2k?D5CNQu zB4t1?74{Mp8f_o(c42Sv0Hec3?0`LmedrBCd=49*_di(JPo&uByTSottVTcg|Fdwg zxK^V>y$yW#?kPqK#oAtkHf!CS0fe?QdevAlz$_Xf4r)vP7;jOn_?nUGE2oGg+}#MF z`q3%G;#)h|VJD zv&H#)zk;GV1sGKn;V_3kTbwTx_bwV`qn*X4*}rSF#d%-Xfkk6%-JY(e(LoP?wm6sd z^NDdby1v)YqSI`&tlt#=Wit|Nao!HgGs3#~^LmfQxv~0eaax&EL^K*-bXJt^+@eV~ zDz3e-XtIrR3PMHa*l1YwoT77WlmwqsZ1hN6sA#HqjO;yveAyJON;m-50Wj;9aUEp&9rq_cfYjg;wW@Q z(Iqx&S$%yGogUF=i}TzLtBU3;094SSZA^oWMt1Ot1vYvDt>DrqbbHalD73z4k&RwP z3t1dS@x2N+7F}s08cidJMpGL(I~8s!x+-kx>^X8%(X}FnTltolYn`tZEfx71-Qs)$ zs0*XR#xoh7!s|t)(itUP3~{~a&4^|TLW7lM%t}|Lyj~2~=vJ2xy3;kv^k>Rt;%toq zejnCwc#8|4!!ciHWy76k8dol&uusH$i{eXlKz%5!0DsC(DCHt3*p1eOGjg=xC$Aif$M486A$Xh9nl> zB`(*fY)Bf=5{>@s+qU>$;zo@;{W=1z(P&CpUhz6{k4Bf26$3r2(a`=C#dl+ss!HOl z{xv|GHClst})0Cx$TFBF4rbg64o)!(-(&%urd`4WMQHu_D7e6DGYIJXYrrab}Y4mcw zPizu*XfzMHXT^GrRzUZxctoRZflT?Fcv_0Cn;-j!7Mw=JJXBvHr_+Av>X!Hl-dr=(IXb9rlEdJ1FEaKZNoOE1`-f^)fQ@$kP zHCpHKiI+sGMsE+zlrM|68htU;CtenvG}=&`DPIwV8ogBO6R+S-Rr!4KluY@m=&8|r zr(nMz25GeV)J*xBsMF}FQ+?t!ahgVJ-I;QWn55BLZlBm9F3{+nm`wS)sMqM_7@v4u z%-3iK@~~B0uF?0%!&b3GqZSCaP28wa9>Q%CYc$G0{@xJxXjF&%y&)dfXx6Yy`KEYE zqjkf4;!S?5g32tpU#5IZY}L9f%wunf9U6UKmnq*Cdo)TJj+<0*P@@&y?Y3^q0uza!3Mq}uhn;#?cuUHq^;u@du+VF>^Ba0y%mKe73|~k$DhEeYQAL+kRF2zKB;k<2ZEhixwJXw>88E zq79=}Vq5xm#UF@uHu|IZL-8OZwYJ$Mo?xWbHoL@DWr?(SN_L5g-YRxV%P!GVBTCDz zCTZC%1}U9EvG2BZl(OAoEbAyO2_<{Pej8D^fI~apDuvMk5+0J`p(@J=7sn?i2YMJ&hT5pTMu3vrnqcPel!*ErMo?PerXp zG?RQPW;0T?xnC^R;b>OdFIH(pY1uFCP?nxYuogZb)@$?v*1`wGBN{Etx>+6+dv!R9 z{h&CcbUbe!q-5bkb=#@rp!kDz%ds*pD)~%2(3fy+UVS(Z^a;uXnls8W{qe?_PrRV5v|sainBGM z_1O<%nntt+J0@mpL~F4Bhy@za8tiAWSR-14{UVlWL~F2L#U_ntE%lpt*+y3s{Vv|p zh}Kfa#RnSETIw%R)}Kn^ut94nVa(Ks)>4M?m`1d&lg1{EXkBL-uV_T;I*0M5jjkwi z8oL=S7dh=mm3WM-0jjLGR!l63HO4YJY|v^n!8ltZT8*|arZZCQ#b?ac;T|rmFYy_R zGq^=h8#MCwdZ;AJ*sIa%vgb?M8+`{UOHufGNk`)Y zjc)4jdP%M^7B{)n>dxs`Ut$@{G`h9_j*`yCs~X+ge@{uC@ryN_(h{o?zqxAV;FCIR*8Le zJxfO#7ijc)LC@0B#tMzr0gW}D(?}FfDm~4pn4n^~sl%kwGmO=f6uKyGTIrd_CXFtR zn^k(2@s39K_P?}rqOn(_r~5B1on-u|QNxf+OD7xRY~|&uA&X1TG14^Z3EdQb!o_WPot9F>q_g5{Tf|Yb!q7=<6Di^RV^-^Z8#>YR4=T4u=ElmUn5btsdSDp zL8F^GY$}~++@{e*aj%v(7*E=kZ`a1 z7i#ng(2Yi;My>i5mfdXJsnNFuUCVAYJX4go$~%pv z8U;pvF4r12Ym@@?FXI7?9vRcC>~7;(jqa!(RJPuDSEE}0h_ZW)FEtvMb$Z$ThB!~f zKBCwwA2PaVbb0aT@?m3;Mr%4uE_>7%#^|u|dyn&h&S0cQw?~c1jMO~+s6ifS=33Zc z1}r1!nzCnXbV|+IvdvNGzOt91(8jV?Z1iWvOJ%QxQ9SKMU$+tMMQ!Ay-RD+YM>BH- z(aan{wBOujThe|rf@nAKhOMLBLZ5{3S zB8YZ;+ie}~_#%jQeDByg+VMpY?fBlcb+qG)AX*dcuywR1iXhq_y=Uuae-uHqKYHKR z(f%lcXn*v9t)u->1kwIzr>&#?Q3TQch~7%3&z5-FA4L%Dk9OI*MOX<$5bck4+dA4G zMG)v_Fa<+8^OpoOD`fe-uHqKiX^SXnzzzv_HbnLg{d{KZ+pQ zAMLYsv_Fa<+8^N;opdu7%zL9_=tZ0l&Z6hX9GvXS%ZiZ{!?2wOVooaoCiil>vP z2%?jy2%>ZSuWU;?*N-4N*Z|LAUeB0V(aMaK7#1P`deE^C)N=} z_W}R5b#xyPL3HN-ovouY{|KUU{qJoZo$E&so$DX9b#$&DL3FPFgRP@;{RpCS{U2=| zo$E&sova_Tb#$_BBPX4g{}k3a>Ad{sDD++7uQsCd@;_`u=jDIeh)&3D#CHV|M0W)d zM7IOS!{OrTb|8Z29^tRB&bea1t}+|N(|B#jaPOe;I)Z2fleUgVun3}EooVZ6R~JF# z(_!n#X9Urni++BVK3n1+td2%=txOrwwJ7+s%tp?-E}uuC^2%?bP=3wPCg`^^mmLG` znLRe5J+qB?{~i<8Icb+1L9~PR+PW&gqufUER4#F0UHq*BqS5_L(Do+i`6j4mt*<=d zWoNr+FCL5`5#2|fqLB(WL#+fn8_@>iPwVhtD+Wxj^ZD8ok1iCYNb6xl^a|bor%54_dq2t>yO`RdsgC3|TQv zg_}M4Wk(x1UZX*63((_dX!NzU-rZJi(MYr_D95+N_zGf`7!TA=W-(eW>iVp3WXUla zy)@=oM|(M+(IP$t$dQ*bTInh8T2`JTAJM3P`_Aqh`IJV(+joQRMU7nT*SmA&PK`c7 zT5{z#8dY~7Wbg&ZO3$_J2&HLMltCz8qnk~jTfI{5nOXWtbJ2Vit@$xy1{xcA_@$xl|e(H95d6|4$BeQA( z(1#lR*%!C*a-T*XtY6CI7aHyFg4=lcokl-(!ELN>n;nPAjjFS=y3z6P1$w@g%Ah+D%l-VvXnquA8jXXlP-5c{kZxA&##~4%WJX z1(~u+4%cXEflpM)(=}RBnJK%=vo*T2(uZ#uOw%YI`;}@rQ=>lEuT;whjSip<*2pU~ zib4I=$fX*|9+|R-T%}P`4owYdvAm~zL?KRfukf7Xoa9;@6G5~$ z>>bv{pI7(0y{|0qV_Uj=EssL+eQt{&-qrPyPjl=m#RTha=)Tt}qyErW z{=#S>_lLgH;A>i{zf9Rr#xSD#^ND^kN$HS>`^x*vp^VgN??8EmM)ao4K-s7fo&64! zcQQI`bT5Cje2_e((X5)M%LmIuz6d^ST$24_`4HJfqggfE%1@C4G{Sju`A|8Ok=ip4 zlVh5o35*trXQd&A$x6OX4qNtRv`Dn6%={S@MA>-C6R*DBT44y4L-Sa1-RmQM!rp zGp&0Cx{31VDBUFaSCnp&OqvrZm$PMSMvKI^(&%!wEQr!gmR+>&ICPWcU`DER&yk~} zEYFc=YRg+hwme5pjj}vf&Wf@;S2k$N$%d!Px$+8I7vE)yyn)eSgT{&TCdc46Msp-5tg&pCx#i;2IOEtl1jDKW+C@MbVCnK#AN{Ydh6 z8^=lIPSL&xh5Dy>qvdNmQy;&+tIubOg`f_+)lOlRT=92s{qA&sM?H{^yV1`KwQ$$<3c;r9Pl029qwjdJkL&FtMW5O3&9?erqRBDws#nb2%9-~zGL`%q0X~Q-u z@6k4Ymo&AHjDcYfCrVVSi1zs$Ua4;CCz9H5E|edl(ULGfeI&_a#*&}rc~eZ_HXqTR zC_(G;lb;uOtKCfr9w?-A(whb0cpu``UGzx%|3zMnjsM-0|8Lid(Xkis z45(I*(eh~i#M)6>HJ7PcyXS=U{LkF3)Cx`U?XY^3q7~YVA!ufi;!+;9zT(loJ&(6< zjUxF5tn0$-!(X|DtJy@Y1}CxSXqq&JTFZVO=l5d80?$rb+qC_^)Mlpg`Z>A`|0g`X zX&hdGQ11@&DlDzN(OcQGT6L(AP0?pDhD+h&Q7f8PmQV4zz0DZ%sp$LML)BWPXM2)I zQx$tORV_r(X!$?!pYpmID9Wr7__vbjZLK(WzgVOgTEg5>kUi^!uG|WfqE2vsBe@=z_&G$@Rusi6!FF^ z(bt%bXN;gX>Jveo_$5Q)vq8P07?i#NM6?&vK}_qIj$=BJ=~Si{F zo+j{bQQ%}LUDAnCXGz*hrh7oAhy%HwL1+9&l9Lr4p?(t0i?lCC7dpwiBdpwiR(-M)dA;x^RoX?i? z*>XOgs9i4Ty^%Qh4;hKZ@eKT~11uLAb>=timl`)PzYTP?k#5ea*1)%3OT%5-y6pBC}~PIJ0>2Tpd=&CL}=XVql0Hdk&GllpeUd*pun>shag zt$mN+E#$u4X37sl;eaD(X*~*-fj4V!miNlc4yYrs2Db)#Iq!$Wnhwv)L*lL>uY;!e zcS263k#0`yO#UY@tsV0@_+9u$?h#JmG0y29h$Ub;42mVrI69o@(A=TsUh#6=GI^0n zF{W^PXv5_;$85|FnH@DhapYa*9JBw(_d#zPvJZ66kiX1y^Uqd3M}WPR8I+O$`=tEl zIJzV3Z)n3*o3%`-JkiF?Ytx0R6QXeO@2Rpp%cnS1%(5t(@&vXy8 zovJ@`Y~%LUOLi&v-Z7H%^%94A$vk&-obx4fM-|!csM_P$W40ags4)(0zMXRA5{VOMj!s}1UX z6WMa2+%@K9*G7Z-$VRS+S-avIXjjG|-UDfT*ZJ6iG_GplHy`IbT7 zpnl7sZ&SZz(D~m{IUP5S)T#?Xr*_V9P}oZMLYdQHkbAk@+UHF72b|h;l^11u4L~u%#Gwrj0Z+eiaD-d+H14y<*zy=#P7_que;Cx$9g=!_ zoID(VGy3d1@wa*6B=!1iS=D-@CtHpiu*p;D80OmSNs(mVhV47DeMh!DBs!M;-(EHBxro@<+!LaHl{oJ+7a+8`zFPVlRp-wfxaBq7IbGW(Vx5L;Eu+bo)*B#kO%l17y>Nux>~pWBv6N^O~>*vllvUdFS72fs@<-s{2G zImw%Z-=QPkC#HbMFIspL@cr0nko0BwK-hRNGfaVegSZIv0Wlx+5pgx>MzI3)X>kW^ zHnaV!Y`>N5hZ*-lJJQ$%I@XAbO+e4f1U=8_0y@nY0{X6T2IvRIRM6eVW1xEtXIui_ zqB;%qknu0jFO7YmM~qJK33wkT1bWPP9`qOE2hcx^@&s(zqsxeJv937Q=<0 zKKUVNitOV{5Uu2F&^B^CXqMa!+EHdCCg6UzJ7_>o0WFd@fR@Q8Kr7^a(C)HjQUdPL zYC-$Ti$Mp<=Rj-a@1VnEO)~N*7lMwJPlBGo`~>+E_{q|rg8a&%pwnasbcS3DI#X^3 zy+nQsI$wHQCWuB^33|Ca5A-Uz9P~Q*H0UyU6!Zq^PfZXv%WQ)KjIoSxhSw02&syqg|RaU1b zh_~e2^d#{%TfQqF2ET*(59D6(JDJ}tlUt*v zFWV`=?`$stg*|67`pdo)m}~C<4z%|GhuFUY4zt^B?R$|XV0TOhSM6hfQ9E&a ztNjqTPqxGsQkXW6@f=h`0yUTA*~c!_-v@Cy4kz^mrv4?R7V=v=wMxjy(<%~^?F~%;&ZpQ75I~aE}IVIb#K5W!}Bw zj|(dE9tI_q9MZ(-W{fd*F?KU$?jsta>feACPp`7 zjPW$aZpI$QUdG*wVgQ%Sn8oO19M4$J*u{AEfLq1jL$_$F`mY_o$)%x9gI5}cQfu`R0dHkS&YSu;~6U$D;eF49>y-l(-^li zUdOnDaVO($#yyORgUe?uW*pC0!C1-YX7n(g#<-L5i6PWGy+f%4F^n+A*v;6(*vlw} zQ*7SwozN9dc28kC5)hy-Hbhqy^LZcg*zF`8JiemjNObqjJ=Fv6s0d8 zb&hy#{zs#36^jlL2T(}O0p#vxcMoGPqd1Ua6-FmxIb#!JjIoQco3V$nmr;!7yo^r9 zV#adD3dSZzH)D*ki?N$=J7W*y4#r-_-Hc)kmG5LMXKZ4OF?KWdF!nNvv7DZ}Kp?>}3?wIXz=JV-sVHv751nv6oTI;Pi~;j7^L&#%{(Q z#$HB&cYJ{!#&X6c#u(%2CB&<4cK0y$GK!g;i?N)si8035&Dg`(%P3r&p0S*# zvp6qfIb#!JjIo=shq0IO{aI9+n9aEu%Nd&(V~pL5J&aGxru0>ngt28LQQeGUIZGg; zSjBF}a>gdc7-KhM4`VN*fGHn(kg=Sxi8035&Dg`(%P3ZJdd70bCdL?JH)9WDFQZt) z=^2|CV~pL5J&e7KVlAg+EN6@{b~E-eih54NSk4$@>}Kp?>}3=UoRYDev57Ip*v;6( z*vnXc1f_3cj4^ggJnA~)^Ks{hl?!^0BlqRvCHf+TGErHhT&FyWw^qNaeyJXtHOsct zcC@Y0c82YF+uv+o*|P0L_EGi)_LJ?;+uybi%pQ}yG<#+C+U%pUkIVLEAD`WxeMa`V z*%xJBntfIFwb|EaznJ}Pwlil!PG!zfIalS}n)7hZ=Q$&Cow*gcYjeNN&C09IJ3en1 z&ie)4<%=6axNJZ>{=>H>a9cPSSb+8UFq~qH0v>=f_ZfI+Tp3)muvVXq8-O`D{hy1I z|3h)=zXWIg>uL3l_nYr~y(@^fbVczkpL6hTtEu9A_Xa@aBq@;?H>Z{F|Z z7vh}BLve-hR6XH4&XK^@Iplt_Yz**;iR0oSGWJdmk?FrYfKpyPmM}JFB5+XgOyI?p zvw^Z4nNpTxF5fX~A=20nq`Vb#D}cY}a-Nt-A-`Hz1I%8x3iw@d1Ms>7j|Q$gf?_Wp zO_)7~a2?|hOmh~yCv%!dIZfTdMx=ReR4Z`L)FANQiU@GZw5`B>>!^gYxfQR@B=_+H z3D0NjVmz>zLIO)p0oKnv9VltL#{M(7Z|5`>Qz?y?Q$90?YLxY!v*H4{w^d&Xyl3`R zz=xM^2j0hY$`;9#=PtPk;gg+4IYr~|LC8}xDC9E6HH@>TQ^=V|5{eSS9uB!Vm)wo3 z3Fp)jwyh$3nDP4@a&OEh{DM=SpGWR>b%Zx_u36ROK7TFYWea}`l(hNE9*6t6QBMPB zjD4QnFUQ@I1CsI=$5URJONQq%oj-L_TV#0OeCrR#WL^Ka_#-(Zxs*;yrF=^1k`gOr zHJy}736%0FB~wbNmA5iPa`MSVBx%?4_?=nudb~#@e}1`)`r=N;ml$_2p0)B_gui|e z#SY}&e`gZ8W%%Jd9=|L803pru{sug0+^4|&asLB+XEI^Mc)|+~BAk67;Z(5I@0B2Mb0}Cpr0VP$W zC32y+ahnazO;)f9>`he65O&}o%o=#ZEl}mzgTDQc2X`T65fx`VgMdR316y9qEGp)c zBH#%4V0nOF74ys}-~pIjU|);*MaA5LZ@6G~ISB4z{HI`+DTaFjW*S(&;#U=u@Sh?k z1645v|0#H*<`lSR;1mh=H278VRh5}Q7jA@A{LMm|GN6jNXAazzKoxTkzU?Bafhy*r z1#m9|s+f=PT^Gzqhr)e0-r7iSM8tO~FfSbjcP&sAtH2KhGZb-UHOf=O8lWoHqC5pN zRyEuWC{Mx6wG8efP#)e>4ODTjz5?!}fhyi2SPMKBC8?NA*C2cYP{nO`J+KkE72Kb% zgWHYVif9I^!h_tnbpxuHV~+)PAfJjaU^N1_AgwC4B9$tBiaA*ozry3y%sFts0aURfI1lc(fGXZ)bOGG&09ElW-n6E`65%4acZ;9H{T@&id&H%1 zzYkQ!2jX(L{{n=( z6<RK>U8u>z}z+u{Bm zJXXZNfUtQ5kFhRO?uJ`Y?uAP1q4+xnG#Fw^}=i#0X#As6f z1T0Zr1m3N@jPQGaDsEC=h5J6BDt@c{8SeXms(3(o9qtE#s(46w6Zo+5HbNc&s^U?+ zMM@Em0afw1vK#ImpelAKd*J>ZP!&6s58!?RsEQ|*58-|a2s>=$Bek^}c& zfRHyO5AMGLA#ch6xc>%(yeWg={sahlQwGERcOc{q))$aBAmmLc0)D388%lV}eHh&T zql|$2D7O3I|Zw%bu166$I6kl8tKLAzS=@rAR0HMp(@o;AW zA!F(Uxa~mt_TwbDbAT%D{ieX32UPLo^)$E#03mzo47djYRpC%)!aW!W2~MpI9-Bvk0i-HnI`!3ZN?1sczsAss|xQ0->>0AMj|k1$d0=2Og_#0@ObrX;3oAP zU_d<&*rr|p45}9aL+a0g?dqkV?F67I!s_L4M}U|M)GOic0AemsuY!9E5OaZg4cwhT zRh+0^3-?Jt6*r~Z;XVbZil5-!If^(HsN(MQ2DrO`s@SI91ovq`6}PFk!2MI8D$Y=E zh5JmPiu={u;XWIvigWP399RwkRdJqrH{9m~@q~kVFWeUbaTlcC2lvH56*sZ>!+j}G z6_=|I!j1P-!hNOsFxyv=eG^a>x8hwlintA^;x6|Oz&q6Efp_9jJ`pQvZ5cd8$&gR{nF&CROLYRK|tU6M82Hr6)7w#c^H_Pwpnew6((`>XcP z?LXMZXK&8FBm2JWhqGVHemDEQY$Yd{Q<6J3cR}vqxv|`{b1%+)Hur_xKj)U`9h+y1 zVfw%pi~iB?!+E9UWP@n@>&`2It!HA`EqPuih3PrTeM{aR*pg!nO`!d|CvPw;N|Wcz1zoYPXH2#jkiNUe>TQ8hgp*X=uC)OxVtZC$lK{M8I9<1KH z`19d!Bi3*&_-ns@Ew4JQKlz;Ip)2vU{Dkyh+*7Au|{sj2xcaruyMf;t`zcx{9lljMMzZ10I zN!srQ{8nQn^@=FQn&D6CtKw%_uZyR%-o)?Q;@hlu@%JYFzQ(Qj9A&fpQ03dK!;}Z@ z75IG>;kEc(qm*aQ!QUFhuTf%f$Fjc`PiJ=`Zd}%ZIR|Hbn>7)Clkqndf3J$oITgz0 zoNE#PCuLynKb0Ht_fGED;%~VVRBzri_2Rrdtm^aeH$dEnzX!2n7>oVDSnL+?mVW#V zL0kcT3tDQGX~HS=_A0EcP@uR{10C z0e5F*z#WNj^5nqMQYyp}nkulYEM+JMf}C0805x^tiuQJ2(7QSuYWIbsokS4FC0CL% zaCWLX=A;TNotr8&Wnk&NR7p9o`h*U5Kr*d#KBq!c*wGML6$-bx1O5|z-jyMbo48AD zk*Sh+n=)_#mABj-G51f6m&!o+vc!H{(ix9Q%CXAb=1Z5y6xR^$TIekf%>f^rHAJ~Ptoy2i9c@0t2XTsOQI(bV#ar^Zc z@}r~*56P4)G7#{^eQSMgZ(T6ZSs5~gRzy039?Dqji?)WmOFH}kuP=1J;DqbP|;*1{ygkPKu7Z(A{D;i~tAH~T%l%77om5lt)6P52FHqEEacr2{sX zC9@d;5ND=vvA2=piR)#Od1ZP#%ft#_=MnBehi|ppA8slWHC29Yvpd`gAK2yT2!~O7 zLhw;@TnkL{Sr#Vp6N1@RQd5URiOoc3W20#CMH_2*6AMM{?Wg1)fdBS_#XBJzXd+>1i*PHx{3 zZ8dFZZ$-fGj#Py_Tx)U|QC#EYDEuVQq)AqF(AysJ2cv6!kx)n2<3qB_R)5f4>kguD z@A61n`h@H1mqAU1NxAs?lYW^Gnmfo;^d~tdtcXHoN{L8M2vf{r+!2VTPZsaL%t=XP zxcM7)e%IYJUaxZa5 zJ*{c7riqbBmRgcf01<6_amJ)sz|~1U7(rHew52} z)?o?ElZ-o16O8y%HuUXE3|*+*x^N3HX_<+Th-n`IFUjw^h%XH1 zGG7!}&q%=yzMwluLF8E;YV&F9F`3l7Y@~Iq0HML9p>TaG)*xP*Yy=jgq9%xCAeI-K zd|uIr0~TCaJHWfvcR~kL zlcWn9kd6L;4{P^LR3~kPLJ=*l9#c5hUMb_`3N_rBGSXD&kzs!nnlN>#)<|=)iLtyi zTo;VEH~Q*=v{VcDq8gnwkwm{%{i;yZSo_GW2#zmXtWi9Wb^XhdZ&`_0GbJq$tO>B+u@KR}i7-XJeoi#joO-jY3dEW= zjiR?EOrx{YB&_K0V$JRGS)(h~)@t%z@80agDmFzL+TvmTWX)VFSE<&BhR`Nokh|L& zM_Urp^saNqn$Rd@DaM#JUK7;Rk!V++@pS<@J)psxI={YzlxsU|C0Qq=POBAUrSJ$} zm{dU8c-~uEB-FIgIKmzFlhR6^u>OPqO-{b>@=zoiq&>W)ta?wVJw-67Kx<;^3b~!P zlv9UB_}cuD6uIiLpiL3XyD)1VEa28)7H4a4C28d#ZNRK?t3zSzQ&NO?Gza{=<%~l0 zM5xQwg;S*CDpSVDKBvu_tRrQjBmqg8Mq4@<<)uuu%#A&GxHDy3f?njlq4vmKq_yeQ zTiY=;Me2gqsEUqgD{)dgWU_Q{HBXN5>WnR%wJ4r9u`9+|m8BT-yljodsU7zIk%o{p zN>2B+?sjWb;!ve2r6WbE8Wxl&Ci2i`KaMS|_ZyfW0{56VH6B3{#?5o=WS z)~GM&_30;)XrwhwqBcm8puS_{M*r4SS@msJ6%Jo5JYP)$?=fkO6lqXEicraPYl#)! zbTLplhBR9-s&>F3uw^`bUI!QA%yCXidUoy#>y&>!d_dJ@u?jvEs0w7a5 zeRfK{B+(m_jwWs5%#gX6IX^>~is~!6I!ur}TQwB(am3f*9vPLATjiqkhkz13= zBfYfI@x8n?r!mR*kw}|B`$%C-_kATwTzOF2LRes1`Oy&ew}Fp>PP=*k!N+MU$QNx5 zhqlyg#2R=hj*GowBV*7P#ko$<>ki|@$v7TgjVqBYA%wN-4(@8+wp9i~9oi|D$tib= zGGMI__bMJA_9t{STo*pF6`O(jb_$|B5$0XbCP+QJQs}+fbi=XO3W6ZS(T+-YW2vr% zQUN>x>MKJ&R!a<7=8JOg#FJ{qksuFd23i=ECIC2w*<@nE^t7RJQ|9mLZvmdjcT3Glc1 zXb~ze6{vLb(XqM~Li{uuNP?2Y84jXU#?X(aN(!P>nhJ?0G5aY#ago7wB?YZTquO}4 zAgX+{ede-wn;oYmX^COlHE@Z2L|2B|ak++8nuz5*8lm#MTlY|+#N`C1O$uVsSzS*( zZmj3@BAD=Wkx&{Y=7++1re(gU?nGOBQEd?DVeN89C25s6BGk33>!o|OJKBmf8ZDxY zZ%hOhzo9KY@2ZZrW?#5I+NrUCc0AlBc6dlxvWr@tLJ&C)Rjq{*4z&>@jns4%5)VO| zxEmd;H6R|eQO}8Vl1?s%CuMd;=(>|#?PyKBlBLkl>`6NEl6g#rUK|iFd})Yo*kmHs zr8_!seG;1UQ^v_vi65P;uaIwR)TY?|cn-R%m(FRzO!Y&L++?evVSl~<#ag>Ub z4<}*=-3QXt&mM~Ay=>ga>sa<-IfPvhJE6>!S8#c897LtIb^IMIfRBJ2nSOA?o7B^Aw)C>8`n6eU3c)D#w8C}4ee&n-55 z7{+|_A(NrkHyLr%c++}DU-f9W{vy3WfZ%b$HC1Ak#5E(cS9gcC17qD!^^l0;v?CbR z0}b)u#>>L6T3CXO0QjU|T(dV-0W~c_u%MDsb35eCuU2|eWL?;cd%{3+sDA3f#K+G- zgmxlJ?O*K2RleqqmKLbBP>@$5DI#eZU}Q+5)QG5vM0{<{ zfzAeh)STX;28q8;3-3)vgih3QzZVAuMmTTW>5$F{(rcwbsm-X?$eQ3r zGTot}<_@GyCACe5yq~cag7u|tRAodS9tq)u9t-s_G<+y*M9{*~AK)t2`U38)?1~ui zI^CF!X>zbe&>AC57eq!B#Mcc=hOoQS2-C}<`rJWNgr=G~JnC=u2e5ZCvJu^=nhmmy z&<56>ETGaw>PEUq_*olEZ%zE#idP>pP-_cudpRyxd|??(@{XC-@M!b648ZKjR7l@u zGP4l1kZ5fH;#Nqv>44Mg+gi8LqG(rRO@hlLUm&2XT1l#4qZrLC2czcU>mto9_u^!L zM3as1$REx2qoEap7uu$UMnB0|bb_PVHr+mRswC5>4c&m~}yjk-MD@ zIi!IF2CX}QKpZB7DMh^xW-q#jYY7E|(ilif(Gb!cAsiE88OGT_pB^3VgeQKqpp}Yc zjpk|%ZK=W`ZK#Din$LJy6G<1<$XiPelP(e>=nz>xZ5;)cLbO2S5{NBvkK|%J2!tR6 z$8F3!PKCl~fgs(64vm+9c`+0~ZSjB_Odc)n0Q*rMZ;%6VZ-cL`U5}D0H1=W5qlX^p zkG4WITQGQtt_X(*eOvgqhUC(Z%RtS5fdkw1rmge^ThL1IGD4*Y=;d%!I-xD~69dxz zqPD(<*Ba}>ev%cP{S^@kFxm3Zl_VBW6dE?19q@*lk4H_o1Et$Zx@;8HTm3MP(LEH! z3O^oa_#)V^Lc4KHV}SBfKazPEJB*`w?p2c)q}JmoAbxaDOFo~+4?9PJ;})E+!l4~i zz*s8i@wX#@%9f|?T%6{t(bO}h3#`U{$S3WmNP2jUD?`C~>1g9bRF-M_q(-2(J)L}5 zveLI1<&YN2ki=RF=a=Um=}NIANm|5|m=sH5{fUb=Z$M*7%F7JNqSR4*xWq@omOBt_ z51BfjJb6l!5nY-l#%wH*CJ8Z;2R&{$nDV%XX^nFz9?Z)mgzhQJi#ApmQ!oFs0T; zlhGVKeaZ-|T9+BxM6c1fg_3;~zmyUk8copEK6jhkt4Jp)64HNc*hg_hObrYixd?Vp z2=`|dwjU|Zw>f2>38)fHOW}IPv#CDdZ^OzPfL5dyIZ~|17T_cXSK^&-#G^$>MGGTs z>4KXZI)&mOb{LBV(?(l202Oqjg_FKEKI&pq5n3Q%LSa_K@8h_YhEL!AfHbir6oR2i zP}Jaj$+v|T#(eUE&927-4JE4tOg1*HuwifM{rRj@M-$u=rTqN608~buO0@7V8%Mp<_R!-Gq z#Sio0q%v29*sKe8E?5U@%UG@qV#>BiXtrE4ngZ%!%;jmV<0F4j0bAsRzNw_E64-`e z7c6fDtVx!_fZLp)uK9SZptX|#Q%2H<`ZN=uz8*zTw;xn@8adZJ> zghC!LK(ujX1Y25VL}`Z+b-Jmb5o5_D+esQS)B*d4_KtQVu^;RX8(wG`!=saG3Q56b ztUaOSj5MU!%x8}*76}2`05u(AxEBwpLyrA%TP@M4v3OB8!@ z7|WK>J{QB5c1W}g#hDcakZ!_4AM0rnJ_?2&mx@6*dXPFH?vo=nZW1Bf@fczXB$DSA z6r!J4VGk@PUtR;#mRN)%Zs>M)#wCn>5N}z#Tw=hkLSH(s@MEK;%zK};&axy3OVY#4rYG}wny|dYdsL>RC zJb)Jm^}01zV({9wf$chF3l~Ql8=K`r zF`~X5TN-yjZV!?GdYZ#lpILUZ{V~*E?2^0i#r^Yi$WZw2``k;iEhLuG!gQ|Si_6D0P;T@9gictkKP;s@YI!c3k5%p(_GBA9oQ7)RQ; z)pVc*HbW za?>d>3el$s@{-P77o{Uy^2N8!B|O%6Ry0k2ee&FBi`4rTOE{v_Y9FUvWhCX^I)82r zog%mBCu>AE(JDJf+h`yGMh(KCU-&AK?~NmPgff1K9Kl)|cggWS=Oa*@SC>?VJKLjF zetTYb^X<46c z_QwJj_n_Sk?v{wWp9zqQRHD=z5nA73{V#QyRtgjbBqo9pNIekoV<$;Ugu~=~%PJJ> zw1_;*(6p}+>ZT|gDj?C2lJ87l-AIe$_=wUM;wAE8D}t4od~BVbUy^eI^c*jWxz@@K+^K8kQ7DD! z*A{J3SQEFj2|H*MUSF}A?)qT2gv>NsYfjiebYgbF+#n|fc}65qH61^Z`jz6y4b`0p zmFraRl1@Dg%El5Fh0Rnjs_7e(0E6$igr*o`Fs&{sTCn1jUQ;?5z=wPZ2F}7w%g2O- z#-c|%flG+RKAj)nN(j_MKwAJp*VA|*Dx?zD?^`tP$}uLHgjv^p38 zar$K2sfF^L5T>i-@QT0|cc-iZ+9j@LG@hBBO9O2MvPd>~pPcN|00P7P%>TwK03FS%&GK$+9oe}6^_#hdycENMGQBm23O#l~5 z5BA4zb1>P45v=bQHLpHd*KOPwp}hKPnpe*lCyn&Xyx-%eN>=jnw=P_T`y!N2Lz1tq zxaHb$B-SwD2;K#vd+C~q&naoap*ta|7)>xip+L>m5L!vsyK#dPAz5blNhqaQv)0#~ z6slXs%f+E)CQqA)HdqkoUerl;OIkM6Yx2pBix!21GOOV?GHI?T4;(_aUU1v&^%-vrk>s1NWa1i^HUhi}#Ibfb`4u5F zgk(o)X*}`N2!>MCd7y0-^|51`mav}IUp&E_fEV2w<^8(u_Gn>i-FV811LKdN@(NAV z1?6uG#Bd2tdoe0k)5{LH#0I)JNC=_DWJEH^RCTxwzr z&5`lah?9K59uJ9FLYN4BK9)isjwk1ari+w>rHeI_m@W<19baO(Esu9giS8?bxt6}t zL6GB(;t?d@qak3M04BwwWRJ+3!FZt70ZF0enzgINcn&UxE*4CWfyN`5r|BYPUFl-Y zb*4+>)8)~$%WG)GzOfw#x=~*47(TGV6c;rjNOJf=1|EFc@>|Xca+yE{X(x|*EDB2s zkxEaGhhEd2$gDe&OLw}pqUGs1_8Bl7;r*%5OvZ3jgh^L_5d)npMA?iGRu?DwG$Rq* zLeV~w-jl<>)DkjKsS5cbxSQa`ikw*4WNH=m54u8YAh))~Ww*Y=jYr50E_)@1c>f`i z&S14;K266l2esK+4~l@Oq##z0s2|$aw}q(3^Qd@Oj&rAaKun*5NPQ(dIVRr-lQN6c zTPdD4)0J1MD6`O|ES05QTN&dGH1Q|Sl(eRgji!q-Hzi#fCJTLi1U+eEFpgTuL|LOqa?(UeO08MUgji##F6btnY2~&+ z4*AS)PSQ1+mMcyfNo4x>EhXhLIyq@})Jo;H;sgpqoo|p+r=mt^x+kf8qAGO^^FDPH zSDHFXGC6genbE0J#5-2!5hdg2Y~+3<1@TNv|B}lVrFp50nV;$25Tm6@Xh+}0ag`Nm z-uq&%GD8~4)(nZvbY)1o%$U?QDv0%@e)%3nx0gu4?@Vd9#hDUur)5fHZce7OK5bUl z8iQQ}nKaWRtnXGUA~Go9?wk+DJ4FMAJ&$Vo4U&s2cBr zhLHmPRv=9fZ-&JteB1Hq2QglGK9QO3?o#y(9~`@Io&}O;WTGbOyNoO^~U>(ECKo zCP+gSzUDKFzYR1G-~Pd??Q4=tZ)4s_?LecJWK7DZlvLsXjnok8h#)42G*Ob=L;F`! zN~xcfoVOk2hfyw##xx_PIynz%surd$6?bUNNS-8&w_=i=zFKCCV}t)h6^*no#zY$G zrj>w4G_Gh2;WfiZUBc318NOQJB&eG)pzbD{i2B|jUKavDlbklX$PqR z6DgJbCT1pcF+=(}M*r#U3!ny?lW0s4XFAbpqR5aAF(ZAh2vX}kpwTohnWp5LQndse zIV?FJaUSP&%*RaqjQqn4DrsbupcNr}DzOsShW|){#6cCNQQOMW=Ei)W&ywQ5I9l=H zvijr}ntMIfXr;E(cy)sdI*lY*ezeYmaJ0JL8X#jyrODLwHHx`zOOKhya6f3DX7p;N z)M8Gm5t%WUg~Apdb#iQG$_?(0?|YO|ABZvO#vI4aNakvvsV(#-j)9DQXc+@c!+1mL z*I`Am3}ZpAVvKc&@F&x0md#{6W{k8FXr~C|upPg&exY?oE9*;IJ(29TaJ-y#eE7DT zSl3rgsYU_SK(prN6r&(Mf34_Wsr@QzKSqLVJ+?GxEv**yS;jmPtaE+hY^Iel!x#;j zsTA{4jfZ~Zn`xx!TekHX#w@Q!UaLOR(pw~WKl5AqF>wUwb4_MSQq2gIOB5TUfmZ8b zZSFPA0&U5?nK%}#{b?Q#w6@)^@z8G#uD9LFds(Nj@Xk!PF|ztYzg40WXM-PC#{P^7 ztxcvCUg~y>lxwv#Y2&*(eViuF2g!4+MuTbn)AyL6^kSx2;xqHfy6)M}{FXK)j+iuU znpX#HMbb}eELtha)n5&M>BON0T09C@HT-xRAL2=aV;{aKd2HzG5!tt?R*_WtOla>? z?2mt3t!qIk?UQJ~MSK1l&?GGD%>Gd#mKo!}LThy=w;5(^%n|)$!P@$IP#{4Q}3-r_5Rk9vbC1|6770uzeGJpE9!pHvclYUnz4wl^5jUCl*obP-cM+MF-eYI zLaH^rsQ>qBOUVbz+?_m2Ye%;M!0Ut0oa;=DL)|0zh2 zvMK$psiGF6A@NLQS$wts<63E+9juz%bnZ94ue#TP3Y^i}^#x9;#V>p8PllKVu~ zzLr(${+A?5lQm7IU6iOxmfpTKSH|*YWtRTr_FGpoKcWmv|7Dg;-hEB#XSy}Xe6mWM zSzx9~5s^znLqRNn zA1SrZ9fYBs`$6A=)Uw)-oR;1-%c@oG^mBv0Pfye3v#!0;toQeG)s&``e)88!tyvFI zPm47C?MKf2<}cL;9bnlVWa<~Db40Q(((ZJ!N`%NlsiW5M3M!0y5=u{J*tGxm3S~?K zerd%)y9K(bp%o&X-q2~g$XgBaz{67q|qouB^- z6z>&>!`*D@uLPRbrLRM88QvwV$u;fOXgBPG9_X{Bhmp=9{pLna(tCIT0+4p&l%F(R zpZP~ntko7k43_#vT2tVxWsFXv+tO{Vq zht#^RhK`w(PFInxAgv&EA=N|_AxGA9`iS}jl0mbkkhk(l8Y*k55Ce?<5K|0y22C=` zNSUbFMQnR5la+XpZX_?k6eO?zXhOo*^sq_QL*&7UZUjS&Aa(0O({#040zo6yEf4*S zsfbFEgvcW_N>7tSiDt5598`ftb5c(h$)+v^6y$ZQ_>OC|uwhkp!BZj6Xm}|n<0x{B6bS<|mZg4b(=%)NM zOv3o3j+euM+y;+Cu}*Upau9c9i>q-3B!`KZnb?^tkq>02}xlEs-nUE=2IHu0Rvb&KC;$%)TyP_%G2@Rr~JsH~`CznVQ zn-_odYc^pc4Mav}G{yq>m9=3@@O)rJ<-CoPYp=g8d-7{T?`RQOPNCSGijr#w6bvJ$ zBWGBlTPf_Coja^Bb{-rJ+BnQ&Qwku-={l1D{Eom%9tRENWnhlpW?6-trFri6tXM&x8^G$j5E5Ncu9Me_fFLzJws zV#ruQ|K;VQ046#wC#x{_X<=L83E4R+{SZZ63c_qoQN;B9lzc=V>d&D@sGwhf+JdfY zklK$r8b*WIA|$ZoqfvP|D7~vmHj{tVY)4jhVS}2j=4NyGC<>&H9x0Q0wWRdxK-TTb zu!1hTRxXkii9CefzybN(_}G<1jSz)hw}6#h3&0l1uG?)Oaci!~LP$Z^-RQ4eN^k?b zi*oXbT1R0lX8wOzLF@z28~X@Nn-0%jv*(`_NU1jv1*isYn^05-09A@Chhy|;YSK>? z2kLS_AXEqU(&#}5{W@M2$mWWQggPjp#yqFsN{a-A8qJTp zm{=r=6jZGi=BNc-Tao1Zc%@XL;mgAUiu^?)$E7F=M8Td90ozIy5UH|zA&No;wprs!Zch zM+{L=dj$kTM?{VlDoHTYlbGId@Q^Hw1@zQdWo$enXBms~r9&N%pQUAXIP!-mdJUs7 zMD$wBHA2|NimZIaF$8IuNSzvt3dfkN9IY_41mfjDr>G=*_F)A_D=H7LbIl{`Tn@U> z9CRTKtk@-mIXQ)~vm9z+6WDncXV0e27@}sQW{eGV7$UMUW}6%=f}_z{5Jbp3urRg* z$w86bj`Iq;W1z???0OZXyk5}tHe?k^RLCuq38hl)IqDckE+s{8i!7j{AogswPzqwt zJ9wlQV@wssUd(0Bxg?R$1zj`Pdm$1Qc6}rhUcx~$@*s`{T~i9WCJYufqw0dLe-6vZ z9s_A1iH_|0@U5&B!_uGU{Fw|XDQ1-*#R()yK>ao5CiJ4Oys zWhA;u_Mq1F+4)qu14>XCqZgk8h1bOs`sqrX-4>Y)LOCyqWPf#=97Q!}tK>BaA(aPv}MNlKFRW=rgEa&CAMB z^4L2EE+#22PiqF$6Ug0;-X`+cgRZw_7j%`f`e&sHZ8=t9b%JRDoL9gMKRN(&446G8 ztDx&kh?K)I2K}r8iC51-5=o6S)7bGG2DvRC$xz%F2PjclHFrX)9EDw9JI0L8qe7St zP+QPd;Se?&Ba09_1YQoT87!b*C__P4H9~7-$7HD(dRZ80%9t!J_IpU4qhOmI<1ClQ znG?Aj19Eaeup<{vN0vYXNaEOsnZ}Wun~UC#?I`Rzn&yeZ*pqgrfS(E^#Gt_xi|OQh zl!_^pe~Fe(usJUmYCS7A2Sc%N4JPR!ihvM-s?m}+qtRkYlIs|h1F>%?LYZISf1nDirzwP4txXYYL{RfaA%* z8S-7KN;-YWSY=Q?)Ta!EdPlPgwvD33Z5xxTsd|zI6oelxn0`>p04*Pwx;39x2yy}< z))#Kbfqo`^mXnh;8k{@}O;<(_VSPfAzf!Pmg5>Or%*WzVn$#vac_m_Kaykl>yTO2HeEhfYzczPvU1;CG&A(es}?DZ9K-**>& zsGiz#=GZNVT=34>^Pd^>iu#c6LFbsJqZeQH#Kpd`XI;JHu%W{~zVEQx3QF%7@bauD z|K3#GGUM`*e=EKDjzy(E=&kp|n=<{EBW6t|47o1yNne*2@hn_xh=%PEG z{qnNYLYF`D)w0zeT)y7>-pFgK-}z$G)M&J%u zEi&^h(@e474L0^R`gNnc7&)YW)VbrQw8m|JziG&1u6ua@Xy^}L`dL)wi>8?(F6FvR z$s?$~pO{#Z+?3=@ndPM_QxW~)!~9Hzq?3pB){OtT=XCyyh0hhO$&{OQz<<(mJJ5GU z{gJKyn~9etS4M|)eLqv=+Mg`+0KrCBYGsVI3 zZbiQ|G^;M-F}QJkCn77W5<`&sPAqRMrW^Bm-^q!cW6cKHMn-+Wj!qZNbeSU!8m;V* zbd{KsTcyQZIZ-y*%rC>x$DB--J27)YqIQ1jWSQwslQDA(N|HyLnE}>zOz&@UYK=vn z&1Gk9Q=i#0x6HB^+0ZJ(=BLpCzEyPpMR=76Ok`U+g?Gr3VoeBhMs zcr5BKb2c**i5EYjX5!1jWX@-vJGqMcDj<2Wm<2PC1=Ro0t+eDxrk`Ctfgqpy1&nxtV$kGeHW6cwX659 zxXirR&qk)^l#?z>$(Vq~N-E*EY%?-tm`okepC?VqGAA^TMN*AbnX_c(n`LgxT&PqY z7TumXV{!v5$4Z%t$lRczMlHs>11y2WKT9ALZqbS6m9urC)Q^%Z!^4`?Tu`Rr(dPo( zTD075>~|(&x26BhWTvW#HmdZ39Lor{CN>w9sl_w*pYzmRKO!5o8V3dy@tLiEM$3zh z3{{vC$e^MUtmv=3@)9Hak2QIANCOgSxfc<`E7^L3^f1|Qtphj6j?2{-bwn{GCL=rD z!g#1bStSDHoHy1Ss87j8^f)6r-D?P(Mv~OeW=~!YLg+zzDweG7h%oCzrD$k1qO3NS zXn!h;xm=wQPO{Pob4FqrF^@Lq9$-57&hznoLEK4QT4*m0+AS=N*!4tG${SN;aOUP45$%LSkorV0tZTO@4H_#OSO3 zBwuL^isU}r|GIJEr7zBt3$xmPmo%_Y>8CSh8Bb->4Hoy$u6(L)>6+QBJm27zBk>Uj zXq&#eWn3a}%(UwlV`Gy$$DAlEruWZQQ$7wc(VSPWU^Nd?()t1IsflKT{kqE4A3UgF z{bAk@|2U)fhV)hFY~O#I_u0wR_D66R>odoXvy(3&b<+QbEDpC$1H^YS#O>>i2FWr& zx_0i5D{8S>2Kx83wfSjf74b`r{x?L5IIw^3H>ld*%&BNO+)RtHOQLR-=Ddl6 zG+C(3+*$kY6_tuQ6Q}m~Iejx_s|?Eax0qB^jjIK3(mls6l}&kHNs^hEs*br7s2h^g zQiV(nk`v06Bdwum^-E^;L-pl}dDY@f6kF?aC5|d&Hy%_Ot!trFPqjGY;zfT1W@5UP z6KPgj0D4e#L`>9IL9`}Hd~~iJ3CUiW66Q8Qq0nqg;pyk@-f6m6xQj#PLNaX@0z&5=XRG&E=y+*8egOHe;8D!phDy+=zfze3tf zQb+_)$I&E6?d}w?(9F)w$}Sj)KPL={N2=MQvthzSW^MR^c{BoDh+J*UhOII@zC46W z%Ve@pV^e1Yuc!DI;AkSpD>=dwz;5&kS1ii8lGHs=lvE5u989`C(xqz;f zrwbP~7-%26;|+|7sCUF>x>w=(Q;DMb~k&`h;Z1zTZJ@X2hh7q@~%88E}7 zh+=}P^FfWYm!z1k7c^_UER{=RD=G?qg)O&6!rGTC`bLupGFVnPv~V=rfx$U47gkzB z9it1JWa&Ay@L)D5FK}|kAvRc!v9rLL=d>X;(!s)66pntX|MT$qG6sM<@ADVgD%uVW@`A>w?kWr|JO6lJ3#mY~G#=9>LCb ztQZIf?CmK1STV?@fPT%R+Fh`kW;1gb`%5y;mMw@~148nc&4sbI9AsWSR>0`d2}8MC zAU?OpU3YU+0@+m5SeWmNF@>@F{UM!X^9r^>_VTGI97a6|3t{kzt58P|M7>A|@rTGu54kWB22-!= zG4Mkg68uyQxW7v>V;6hAlb-L`vrl^Vv8PvhdJhmb-43643(I+l7!9zMgxj#1hXH1l z>?Ucqp9`B~7~^+M&liw188(Cro6Y5rD5}!Zkwz>m@{tD}rQ4KiGKeH(%Zt%$ClNZA zXzW_aG@hJ+}<;Wp(Z8&nJe~e=YvyAPk5sVg)wIy7z zwsgoeD2byb4HTidkcw?uAu$M{E|)HtsIHW$sPhp<&ylc852bo24@i0o|8rBwK}|t9 z4m4#BjDMw@3-6jk;iwM8_p-e@{ZarYq6aoOKo$z&>qVic4)w~Qeeg(L?329MhsQ6d zYxm&?bRd*DvrlpcM&<(rhB{k08->87m;0S8_dAkvn2pop0c81%=LUphhyv?p>3573 zgJE;7#lknnF$mF+Q?`?)M`6&WE`c^74>{0q7_*bNdF@VZj2vpcG|1CJssRhU7ei4B?p;{J>}9P4$vwNvruQd(#_a$m^#p5%~`HiR@$a90OoXI3trJfXxc#&R3# zrU3K~1)x7<6RAIR*S@%GSFR#*$+Q_m3s%+*>hL4+$?a94p!|B7KNQ3lr9)dH3eu6? zvk-F?F{)%$bpyU@7WBHq-s#%Mz87sSD}i2aa132aAFbUI3U9*43)=&3{%VRiKoP^@ z-#l|xhQjS3e2E_A3o%d;IcxF#2zSJXr@<95j=t{@_P4Y~oxi)qnI=>0T1CXJG$Q$1 zHBRGe#?HiVf;i1zBz6Y;&0&1Rq{LYl40Jm2307xE#OK`NkG49atv;uvtT4XX>~Hgx zIPonQC%!+2@7VafoDZMF^@ZI5r`Ly1tc2R>Lz`3VZm z`*yoQYG0pi7otNE?a6uRYoz`C?mIWe^sUWl3yn|knt~%s!=W~OOLDQdv2nH#v6v!G z`gf}B<5McrQpHVMxXc%=h;#-$L_wJl<%*c4eLX|}@M5H-AruNkO7N|WP_QM?+0fZ; ze1w@kC+ziwb7q&g=s&!5g$3F%Q2#^*eY|HBzS4>>a57KmYgER^KcRm~{@1mw@@b?aV75cXszxfDz8}4`DuESra4X-(ZzX-pVBkq@Q&%|#T@-@JH zIKtnBdpOcY@cSI%ZpQD>Y$0Z+KAV@%N*kXUp(8#05CMt`|Awc2UBWU%9Zado@{5iO z(w+W$k#KZk!o-&*yoUsbBqpfCp1Z&AO@Pi8lc^b0L=>C$zFwU$4vC%m?MAw{Cmf4J zCGv!Z-eg49`E)+e*9#P)$l~fd3mpL^zC+>b^qGvu-Sx8&{Z$Poqd&`1*JNa})+Hbk zQxmiG^_cuQNWQRtXY^DTNkHQJ6uv|OE{f7m!srks6BmC#rm{?#tZh3FVxKmf!IWf9 zj>58VcDmY(Y}Wd2M8>2mkX2v--AtHYuTYIqS3-xd{eQ#4dC21GJByW^!ko03j8-H! z{!(NrOI?$Z$y(PaETeG4WNuSmVss;tkIVeRg&}!3oT*+Fa(eL5SpP;pzABG}iaUbE zM@P_$wFoa*%#jiL7NfqF(Lb2$Jjr#6a$rp$;A_ER#nb8z<4bJ5aD)nI$7f|rl#}VR z>H)tup(6Ql`Vu*dMOvNsk{EqyF5+x+cRHJWPRu^xj`pa}TjIo5&YhUSXYkaT;+yx* zXvpaeZ3zZKZm+YW-HUd3dbcGv0Nh)SLQD0h(;%imCh znB&yQ3uBFla%hd&7V>rkd}uDb;Z8|Ys2yubS`$0nE%?A=i4yx!L~Lor7u|Fs(807G z{m~?JC6cfu?1un?At~3%|0On@^dze@x$2baFEZWPE){CK-?IryDg-$VbK?C}j5^c*!$P=!icu%xKPr3sr5JSz z{=;neQS#rnr2TjSORXAp0sc>_M*HNg^XESf6~FuQzHNJke0u7OpRGUjsfTWPgPv(IpxWts;7_1|JmVHXRn;t_L|eN@4i3% z;?TW+S~~Z%KTU18|IU*`qpKRXVRI%v9b5ccq13L%)TZQp3o?x z)(^{iX3!MZn74j&%|G6L3N6(C^^)7E`x1X&GNr?N!f+Z`6$sQ~$s_ng!{;mU2Jr5B z{`bQKl#~ZeO=l;RNC?+kDWf@bLqg8qmGGwWOh(#)Wpv|7PPglHh?@ zsr&+Y$%KHuNay3T0KCdgSj{<{u;SG1^qeq5rSCP;sX;xzf{m~kj05nAHA=F9uXj_sBIKa=9U4_(;nxQP8SY!u}>c!=Ovlu20_2R!==7T z#Z%&Z808U~d-gJXO;d^YBiU?N-`AYFOnODA-cR&WP-{O?iuC=I{uQHCUkNV447!eB z{^&14r1(;#n1#PNpr8I-CJse<^BEIy)8LAgC;vVAOVEcTr}VE?j00UOLBD)01ocBZ z`in-8{L+x%QIQzt6t_SUtTa10ZK{6!CAYs$E0?5=+OLmK^3kYEB^&=cd^n%wOrCIg zAr)l0WAx7dE?v|wWh`Hb^dw7JvW(5gEtLY9rUN5-#|(Y-k2FWBd@jhQ{G;0b|G)pI zIB=H&!w(_8SoHr?tNwpu`pJQtX(6qu!nJMEFS7Hdp0WIluLdbOYWKED=OE}zRZ&U@ zy9Qh}@JXNuEuX3$)jWC4_cI9O$qTBW>H6~o8NqKF~ z+9h*7%)jsbfzNv1ec+m(kG*eV-og_uzIWs&!!Eu2rRKvRBUTvzl73P;z?GMswa%7Zq^_$kEpio*C$}j7 zNOzPtZOud|kMF+)~`nYNL`keLt zmLQ#it*)$ambpqxU1LWKDl2s@aFvzLpH((z!7=cb!CR_%UD5vveH#5)Y3O%tQ^uJY zg}%$$rVK`3EBWd+MG-H&|ECM?{qkGen|Ho{&==!xy?Jo%7qfqU^DDo8b;)%PZ?heF z!m|^eJ><2S=dL___#-#hcM8Q;A$@RL0!Ja*%~wa)DG z92LL5t8#Vo1>;Vd`{}!%FPU>nXw}Tees+KLEs?;-2aJAe%xm91^z)A&Kk%j5ug-kp z_D@c8>{|8qmwPtMy#DZ$pZ&Dz@_ifrd3Dd@=kLr{J1QB!Pik{nVc=MUZnyNYu{(J6?4Nvbm=g#L(ZCx5(*7}Fnp1)|yb+bNuZ`P_^uD`YI z4D6YIlHw^Ys()?R>czR?!wP@WqD=eUBM;uO?Aw!XJ>#u^Mo%t3qo!i&PhMYj;~PiT zst{D=x^2o&z>yPO2cfUWOt6h~4UbFn%3LKo7qV`*=VWEM#!v!>ZMbddoQsbss5ocW zrn~O{?JD)}V^3Z>qVq-9YKktf)wq^jU+t|{QC~| zQda|2d62EvwZc`?y{x|YPPyr%x_`PDbq{kHYvL%tdD%Wd6bPF&MH`{Ij6-*?eN z1wVV>9@k%vc0T>mJzo!a{f<+2Zk}1P@~q)guRV8UsMK@aj>q=(-oNXG!$-9&{_U1E z7buSpeCW<8yVnoD^u-NDD<5?hjeY0L&+fZ!=eXk^e(2tRJ^B0V&grar;L+0EU(Q!% zUby#(i6yshe#w69idT->w`b2aKio8N!0R_Y_Hgqv!7si%@5L>f$4p#w?OV;q?>+zb z9moHs;;dtSb92Rsj)R_>-}Lgd+uv~fV%E`jpZoI1MHkHaYsa?Pn;wn*?!k>8`Z`9> z-*o=bFLzJA_>F^Jn0o%RrPCg}edPIF^N+jiH{bs8wj}?n+kNVBn z`!2fWi@V=A``DsiZlAE@;Idg4Ph0fK(vNQ$I^nCe50$z9wRz^=U#&aj?M+X7i;5H4^!}m!GPHEb%V!Vj^q%>XOPUT2-1*Cz zt3PTz?xlCHs=p_H`p!FFzh&ATC+6Mx=gW@%ebWK%VvvN~>U{rnGYpC7V*`|vN8KGZwkdt1;uXX}mKp20I-F8}$yJ@4cUdUbv04K-6f z9Q0Us(U!+9S@e%@_e?ux$U(J7O#ao0;oibS?yos+*WSIA7oGO{N%x#|#(}RdzWdw_ ze?7bI^aDQIKJ)1JFFbU{9kY&l^8UsDDtr0ftVMU;#zH0pRg|&~Ld&!xP^b|)YG>)A7+vg@toCBe$vB8sF?0cJHGHzOrt`hYPk3{%Cy7BO@QEI=TA&9XrD(_J%(^_}#~s zUisudemDBaH%~k7liC{BO}C!^?kC4yd*^p=-?j0*9hY~VwD+~WD?Y55a#PXd8*e(L zCH9w}HE(UaXXfdDKJx1Ik8hbg`Ja2+c22%v`UU0l>UQk@Y1P?Jyf41fh%6>eeJAs2k6t`UQCA{xrSut zX{)?piVX`fVVeI^PDZ2R8HTF1fn)P=%0=JIsuUHj0i^B++o+f`T!Z7f-|ou76p%2@ zg=ZY1mR?x-;86Rj-G963>CzX+pFP`k4COe;hMCA!*InDa;*1(?7Q$?0o#uFs!^MoZ z!y{)Rj9ZLa4A%H$*XWwnSXRc9-EsQlhRJTNYqe{Y?#E=eq_4?tCK(CvOxH*GQCHWs zM7-11b-AnS5?9wnaVC{yxw=ks9i~^OD#K^>RUJ*<-jF9Uvpwu@gRP~fJyOydZF7~! z3s7CN$Cf$Am=0(f`H)OLVAY9(*9ZUFyYUVQRP2do(V`NAdVtbO6G?>FsPoKrI8s=q8c@P=3J8?)t- z1@C?2eYR@R))U8nUUbTh7e-Gz?~6Z7RF_Wu-Oq+ReEluD?wqvug||O<+zd7uzHPuJWFFRq<0jJ*m#iV`j zOh3fwzv7;w&u$HdZn{6Zv)rD2qcU~!;%$c&)ovWnb8qdJyDvC(bZFQq)i-VapnR(D zx}6)=HlML`jA!oUXT1By=lebzzWo=Ic0Yf^D>Ffuh;Ls&VAi~_G>+Bc-Hi+=kxi#zt7rhPl3lFhALCj$BTo{4#2C1r5kB@ z7T#D0&fQu~Gq~AH(w(MId4Bm;CdC;g+S@^g+DMKy6eMO!$zNm_e%6tmp5o)fxvq5M zQ0`|%uAmRepQ`Oj&fFr-dU)-hn-RI~&2r{T_aiQAkBR*Cjcc=1K{Gbu`5VAITqSaN z*u&vMj6{2qwyIinkPc^>7ajVr&pT<#0;$ixy~r@ENxPb;z;VDbZ7(GDyj8 z(>tZ6(!s&DNz-i~wU7Es6oEAyAh2Eq!#@Cj8EZlf|slsK`Ki=A85T-F*|~8tMi5zVCZP78r~M<8Aq0 zZJ0bbXDNif+fcq3kGgPhNvo_^6HnRF6=JK*>+B@A=2BqoG|PMMhLXhT{jCo@d#;Cf z8Fulog;w1;mAyag*$at=Xv^Ok<`0Ehgd%-6@A(Jb!jMhy#veqSs6F_IU_8riQMx|+ znoOH3R(^$zW<`SC?W~p5h-dO@Ej^#`(Ed603X(Gw2Eo@vc;sHId>D_|nDc1Vx?dpY z45Sa!dnw*463p%|7e9uVf8VETH2c>5_?r5S8oj2WD&|Ko{0rZu5tx|(0yF)OiwlE6 zPy}WuKw#SXafi0q1k*ck)+`hP`!ky$K+f->`rZm?K|Dc#D1p~j4wST0U~B$X^`-Na zFvu_9gol{1Z%r~?VbZluuX2Mggb|M!;hU}lCpjI?50N*Xy#(E3##~&^ZpX3@4S)eY z1}y|&ghVkY0Tfn94}b?jAuFl)-VA&ffbaN^*iwFg7nBn)s6_s>rKiDBP}{?vb_JIz zHV)vhB6Acsfc&~T8_wF)-olLor=`Uqucdkd5EVl63(3f1`DM{!(x@W<*Y~7fGXvXh9 zav{E*8EhZhFOT>em;t_m85DpPMTwzBFgu7>0X{h@*(vpn_Pxal<2;U+WD;~zNl`V43 zKKzp_a|)xDf-#qD2i5eNnE&AdwZq<4C7DXW`SHi4j1p#KxENx_f;xMHp69a)QMzJW zgc~MPj>T@=aKygqt2(PTmYK5XpmSiE-y%6MawacWjz`m+HA2_jkX2wlOeO1#_WZ>L zm|vAiY)JPFw`;&fDYTBdAj0k`LkktIRHi%P(ppP(eI2Ab!Cym7cGN7zJmFTylq-wh zDgCs|g6fZp*DVx4l0Oxx0_^tBzJn;$Z&IkctMtAqdks-JPH@`pYW*EFO-eHk_Kuef)+7&R~Hn@l2x_~x- zOVvzO4^jOq&HDp{`bwvcpn;!V4OjplUGNvQ>HrVw*p5ZF|88+Xi*5oKf&BR!lLIZf z`oG-QcbEQu+uI+})V}SLI|4@ll;3v>BmYAWx8s;ga|5*c=NpiqQ%VW7Sh0b_-er%gJL=UgRQ@7&{z;R^YYhv38+cOP#hbsSg>oF{z`XL% zpY0~-j%^L{l>eS}-3He|wzz366+yQgm?Ns$7Gj=Q*Zbbp3fE;09^M zj-fVW$88k`6jVgqk5JGQHJT~k49*x`4C10TP(yJpoDAWO?X0rq%xUCiDtXshmo-J+ zhP`0=OtGt`VkGHAX>(~a<(k9k+EjvjM=mTBFuot&n$*FVRFlUq-(krg@5~G-*Y z`Pynm2=Qz2A4kFw_Sm`pr|H4hiM@nw+J?Xx#I@l<-`CyU^9ED%ANS<-y;+$l2vRRT zA7JQ%a6Rf?&{z0yMtiuEkYMCqBgVIKN-)MR@zIi7&f(39HJfnBqs;wABafDOscvQ` za#kmmgvHz~_(VEdLs+K6n0(ee*i1fD>p7#FmBQZ^aqN@5(=DlD z=Uk4j2)1|7K^^sIP#38aOse@Ol&^N=?F(E6bo6x2D29+hTbV+wu^tWg#Rlw8yn41nJjWWOy!;4(u4G_r0F7b zZZ6y*BkRbqSM_+_EUdE%3A9%pAy$@3GMiw&7^pQ`e!QXOqDKr+*4ui5wYsdpg?JpX zuk|AODJ{#CiNCF8uv|%2q=Fq8!*YY?hY)N1XXyR3co z-B3kD#@m>vLNPv#JJZfK)Xi9a=Sb9ZVV=sjMOTn@BTZ2Ok8x3h>!j!69jwI@6e{O4 z9{3y+$!nPnmY-B`Y({rI4FL?)_=skOFH4CLSI2JVL6pm@TymK8txVp0x*o&MCb7xU z>gF$|LZ?Dp6#a&z`#NC#5owZ&bV7)$1l9t6GB*Q;CFD$XE-|&Ro(^AhuW9 zvgnyY+?uV@je2-Ip+pReYfm=EV(mITWzPjCL=)Ehntp0l@L@w^z&$1|uD4WujVjc1 z8M{ZA<&xsS;DPqd!q*2I>{bmlH4Nzoj+EuAlls^<(6PC`i&)dFzswx_^d#fJevw9U zMiwcrT>0V;>{pEXqmr3iZJs^wEh&+-B?{dCu4Y4^n)LznKL87etw?v4f#&uH%7SjE zZ;oecZkg97R1soMDhMBIrTroZU)Uvszf?JcZ6VtpRl6l>D&4@$x?LhJTEFL20!uxh{Z+En05Efu3TBRe zq;>vHpthYk0{8(eKN_>6)Oz1V5>)E#ys+~3GN{y&|4gZW0n>h8xBDNu&mGZCI_JM} z{QfB4Au9+9sXv@5it=CN2$tqWGF-`w7>%|pzgd@pLO zHtMr|ds-X|=fbq5)d{V$L-A$B>|VWCfjc<_Z4%f+(yGuYn~^e#1>a#?r>bKuj=fS! z9*{nkHx2~E2L~?Pn3t9ZQm1q%WjRvf*|PPp#cGE3y^lAFdCnbeLsp(jt!6Ezr>8TN zI689brfA;BwPT@m70eHDmt`JpAd;`KhE6V0+2U*QtTL>c9%0y8wmMTc0X{olM=3rE zFNW!u!W{kK(|6qw6>~8`9TF4Dl9u9X$j-L}=)f6m#B}Ja|48YNVFb(Wc`0SO-T@U;~j0@Jlnb zciW;YpOdzfu-R;>kv<&|5L?yqNqnq?vAXD$WF|`EQbjeihLG;d%*GfR;k-5ZxQ%Cj zC{+};zf5H<@eAd&&?ls@74Hc3lZo)#-J_f{i$`T7j>Jv4yX)JwCri!;q@pnX6)n@g z)uPUF?a}X_=bi{VL2ee<=X^oyY{UY=A(NE0#$}H!Z4ui!jP9c}XUnBD0`xT)>_}{5 zDv+O~{qKg}>0FfHIg;%m<)wi^_rn-Tye`J#;5>WeLTaCxn9c`o1s@1rP6c@~J}4vL zZ`SKw*e3>Fo#)qrq7V;*itxfb@QKLJ+V*|%Ks3W6^?xEMC$xg;nayysrj<9N#)tUqc?&rx3v z;MaFm02M^xX8`;pfFA?!m2i%FzQxpij;V({Yo8XMVKQyScOBrZwe(}bPGU0b6B2a+ zeEfgGbMWg62h!#8dFzjbxj9TB7iPrc25c|b$!b*yHpBFnD1F(Idk>NBZjc~AgA<@6 z=aP?k2l+nlj}H*eF5)yiAq#y;6q1=3o7Yo~kkxbes5lcouAJkgo@Mq*1v&Sq-sTcp zgq^$l-8_Db)9{BuXF)7GbG=5U>`PfrSTimp_%q^}6A)4kPjX5O^}c(j(XjGO{TgN} z=E|5VW<573nytT`nb&41duig7#+CtU^~0DhhV%0zZgU(q5@?;8cFjC!%`%beE`+O< zB3ofYD#bYjP^O9!@nNK>HmyyNX~)UDgR;c6aH zmuwa2ONc)^euH0E?kMfZ!?m`7$6XZDD#*8bxh^J}he_n0!-qJh_~B%6-0Y%EIV3JmY1T9?tJIU+Gaelddi^xuSW;)VtJx zf!NPgp4p$2<^y|AR=41ritLoZHf5_{eTZnB3qmov(B;#Uv@koAhtYj`@nAMZWE4AJ z&_P70DUbEk2zNc9LCe0JC`qubhJ~Hv^?e&!!=`&g=Rm7x-=*9t3;1D^*n7t(1aQ>TccYj^FQ`duPdl+VB57-}8I}bKbMvbN74C zUEay8Q-47g5jpVv{(GYP@Z?Xqz#j&!5U2NlAf4_>-dAv+F>_x*&5DLd{_3#3JY2gf zzpl2a$!^YH8p;p1H03um;90^reA(ExCYI`G5SWNu^B(3k{mXIP9+A zf{1>+2HiOX#1ey2@pyWWK{Zj?PkH7e`3ZV%(9;v>lIGC5X3%4tNH1iPSEM`flaJU- z!jW(tn36W6Q8MbmGvQN?)R%-qjW!fHt(;~q14{3rH;KiGpG+=Sd^l|;B~gBe=$zY# zl7&ljeJ0AmhdM(3TQ%>89>c9L46gS788uhbWQ7q_5y4a|To5ISa*ALitIVVccp`u= z$72PLb7cF|h&;h!s|96eq?j&0WX|GbAjpq1nCW}Q>v6UTgTK-H} zYe5B>9%u1{$fF#s6)r{DW*VH;Krqd8IqiqR=i+p#8p$*{_km!l(;fL8xb`CePX9xI z(efLOc+lN^+GJvEs17s56-;)zBwQfXX?3-dhkTy~8!k?(orP4|*#MqEiPP=@B*oQo zDrzs)9qenl>>SPoS94l&FwNmkjv#>3&IQ+L_XI5d+reyS3o6;ja`+rUm(OAM0{cJ_ z8K@2uEq&Znf_VVMyWnX~93Gtw8#jflfx`uhQm z^k*8efzD@rX_F_wCKBfRQFT;0$6~c08HUFhOf{W$0T_P7fKuglFad?mpC7el1>KfC z0D+5B!d0lt$Uxv{n^t%McN#RsfFEV(1Y#SX6%XuL91ZKD=`KN zfEh!Ls8N&vGmeij&?A}gs~F>W#rQnNK-*@GfEl$hS}{(EF;If6aZ8MWOfch>7z4$` zj1OXr5sJ~*iW(iJ7^N`=3WS546k}j`X2u0E#!$uhU5rtv7%#;b0mb+}#wb>dfFm01 zD8)D}#;8z?>tc*b#rQbJn4%aXlA<|D=UT|V4zI98wHH!0<#Ff`EacQfUYR21Yo=5Cja2Qi>r67#QCb zLl7`93@C;mU|VnU0MQ63VxiSSU!PmC-osHni^`^XSJY-Ve%Q928QWJ z={cP|(mVa=k)E*_D8S{`Cj+^&{7qq$2!o+gdq%hzKcU7@aqkl@#%6FCD(+6<9w%Ie zin~>~6NSrAan}krU$_hvS6m{0nQ$2@?hMf#AY6uuJ5so)FQkE?;`S4+U$_hvmt9no zTLg3&D()vd;`@WbWvI9Zgp1i0x(pTf3E_?xEK~8$nDhUqJVKzu1^l&073RCIVvIV)u-s9N24?ur!1sWn)tI_|c@KJ~1d*g%-jPTJYs z^HF;eO#CiPu<|*UYB*l3Yo&}5{H%3~Q5-AQvxN~WMYv2VH-aGF`B8=-U=&0df*`*w zoJBn0OR17UPnSZ4x1|^pH3P1bVw5w28o2;L{XggM=b0NYNI8mqrs=PMG;#^J8=0j9 zTqj&i91(iBGE>P2kKYDiR^#;{S~EJk$CF7%b5LW3Jw>TdURe^YfKD3gc%1&J;1@4) z=3at!W)$Z1KmLYXdm4BtIjMnhF88%D!Gs%n=GxOCNehofp(W>BYgd8F<3Ym{Oi9jF zv?t(k=boJEc3s*qe9u8^@ImB>eR(L+DRpEeBN|Mk^SInk1e5cDF-V^I{DdaYLnu2Q zQ;-klTEXFHsk4CjFGG0%pUwE?3ZDa9a*8&cCpqTjwu4bdUaW7yc)4!1AXC$^v z44K_F?l>RGm0c)evvq*GWOd8ZV}3m2^Q+!q@6tb6i~FLZcei$EpFuRf)tc ziNqs`#4Ajkq_Q9WccKK9t1A`OdLABsnDu zR(J~PDN&TgBF=#oKE0EunMIrdwab$j>KYbF`mOL;T=N!BW;*pxLdbn?XtY@h0tPy} zYNvvL0jEGQ1OWrCfMN&&MsbuO2pI4Nl!hQ+ltvkXfWgHh?G9rg`S3sTO9R^}()ygT z4^n8_7Fg0kW$$Any0^o$zd^#CN1fYQwv?;Gg+YNB3C8Y%m5CX ze?oBE0em9{1(1+`*d~fE;z62^d+)yjGU@Ju$Pez7VhC5sDe7dlw``FGQXOvDjdI&f zFg4Geebhn+=KU3PK=vV#C&$qqsTkwU;2dphS|?khU7Ku94kvLnkfY8ufI5jR;jOm- zcBj%EZr(Txw6Q(j7vyq7T&N75Lw%SybyU-JROOwbDsyd$M5Ah!s9NGtu_PLmOT`q8 z!z46F%0V3LD-YGy3p!c%=|XV_U8+D3e1>VmkMV?mi4LaRz9P)$7A=Q8Ebe>`3tiGc zrh=zAgC{%VyK^alpi6e=Qr)sUhuye5r(5mLVdzwwZ^>pdw%^V|1TM8V_w>PRm)e_4 z@+Dz!E~(?*TyGjPU+v9t8m1x*J)>zz=QNCS+UsB}C6J@yj_wP(Ot-y09?KgCeJU0t z%9$LELht`&(twfNWmVlEkJJlsSm6iN$dtkHxUeC2HtebK@n_IM5lH(-nQnmKIj&;a zPPWehsXZ1)t|zeA3@$RIxdm&~Q|(E+f>YvwoF!23PAeuIQM?Q;wa+jwZ@$$v+oKvjlyd62y ztmiN^C59ShJqHggku%VG4qZ8sY% z*F$ijGg$5PAH;l6Se!aI(>mG%=JS#R@U|nZs4sZ!I3H*O=00iyI}h06V7~u+Jj2g& zr*ZJ^J5CRL4yVm_>D>u3&&Bv18lpA*rc7`jA<{vF6lR?%I` zRz1FC`!cro3#L*KT?+gCo~%@#$Cv6$_NCfauy`8)L|5V=(WM;CLDHkqd5SnMzl0DC z#pnaSjv5UA?x{l5ZU)UCNu9n1-J?IyUF%G?=Z?v}VYmS}Tp zyA}fnH~m};oYLb!i60~gRxSBjFghv_1e#-_3_-vc8)XOr#<(a$5HOC9G6YF5K0YcC z1ez0~3_%h!Cq@N=K=XtsLy)MZn!AFi57dJ%f<}P#q5U!1NypW>y+cVp?7k z1L621jRoNjL+alNseO}D{}(fEX2veX_%}2D%SL{!7;iD-7S{L;02&InMRZH*hxAy| z7U7*WoA&!q49-_i`&JI{TL8>MM6H&FUsu#f73cOWa_3=ftvLx2Ubp(Q|$I)BTJ{!RofY-I_bUIv0g%+YavP)BYK>35Bx;d!$psF5eT|X zpTnPqAnaQ@q%RgoI_*c<7$?@U|ICSa48W6(v*ApvHJ_(JkXCh;>8# z8pULdMK>W!Mg{w6$WjCOZhIe)G;Q7Tqc}a8mj78i#JXFpE@0gq#3G~@_y;VTyO8}H z@GM7Q0M;S<8BJ2LW+wTc2Z_fEc-SujK%*xf#V;L9O}saN9U1O8g~d68l}SI!AyDj+ zuEkp{oaiD<_9*Wh3Qkhk4Mv;{pbz~g= zY$zr+GL*L(|9x1dsr+#Hqm&7&4WBBm*HEVR-vK;gAY@NIjgZ96e`zFA_N|mCwm~jLk zEzl>~#{7#$teQWX>DwUj;C_{?+U$XYp7>Ii9XHh;y_8=TZG$@rz0regqn#d4CtX36 zj1Mq#CFR)F%#Dr?mW(Sq{qMj&Oi7tvgr~Gu{|w}_u-F=m;n=+)+R8M8W{*O?-RCx9vJv;rM0M5(x zjA@mKB!aOzf?4-_QX)1=}^fI85WTU zXVJU5!0pc=w6qt4BJl+KV|0))9=@N4&(Z^h#m>RX<&i=8!(#@`?+_Ff*JVIQ-g$mr zh$puvw4j7m5S*+ihiVhYX)3C6H_{``Lnl{n54kXca=I{r@}MD`cid*n5eLS!SRBET zrUP>)H&^VlO0+JUZSvgjDRi(S=ke+sBs4^}H6@;2-Qt5K%0v(zAeWY7u5$EpVk1TjPS{^#@!Lf@95lx)%D$10ZEE zwQQ8ShaC#fxLs^pd{oWFoaqVnb~xsC;G&>B{yDHcFOiL+<1sfkI_R-)krJqIiD$tb z`2{f4`Asm9lK548%JWaxQW!jnAbNB3-h&=j5KAC&Uyvs?zBSRT2i5q7X2#B!WpkP_ zIBdi87}E(`Z&@i(o+x*U{TpFDN*O7mR!aZgY zUwF&4i(o*?)uf@wKfXSh(6Oi9&+Na!hAV>AL(Xs?R;zH-J*BvJ%aN&TDX5PmZhr(5 zK3Q;tH)E*FBpb{?Fw1F1aB$-(wCp52Y+T?*C3X#SO~HXO(sSxJGh*w|xt3Yiz7&nW|$oPXMIBR%2esW8Ak zQZe=qO`p@>7si(0>TZ(qZ2kmqJmI9k=NNaXg(8l?S;S6ZPL{iCtYg@@i$w*Gj$+t`3?_>$FRA+w3k=h?taN!!?MY$ActIk9V#eK-iZhl?c@De%I<>JV^AwNkPLd7@2IVVYq)RaNxII#^KCBp%b*W%0R7z!Bzwf{QzGJ~8+g^mo zN*Oa3(^cdToaa>RWv1BJ+VgBY6B*M5B@6Lopc8uX9h?u`*hlrUgfCPDe5psBe~j|| zXlsFS>W1DrPH*Z4Hfh5x$Ax+Z+y>l*#TA2P$mPKIa$vaQSRo_ursW-@ypyFpBubX> z1*(9*1RyId0)0 z)87VeqMdkBO`liY>fmjXe_%Q$Uxtkt*OTQN1OJCIee5K9vNF}?nlICaj>q1Clx1c4 z(!*=eY;!L;RopBs+{u;XiN@zk^JR8O7w!Riva)^Iez=)|Vz)0l+r}*B@nzfjEa?#l zW%l6d%#)Sl%kiZnd{*QXjxN{qZ~A)ra%FU6rOUci zvU0QBhy?Sfr}zr&sP#CSGby&Ch8z!sV4TTKD?QV9G^ac!Lo?!~@wl76lV+EKle-i( zP5InB45(FFj$WlzTq$!B-H39Witn5FrsB&VG)_XBpm*^64$ml`W#2&9AJ5+C;Oxgw zM(MKt-#~})9FH+C9Z&u+zZ!fDrF3#9z7N7We4D|K+Q%KJX=rAA2WrD~AZo{(SxQiZ zMQ%Q_h|?(~*O66VO27DfVwHzYy}THq!pPo*X646h@>(T`1&CP1YYiaPi!3-=)6ufi$R}-@ zV*6=#rY4%tg#0dv&F<< zq|-rjkxsOMXgS*K-xUVSk69|Zpm<2f051jO(q($E zu2YNsAMINuIH41vqMgw39Gacb3C!bicJRIgVJM5H-(e4eOq)kLU}`XqN>u&W?5ZWy z7SGaXP~F-Y(!mZ>gH_wJ=s3iQk<-UF+Rou-o6Q%N131YUpc*$;5z_jdIW}*PnAsb- z;j2>~7-8S}4%ooJYp z9QA0QPV{IK+&gT@<;OPU5W2%=oc}m65#5e^rPFqt;h&E9@t#lIva}Z`T_h>Nf`06Iz${sTs|%DZW-x5Z@?LgZ zQnUHbZWXWy=%*a?yrHY+5SJV!Q z+(9EZ4G2Wc)lNPM?Y5HRLN z8G0qC&RC3PDvCjaB37Sca8(9yq}>P(GIe&R2t&|0+jMT^;yRe3tStji_VcCOQ>bz_rEs}( zyr^kD=ksA#IL8B@)v{3lo_Pm-gPpl2dp6C28UG4!a9_TEzcOrb1^@1t%ctT9$Mp!W zlTv)-Lwp9$i?Br_Vb2Pdn&)sLvi-;w`w{(}Ey$a}Z}Pfw?FQHk;F1Wc6T9@t9=|b= zYp+6f#Lq&+az5iI_J-5au)IHyO8}YXD&z4z=nWSze-rZ&%yYJtJHj1#5F`vo?&qh| zVI%KOv>FthlP@Y->Ja@w81UQR!8sR~z37U8oEIuTx7^%>D_Wybj#h@E%)hexu12*^?JKYS$VhIaJSr>yXC&x zE!W}eF1AVCa+h_>-QF$t$!@t{cgrow>@E$bcFVoFTkaFxa^LRAW&a-yjz)1`lsi=( zb-T+cC(%52^R+PE3+An0#(4#)j*lZ~lk9jf7kjf#o6u%~yYb-7zIeBZbstl1pUYM9 z3`6{SJlLI=w-0PI`uM9fo6HRh&?h8vXth9w$6Ai`HiRfDiJS$zbzNeZewH6YO8~O< zEW@xDw-=XfVA(m{%WgutTd|QF@5a3&FCud=`D+%z?@JW@Ly2x>(UL^b45amWBvWns z9pnV}Q|=c(PiK0etZ$(A3@BOO+5y=>xAEeZJ*E z&eUe7Rv3Wre`DQfJ;3j_XejnG_@j-F%>$hnQSdlZ&J!ip;Lt>oIK~N5q1Dk-afiev z=#*nLjoDv<)ZpMo*%tznt;!=){*A~&f>dZ8!#%~l67>>PMl6mB*wKyI79wVwDS5L@ z2aM6mcJD+J2`Z?ST$FRP^w#2+BP4wd+&raDK89hH|3s~r$c%4cYOS@1imSvvS1g^$ zmRf<@Z2-J##|({)8cb(WYnUyZaqjtvT$)rp10JZV%v6-|+L0w?B_qm441@E}zsk`F z_;e-C)Ul`-GnuFroqb?+bGV^td4x6YTaWXXEbtao)1j^Ew`T@UTTlg6`VZ)>`H)R& zw3o6nK3EPIC-vW%oZKJ8*Tx8b8GvJN!xs&XkQc)IN^o`Mf<00zjs%(|k2Cy!2VIIU z`UGKfK*GB9GYwC6I!54&c<{Ne7lPsAq?I|R7CLE@z#9dA*u!0zMeh`{bW+Z)Tn}A1 z=&rsVstMfH*GcyVcI7$grYwdp4`5i~J22EqrPe@)lMWAJe3WljUOMF#?--g+8+z>k z=T|*AmRHSzj&zy?zLSpj+?AI}r{ydkl1XX3mk&v&9;K{56wpbpiRN|vne!x|lUm&z z*EGbELnVVN@b2DBb5~vteGsU?{J$>9n%4-NSjPChUWT>6os^GI9y-V5TwGGXxwyZS z)7i_~mDiiD88o7xHytWq_*dZl=(~dHeK*jKengMae+KbA{TlGoX~zJz`PIPJvz#;q zv1ii2(y9G2>CgQcjxV0t&q*gq%DsJAvrqQ)zUkB(p?cGV{v!&Uv5g6B!@%g<$MJGfjlmO4+L(`J8U`Wld?s*PI{q$ z@o9q?{;MBDTci*4I6Tlv`%#-tdTQX=fXxMehn>@VZ0+SFGiPhBOxiYh>0l?Fi28EU zmHoI(hDvREQ9J3BHk3;*Fo>nQkwOn`Mj68AL<-Z%FVZ649VnS6{jB+D0c(CVl;J|) z>2xFbz3JjoF55p0VYn@q;gp_So?l3)kd)+ugUtdDwMy+YNom|CHR$WhW%5GL!`Owr z-9NRThYI?08s3v!Pq3aYcG6>c={DBhN!U6TOPPXzn%q&r7!q`qz-YF=}Y>zlIco$`IM4Ql@(27jIbe_Wn%u zr`19wjbv&NT`bfEL8gY#FNK;}c6(MK&LnRUYL}0xVe}xi!Igj0KPkTu{qxTvTQlhS z{JTIsBh=3ZJfFW0e*KF=-7C~6dQGT|f$n~V*grfd)M;f*ji$pwJ>_F+JiRZ}wjfgz z>0^oSc0W_)xS3+)duhKf1;1udPG5=UJ-!743$gECW^l@`@-tOM(~WkN&%&V#;Hy{B zT*JTs^4ER~1{N4qRA;oIB>V$db0#Pr?b-^T9$ZNCDFQ_=-8^_J@>fIK3=1~5z!Fox z6zV#m7SL6ORp6x}3{Zu*wQ-G5BZNAct`};&P^Z$bgzE2L%|)~`fjWbBB~VM~Hxk2r zNKql)aK1~ZVu`PT?iT8Ek)26@Ff63AaR7cqi&oNoLe10E1IWW_&jT)lwg_~l&Pz2Y zDVaHa(-=OV!mv)@Zh-{?e=cx~=#;0k&KCl!gny-2*e%kR1fC$A<)ZVQaQ3-5)J@M&Z>>*Z7jU7Yti@X}s~p#O~6 zx!&_us*eumy$kr;?2l5NR2ckB;6`9nemVAOoZ0(?V@`|0Qr^T7UXyjM|l!Pwyva7LXU?3lWD~lT<*9V$|-m0kjJ~3DJ?{ zOEdT3-pp;9x+>EP>W@NgaZkwFhw=AMnwpyB1@%`=oz?e7j04YV>dL-1cnaxNp^hYf znSCSfa2?W=v&Rjd!QumPd^t(`Fp7VyWtB-@P+x0mQg9#6nasf|WpjcU2Ps8Uee(8U zywB29AkPb`kEX)C_u-z&AWdD=8zUbTYwBId0yIif7QzK+qNWBw7Nn_~nt*UYnxm=(bR*;!*TSLrmlv~(PXe2joN$$Hb;|3 zQ+piyXbfd)>OF@SRGy};AF&U==Ql8_Il>DnDAX4Bc;0Q{-jAuE=`pne-r6$ zP1Pe0C(s^EU4cBDK+kCEU4$#A*EN-i_{!-WP4z>374%)R6XSPX_F{b zQ-worvL;csrfx?)Ork!T`WxzD67dBj9&HW`c_6Kl<`yaHyo{r`1#q&a96k4e!XY|7 zmy^}|k+jKlj;8+G>n~|j=z5`eoOmj2D%~2Ro==-b4+*74l<9ORM$Jx|PK$88MU5J} z)2iq_p^hX^M7hkMPc=0KghKmDR@!YOGL4lIQf=N3*FyQ)l$@f|{YJ_JW(NIW%8~n_03Czdm}Z zrk0_F%%M81$z?s4R%+S!A@8QmrDma?ATGgqbdFG5N}r|8qYGoyH)-?fdKFH_-D?z9>j#*Ps3&ZV?~#%hX7X#v(~O2#AYLYko|9%&a+wWg|i?4y(DG)-0G zt<#gJUZ^eZ0j_;G9ca|l@j^9gYP!n{*+xw*fb0~yKvT;gJB2RQR9>N(ekyI()bK(V zs9$O7Fj96J?bg(ng=y)h(LSM$By$O#MlVG*QP!u?KQ#3X%K9{VTPRhYizu~(bGx0s z&&*6;M86Pfi@PpkAAV)v22I^OBscwZ+NCHd-P7sL7?ls%modsqXOORyZEkU&h5Rk1 zUP86GFGKzo(*P}-iIQJJMOt<;N`48A(6Uzo`>2+V*Rpp4UQm;TQmI}_rwGNZU~u|U zS{9>9((7owP^z!g)8#R0X;MAi8KZWmh3G?}R4Z6U|J4+?f@So*(sXnEEhkqQ=SY?A za>@`&rDZwg3bn<(c_eEN($pJ54b#-6D9`0IF-oESmeYxvvi)ZIaynU4XQ7WRr;w&D zMo(Q%VNLDCoU@$H6^iqI9KvmlQ4`Zw&^Jm`>ZpOT`H)5YiK*!g^kj_MopvT&fYTAK zBW~p@=@LzGD_=?5g*uYFt7MAVNH=Qgu9DeFjdY8q-U`kzSJ54s`aHNMX%*e4srCKm zm`$`tQy2ALl+;9fH5KGv7NGr_8Xa7kWYga@)#AOtvzp$})MoE-=4yIRQ-^%}XbpX; zsZV`gP~U2b+kBWDyv0LYF0<0ZbaITUNsrLYLTz!MS#(-@Gws&Ym!%<4_h`ydb|$EY zg;I6fLN6+rlxGXQE!1|ZAGJEYh4OLS#672e)LH3gQM0C2k2*JfJv|hoex7~~`FWEH znvqf4($A%>G3xsCHhNN1oBcPXpHBxgRo>%w=@-xvz8r&agu9mPgmBlsHye+vomg_BbvIXe{WD9Y3i+DLB_A> z3r&3<90E#yz8O6y7%a)yLGB5h_bu+x!4aT*nriW8Cbd&9O>Oobvf62YqNFYDq#`Xl zvuJF_P8zPM4Mmed9j~b`OXp_XM3tIylq~=?Q&D2&W~$M$iH_4UZl*<=n&MajDx|4e zj3~Qkm8KdoYwx19iV`cordFZ0)3v3`GJZ|>#i*u?TgW?+^S7O@DqWlL8+u5nE$$H* z-F{1tYpQCb7t}sYeeXRt<9GCurm}q(f;y-vSK!Kw-E<@>3;YVyN1F0_Z=~Dk3r&si z-r%{7;LJ(s{swdZ?c^3}v-`fD*n6UEp`J*-sq9?O9b}cW<`c<(ESs8s2jvQNB>Bvu z-(}oMLp5a<{Q=aentG_{5l|OvipP*UX`4`6-0XSWN!JV2Mt{M~br(&pAbgnGoAG

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

#^i@Z4)Dr}|#p@au7_lI(i{?U(sJkGdQrSHCs_ zAoB87|0-ACmaA{b)upDgLhGuZ?`x4=F!-u`$>9joYK<=KE6!Ues&e;<{M{zg6}EEq z?EeKrp?t!@r(C(XuQYf2KBtR;-o1wY)^_izGo3citeo(=f6?Q*hu7RZWz3LpotbJx zT&;%#+x}d;!|Y_A~GJC(J(w;qT zbAIAKTl(&|4&lnEQ5*Z^b#K@&sIFO!C0`8uUfFF$Z0(coj!nilUS!+5)0pV_`%~%; z<(J#O&aHEEZd-NxWrNlSrUR<#Gn)AkZJD=3icaH4nv8C~D zK0RgQk53y04Z5=Oo0zPW zHI}MZiGyx8*<#x!{f8?nCU!V-BH(!L%0*qD>>u7PzuT>Wr^YS)@^!;8xoPb~RpS!7 zhBqJK*gf4c@N~q+_e+Nzca|#}l#X#9v;3`n_2oZJR1JC}?$HVtIkvcSFVUynPe-%3 z^G=83orm1(+RpRDv;G|?b$i@t{mAQqjiaobk4&g5HyIP&ziPuVOIrjwE8-jzk|HLg sw~xJ9|JI^!hHd!e?fwr%DVnP1PAM-1-+esq$b-3G+OEZ^&K&oD031K&vj6}9 literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.deps.json b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.deps.json new file mode 100644 index 000000000000..ce563dfdebbe --- /dev/null +++ b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.deps.json @@ -0,0 +1,1316 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v2.1", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v2.1": { + "Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext/1.0.0": { + "dependencies": { + "Azure.Core": "1.22.0", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "PowerShellStandard.Library": "5.1.0" + }, + "runtime": { + "Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll": {} + } + }, + "Azure.Core/1.22.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Memory.Data": "1.0.2", + "System.Numerics.Vectors": "4.5.0", + "System.Text.Encodings.Web": "4.7.2", + "System.Text.Json": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netcoreapp2.1/Azure.Core.dll": { + "assemblyVersion": "1.22.0.0", + "fileVersion": "1.2200.22.6212" + } + } + }, + "Hyak.Common/1.2.2": { + "dependencies": { + "Newtonsoft.Json": "10.0.3", + "System.Reflection": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.4/Hyak.Common.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.2.2.0" + } + } + }, + "Microsoft.ApplicationInsights/2.12.0": { + "dependencies": { + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Runtime.InteropServices": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.ApplicationInsights.dll": { + "assemblyVersion": "2.12.0.21496", + "fileVersion": "2.12.0.21496" + } + } + }, + "Microsoft.Azure.Common/2.2.1": { + "dependencies": { + "Hyak.Common": "1.2.2" + }, + "runtime": { + "lib/netstandard1.4/Microsoft.Azure.Common.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.2.1.0" + } + } + }, + "Microsoft.Azure.PowerShell.Authentication.Abstractions/1.3.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Aks/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Aks.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Authorization/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Authorization.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Compute/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Compute.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.KeyVault/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.NonGeneric": "4.3.0", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.KeyVault.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Monitor/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Monitor.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Network/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Network.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.PolicyInsights/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.ResourceManager/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Storage.Management/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "System.Collections.NonGeneric": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Websites/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Websites.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Common/1.3.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Common.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Common.Share/1.3.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Common.Share.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Storage/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Storage.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Strategies/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Strategies.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.1": { + "runtime": { + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "4.700.20.21406" + } + } + }, + "Microsoft.CSharp/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Dynamic.Runtime": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "Microsoft.Rest.ClientRuntime/2.3.23": { + "dependencies": { + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.3.23.0" + } + } + }, + "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.Azure.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.3.18.0" + } + } + }, + "Newtonsoft.Json/10.0.3": { + "dependencies": { + "Microsoft.CSharp": "4.3.0", + "System.ComponentModel.TypeConverter": "4.3.0", + "System.Runtime.Serialization.Formatters": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Newtonsoft.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.3.21018" + } + } + }, + "PowerShellStandard.Library/5.1.0": {}, + "System.Collections/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Collections.NonGeneric/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Collections.Specialized/4.3.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.ComponentModel/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.ComponentModel.Primitives/4.3.0": { + "dependencies": { + "System.ComponentModel": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.ComponentModel.TypeConverter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.NonGeneric": "4.3.0", + "System.Collections.Specialized": "4.3.0", + "System.ComponentModel": "4.3.0", + "System.ComponentModel.Primitives": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Diagnostics.Debug/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.DiagnosticSource/4.6.0": { + "runtime": { + "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "4.0.4.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "System.Dynamic.Runtime/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Globalization/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Extensions/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "System.IO/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Linq/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Linq.Expressions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Memory.Data/1.0.2": { + "dependencies": { + "System.Text.Encodings.Web": "4.7.2", + "System.Text.Json": "4.7.2" + }, + "runtime": { + "lib/netstandard2.0/System.Memory.Data.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.221.20802" + } + } + }, + "System.Numerics.Vectors/4.5.0": {}, + "System.ObjectModel/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Reflection/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Extensions/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.TypeExtensions/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Resources.ResourceManager/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime/4.3.0": {}, + "System.Runtime.CompilerServices.Unsafe/4.7.1": { + "runtime": { + "lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "4.0.6.0", + "fileVersion": "4.700.20.12001" + } + } + }, + "System.Runtime.Extensions/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.Handles/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.InteropServices/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Runtime.Serialization.Formatters/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0" + } + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Security.SecureString/4.3.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Text.Encoding/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Text.Encoding.Extensions/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Text.Encodings.Web/4.7.2": { + "runtime": { + "lib/netstandard2.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "4.0.5.1", + "fileVersion": "4.700.21.11602" + } + } + }, + "System.Text.Json/4.7.2": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.Runtime.CompilerServices.Unsafe": "4.7.1", + "System.Text.Encodings.Web": "4.7.2" + }, + "runtime": { + "lib/netstandard2.0/System.Text.Json.dll": { + "assemblyVersion": "4.0.1.2", + "fileVersion": "4.700.20.21406" + } + } + }, + "System.Text.RegularExpressions/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Threading/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Tasks/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Threading.Tasks.Extensions/4.5.4": {}, + "System.Xml.ReaderWriter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "System.Xml.XmlDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + }, + "System.Xml.XmlSerializer/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + } + } + } + }, + "libraries": { + "Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Azure.Core/1.22.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ze/xRCHSSDe5TIk5vBDbVrauW1EN7UIbnBvIBfMH8KSt/I9+/7yPAjTBDgNBk0IwG6WBV+BBHp4IUtS/PGAQwQ==", + "path": "azure.core/1.22.0", + "hashPath": "azure.core.1.22.0.nupkg.sha512" + }, + "Hyak.Common/1.2.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uZpnFn48nSQwHcO0/GSBZ7ExaO0sTXKv8KariXXEWLaB4Q3AeQoprYG4WpKsCT0ByW3YffETivgc5rcH5RRDvQ==", + "path": "hyak.common/1.2.2", + "hashPath": "hyak.common.1.2.2.nupkg.sha512" + }, + "Microsoft.ApplicationInsights/2.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4vZcVaxywAzfLm5mAc2/llaZQTzbCqu9KirxxI/t49AkZH5Qxf7JxuAMUuv2/6JEdOOkGDzpvdrrIlf6LkFGcg==", + "path": "microsoft.applicationinsights/2.12.0", + "hashPath": "microsoft.applicationinsights.2.12.0.nupkg.sha512" + }, + "Microsoft.Azure.Common/2.2.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-abzRooh4ACKjzAKxRB6r+SHKW3d+IrLcgtVG81D+3kQU/OMjAZS1oDp9CDalhSbmxa84u0MHM5N+AKeTtKPoiw==", + "path": "microsoft.azure.common/2.2.1", + "hashPath": "microsoft.azure.common.2.2.1.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Authentication.Abstractions/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bKDPidNeqBpTDikPnIuoMoGd26pD2PNE41cut0ASwL5exJwLNggYO55U+f/cJkgjCUMR8i5nqnlfpGHSS1I0vw==", + "path": "microsoft.azure.powershell.authentication.abstractions/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.authentication.abstractions.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Aks/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sUGkvOvpqlEK5zdZ7HWaou3GY5bnlNrE0LuZ137+TsNfgx2E3+0Ika3a02i/9+niDDf60xj4LaNOYDSuK5zdJA==", + "path": "microsoft.azure.powershell.clients.aks/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.aks.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Authorization/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Q760F40/qfas2Al+GQhhE4gJt768pQPxlCjqrjjkukgVsq+X/M8IqpCeBzbRTiiyerhcjJoyNxqlGuZpUhqGxw==", + "path": "microsoft.azure.powershell.clients.authorization/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.authorization.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Compute/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1fcsBdYMmEJPMPN8EAgJkaJ2WxxTKH3VcLECYdL2cfg2bgN8CKbbjSvarrXEezhyduE+LdYnL0e8Pigsnaj55Q==", + "path": "microsoft.azure.powershell.clients.compute/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.compute.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BIMthJ1x2vQAN3iWChnNj8BfgrXvKXn+n06E0/h2MNurMXbAOn5eiPIfE8bnj2BO99uSh1ns09yEgOTPJIvZBQ==", + "path": "microsoft.azure.powershell.clients.graph.rbac/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.graph.rbac.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.KeyVault/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MfvwM8ABj/EswmYu0Bf/8kyAO6kUv2zYSihVn384SVmypomVKUu69GN0VXKbmGaovPI8v3H41Ldp7DqbPRun5A==", + "path": "microsoft.azure.powershell.clients.keyvault/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.keyvault.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Monitor/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UyCKG5BWVjYFRtH2JNx6f4KdccaSqww2y0OE2PYgib8VhLqkoPr/BQg6vKzaGsghLIerZ/egQ7ntPPw3PCtS3w==", + "path": "microsoft.azure.powershell.clients.monitor/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.monitor.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Network/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YAAHxw+zzvkGNWAi668NSoTR+V/7vf+gRhu1oFa1O1/f2NGpz5XuqPrQyAPrri64hKqB/k3OMrM7sjlIv16dAg==", + "path": "microsoft.azure.powershell.clients.network/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.network.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.PolicyInsights/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-urRIwRVzzOwpk8HhKq/b785DiL/arnmGUHbN4HvRN6ZsBkE1PU431YwgUlofb9pfB3buLcl0XJFRPLBJ0yZJUw==", + "path": "microsoft.azure.powershell.clients.policyinsights/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.policyinsights.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.ResourceManager/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-juWnd63Z2Sp+6bvtOPOF0Gj1v2AfpxXcuyodd9+U7euBro2G7Yfo2UHmHo/uaYyQUbM3HaXJPvse7BLDKjhe6w==", + "path": "microsoft.azure.powershell.clients.resourcemanager/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.resourcemanager.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Storage.Management/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HPpTWIlN+5ALqJssL7+6BD/vYrWi3eWKQ3QpWYjCFk5c9HVLTNpP+M2dq9jbsxLsZj+5Pt6gC4FIS22Q13Uhag==", + "path": "microsoft.azure.powershell.clients.storage.management/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.storage.management.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Websites/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b5yBD9FrY02r0kdNNgZ+uU0/QsW3AtmnCE/x1mUG5j8ka/V04AYUo+sDokQBzu+vnK6Y6OrVDtyWjmnKTDHpWA==", + "path": "microsoft.azure.powershell.clients.websites/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.websites.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Common/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9jZYZ9LKbx16r69y7cO9d7bDjpE0/HgeBU386Y/O6q05VRaq2wAsB2rbQ9AjxcPGHfwS0+2US/RImSSqjVABRQ==", + "path": "microsoft.azure.powershell.common/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.common.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Common.Share/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4mJSjnwZVLQYWhP47eDzdt0yaLIf2I4pqaEIqcfAjkjdbKpnCXCnJUEFRId061yuKpq1LtfBZkHDRi68I5CJxg==", + "path": "microsoft.azure.powershell.common.share/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.common.share.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Storage/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fObXEcuhk1JUoQ0fiCV4nK4NJWqvsfsKCzapF7SFEQ87X6AasL6m5KGT8JQSnHmc849xxxaixPTxyWaf9BBlpw==", + "path": "microsoft.azure.powershell.storage/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.storage.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Strategies/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HwyxUwDHCmY6Zdxg2xpFC9Gqmu92Xr0cAr4ElWYwz8Z7PE9uYVkTpKMIKd7oIJJgsIANTfqEU1HKoeI3FXPLqw==", + "path": "microsoft.azure.powershell.strategies/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.strategies.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yuvf07qFWFqtK3P/MRkEKLhn5r2UbSpVueRziSqj0yJQIKFwG1pq9mOayK3zE5qZCTs0CbrwL9M6R8VwqyGy2w==", + "path": "microsoft.bcl.asyncinterfaces/1.1.1", + "hashPath": "microsoft.bcl.asyncinterfaces.1.1.1.nupkg.sha512" + }, + "Microsoft.CSharp/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P+MBhIM0YX+JqROuf7i306ZLJEjQYA9uUyRDE+OqwUI5sh41e2ZbPQV3LfAPh+29cmceE1pUffXsGfR4eMY3KA==", + "path": "microsoft.csharp/4.3.0", + "hashPath": "microsoft.csharp.4.3.0.nupkg.sha512" + }, + "Microsoft.Rest.ClientRuntime/2.3.23": { + "type": "package", + "serviceable": true, + "sha512": "sha512-92kNTi1N7zI5wwI2ZXswBRnk61OUYnuYJXrlgOhes5IsAqGmgw9DPGmhUzeY8OaZ8TTrQdDzvgXFnbCHwLzSVA==", + "path": "microsoft.rest.clientruntime/2.3.23", + "hashPath": "microsoft.rest.clientruntime.2.3.23.nupkg.sha512" + }, + "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+NVBWvRXNwaAPTZUxjUlQggsrf3X0GbiRoxYfgc3kG9E55ZxZxvZPT3nIfC4DNqzGSXUEvmLbckdXgBBzGdUaA==", + "path": "microsoft.rest.clientruntime.azure/3.3.19", + "hashPath": "microsoft.rest.clientruntime.azure.3.3.19.nupkg.sha512" + }, + "Newtonsoft.Json/10.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hSXaFmh7hNCuEoC4XNY5DrRkLDzYHqPx/Ik23R4J86Z7PE/Y6YidhG602dFVdLBRSdG6xp9NabH3dXpcoxWvww==", + "path": "newtonsoft.json/10.0.3", + "hashPath": "newtonsoft.json.10.0.3.nupkg.sha512" + }, + "PowerShellStandard.Library/5.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iYaRvQsM1fow9h3uEmio+2m2VXfulgI16AYHaTZ8Sf7erGe27Qc8w/h6QL5UPuwv1aXR40QfzMEwcCeiYJp2cw==", + "path": "powershellstandard.library/5.1.0", + "hashPath": "powershellstandard.library.5.1.0.nupkg.sha512" + }, + "System.Collections/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "path": "system.collections/4.3.0", + "hashPath": "system.collections.4.3.0.nupkg.sha512" + }, + "System.Collections.NonGeneric/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", + "path": "system.collections.nongeneric/4.3.0", + "hashPath": "system.collections.nongeneric.4.3.0.nupkg.sha512" + }, + "System.Collections.Specialized/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==", + "path": "system.collections.specialized/4.3.0", + "hashPath": "system.collections.specialized.4.3.0.nupkg.sha512" + }, + "System.ComponentModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==", + "path": "system.componentmodel/4.3.0", + "hashPath": "system.componentmodel.4.3.0.nupkg.sha512" + }, + "System.ComponentModel.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==", + "path": "system.componentmodel.primitives/4.3.0", + "hashPath": "system.componentmodel.primitives.4.3.0.nupkg.sha512" + }, + "System.ComponentModel.TypeConverter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==", + "path": "system.componentmodel.typeconverter/4.3.0", + "hashPath": "system.componentmodel.typeconverter.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "path": "system.diagnostics.debug/4.3.0", + "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-mbBgoR0rRfl2uimsZ2avZY8g7Xnh1Mza0rJZLPcxqiMWlkGukjmRkuMJ/er+AhQuiRIh80CR/Hpeztr80seV5g==", + "path": "system.diagnostics.diagnosticsource/4.6.0", + "hashPath": "system.diagnostics.diagnosticsource.4.6.0.nupkg.sha512" + }, + "System.Dynamic.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==", + "path": "system.dynamic.runtime/4.3.0", + "hashPath": "system.dynamic.runtime.4.3.0.nupkg.sha512" + }, + "System.Globalization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "path": "system.globalization/4.3.0", + "hashPath": "system.globalization.4.3.0.nupkg.sha512" + }, + "System.Globalization.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", + "path": "system.globalization.extensions/4.3.0", + "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" + }, + "System.IO/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "path": "system.io/4.3.0", + "hashPath": "system.io.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", + "path": "system.io.filesystem/4.3.0", + "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", + "path": "system.io.filesystem.primitives/4.3.0", + "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" + }, + "System.Linq/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "path": "system.linq/4.3.0", + "hashPath": "system.linq.4.3.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", + "path": "system.linq.expressions/4.3.0", + "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" + }, + "System.Memory.Data/1.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JGkzeqgBsiZwKJZ1IxPNsDFZDhUvuEdX8L8BDC8N3KOj+6zMcNU28CNN59TpZE/VJYy9cP+5M+sbxtWJx3/xtw==", + "path": "system.memory.data/1.0.2", + "hashPath": "system.memory.data.1.0.2.nupkg.sha512" + }, + "System.Numerics.Vectors/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==", + "path": "system.numerics.vectors/4.5.0", + "hashPath": "system.numerics.vectors.4.5.0.nupkg.sha512" + }, + "System.ObjectModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "path": "system.objectmodel/4.3.0", + "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" + }, + "System.Reflection/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "path": "system.reflection/4.3.0", + "hashPath": "system.reflection.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", + "path": "system.reflection.emit/4.3.0", + "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", + "path": "system.reflection.emit.ilgeneration/4.3.0", + "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", + "path": "system.reflection.emit.lightweight/4.3.0", + "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" + }, + "System.Reflection.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "path": "system.reflection.extensions/4.3.0", + "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" + }, + "System.Reflection.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "path": "system.reflection.primitives/4.3.0", + "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "path": "system.reflection.typeextensions/4.3.0", + "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "path": "system.resources.resourcemanager/4.3.0", + "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" + }, + "System.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "path": "system.runtime/4.3.0", + "hashPath": "system.runtime.4.3.0.nupkg.sha512" + }, + "System.Runtime.CompilerServices.Unsafe/4.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zOHkQmzPCn5zm/BH+cxC1XbUS3P4Yoi3xzW7eRgVpDR2tPGSzyMZ17Ig1iRkfJuY0nhxkQQde8pgePNiA7z7TQ==", + "path": "system.runtime.compilerservices.unsafe/4.7.1", + "hashPath": "system.runtime.compilerservices.unsafe.4.7.1.nupkg.sha512" + }, + "System.Runtime.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "path": "system.runtime.extensions/4.3.0", + "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" + }, + "System.Runtime.Handles/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "path": "system.runtime.handles/4.3.0", + "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "path": "system.runtime.interopservices/4.3.0", + "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Formatters/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KT591AkTNFOTbhZlaeMVvfax3RqhH1EJlcwF50Wm7sfnBLuHiOeZRRKrr1ns3NESkM20KPZ5Ol/ueMq5vg4QoQ==", + "path": "system.runtime.serialization.formatters/4.3.0", + "hashPath": "system.runtime.serialization.formatters.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==", + "path": "system.runtime.serialization.primitives/4.3.0", + "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", + "path": "system.security.cryptography.primitives/4.3.0", + "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.SecureString/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PnXp38O9q/2Oe4iZHMH60kinScv6QiiL2XH54Pj2t0Y6c2zKPEiAZsM/M3wBOHLNTBDFP0zfy13WN2M0qFz5jg==", + "path": "system.security.securestring/4.3.0", + "hashPath": "system.security.securestring.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "path": "system.text.encoding/4.3.0", + "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "path": "system.text.encoding.extensions/4.3.0", + "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" + }, + "System.Text.Encodings.Web/4.7.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iTUgB/WtrZ1sWZs84F2hwyQhiRH6QNjQv2DkwrH+WP6RoFga2Q1m3f9/Q7FG8cck8AdHitQkmkXSY8qylcDmuA==", + "path": "system.text.encodings.web/4.7.2", + "hashPath": "system.text.encodings.web.4.7.2.nupkg.sha512" + }, + "System.Text.Json/4.7.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TcMd95wcrubm9nHvJEQs70rC0H/8omiSGGpU4FQ/ZA1URIqD4pjmFJh2Mfv1yH1eHgJDWTi2hMDXwTET+zOOyg==", + "path": "system.text.json/4.7.2", + "hashPath": "system.text.json.4.7.2.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", + "path": "system.text.regularexpressions/4.3.0", + "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" + }, + "System.Threading/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "path": "system.threading/4.3.0", + "hashPath": "system.threading.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "path": "system.threading.tasks/4.3.0", + "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks.Extensions/4.5.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "path": "system.threading.tasks.extensions/4.5.4", + "hashPath": "system.threading.tasks.extensions.4.5.4.nupkg.sha512" + }, + "System.Xml.ReaderWriter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "path": "system.xml.readerwriter/4.3.0", + "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", + "path": "system.xml.xmldocument/4.3.0", + "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlSerializer/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MYoTCP7EZ98RrANESW05J5ZwskKDoN0AuZ06ZflnowE50LTpbR5yRg3tHckTVm5j/m47stuGgCrCHWePyHS70Q==", + "path": "system.xml.xmlserializer/4.3.0", + "hashPath": "system.xml.xmlserializer.4.3.0.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll new file mode 100644 index 0000000000000000000000000000000000000000..239999aa2f3cfcbf08ae3d6faaed5c002dc1cb88 GIT binary patch literal 18344 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

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

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

!SB?9@1=RQj`c5x7LQyqRAf> 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

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

Al 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μ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 X^_REvj$RS_eoaFTC@A^If##U6! literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll new file mode 100644 index 0000000000000000000000000000000000000000..78fd60ad7aebb92481d38267c51af0b78ffb86cd GIT binary patch literal 759184 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 literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.KeyVault.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.KeyVault.dll new file mode 100644 index 0000000000000000000000000000000000000000..b33058d94c539ad11e8348921700d5da36db36b6 GIT binary patch literal 122792 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 YhgWbtdLhd5ar?t%R$C@qKE}WR0RL|V<^TWy literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Monitor.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Monitor.dll new file mode 100644 index 0000000000000000000000000000000000000000..e07270d248054b190745bfcef469c9dd187ca84b GIT binary patch literal 413584 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%0Ak}vNI1Ogz73zTD}F2Q ziur(wrp|#C1L+S!lvumkup%L9Q22W`_}eu4lfZGH%y+a)w`d&ragywB^JL48Jo_}U zu_vlQeR?kl)~A0CezZP4uQYB7>tTLr&em4;QM00Keu}Uto1Xz#Hk(BSC4ksG5)vLO zyBFXymd)Q1C0|VVapU6fm6utO;;$^l--HymhzUqQid#lPLY#b_#dM=bpO{#}bn^#B zG^xw|iCA-gkrR(Jgx&5{AhWbpj86iHts@};1ZG~VJqaMTjf4acu%yg~1luz?n2i?y z;`sf0q!$YY+gthg{pW;VBH{m<@G#R`{Ldd>b`00}2`=*vo?LQ!qqgTygs=|;_ZsP` zTw{zYp_ufqjF<3O+jfHFB;Zv1&B9+l{sxvE+ysft8^n-`D`LU*2whLo_5HjeO4&uQ zXG))7n^YjTFVb9Tv$DdPV}r7yFvr?u#bl0E%Y%&290TP+#%qq{2Ifs0+7D69n{F_} zV5Y$=gV_eOmoPidW)-?mGrN}=qSyT!PE`0C1nfa0&uqeF0P7q5$?8f1h+QKg0mN>R zkN{%$NJv25X^)}7>tEUZ3kk)Vy&TzzGxIp482MY;c-A2AH}G1r@*orH^^vW(gW97N zcM)rDyqr}xQP}M!3&*=2Aal1zR8<0qJtH9j#9on*00IjgD-a1F_KAc95c@_#!V9rQ zXGk;V@2(_&6B52?(X1%hn=gmq5mhsd+E?5R!las;MXb6xgqmAYZ07of9d2nLv$$W> zMgoZaBOw9A0g;dZ;=o8q0C7+xB!EC~wL*{p0!EV&5-_k$NAfYZ7!LDVULxT~$!#&P zt-yR#-HIU_N5uprAjP92Apt2apTwM|=n@{IO3)-P->38GXMv@N#>(=%~f9Clp zyOk4uZaL{d;97+UT5E=qbsctlBW44AiIa6fo;n^J~8?~VFM0D-M(%YuYirw!4) zWciGM)?{zbi*!qi8V9+uNVg@R9d9qJxgCK_<%Afi1Q73wgai;LMnVFJlOiDj#L1D6 zV79;mD7RZ>3*bcAyzJ7pu~ot!m6uW3ZIkdgR4{M7^v|(~*uW=OnR%r-!61$OF&@jD zH~@l~6W7AmXy!!OZ5JXVHvX*0b_f))(ao{WY>q~0&PBP+p|KA$czCZMPT=oGnDV3! zx0|rj;dEQLyWC#FZnqDRrF}{)DG4A>jf4ac%}7W90sGTxT>=On2?<<(osP2pWU~I+ z1*yf>`u?N@$-HpiLewtT~+73wP#@2C}qHi#e450vWZkkO1P0NJs#2 zW+WtlI4cqoK%5;330l9RGD7(sgp@}sIr1zy;#-%Te7&ub!#YFu?JlJ`$F-K-VBVh_ zNE<`NdkHl+1YjA#zOf>a00NsQMo0j0UL+*MsjV1-PO^AU2@$?OdY6Fkc#LcjO2A-$ zB7DX|N;~w)34e9o?4YELOqb<3In7c$gHUs45zq?G0WwDy#PlS9xG)kDKwK0F2_P^$NfP2JNI9w+wZz% zDIiPcvZ#dw5SK?n0*EUjApyjdk&po5sz^ux@!?2F0P&GXNC0tlBqV^iCK3{m*V$N; zpwX8;rLh$!WUFk5Dx0$V1gX^w8;8cB^00iUyae}08!F50lOZIraX12Kiwdilutjwx z_|dkg=8c=fmC*{NIh)xyQ7#=+n&ZbBGd_oCP%~d3;5#V*3;f!cQ3)Wfi-ZIa*GEDE z*Y>cqN}pCad=|09{Q=8`FGGO!F9~d9S6ZxZlQ_bsWsbd4o8*5?7qQh$~Jd#1)6*;ff>bTGy{q1|7rz-{?N-n|TwWAisd#COGrCBy~J`99DJw4QQp8VhXcWZ-R?yovwBZVNdky_BOw9Amm(nn#C?&F z0OI~gNC5FbBqV_NawH^-%=a&XHeZSUBt(BjgZeGCue#sU`+~tWQ4{WuA?SlKs05_> zP$VSGI_+V)v2GJ$n*R*~#yU;ysoy0$`da%mKbYH7FT*30!4c;i?Eem6fqpe6D*?nK zk&po5Ymtx;Gg-v@y2bl%i}#HX@1rr41Vr;#BqV@%JQ5O+LzqjW=I~z$KZ?azG{=gW zBF!ga%n}YSyE1OXvcnOD?PXL{SSLK9jJiWaPsWHOK<95pLIPs$NMgpJc4Nmp*<$Vq zF@GyYBmpshI}#E=JQWEEAifg`2_U{32??l}A&z>>m+_+SEG7e~%C~QeC!(6?P>uSR zH;g4swSGd)Elt1}u&l7=mKSEu2|L_8VW*of>~af)-3}{Egd6Wx6Hahz2q(I=gp=Gt z;bgb2aEe=B*yA=7_PULQeQs0XRJXaX?zR+8b6X3iyKRLt-1a~=;HP6LNC5G@NJs$j z{YXdv@k}HnfcQZqB!Ku~BqV_NQ6waQ_;Dm8fOs|%57YPX&*efsmPnPFdS09D0lhZt<)l>$W!)S7`J25Ox^5d*bBpooFmBv8aaZ5Ak^C_Phn zANqoyeNE;$M-F0OH?~kO1O8k&uA8r@eX#kpIf=C?pl9nsl0e zPr`o}bsnFoU?r0K$0?IJ-$?jMt>AG2e(oQKv5h_9oCJ?3ky8Mygg2tv537NAUYx;0YqmcB%pxe zj&kcWVHn6CQDWWh8e-Mquz#xXQL$C`aUfObit$MR(H#j1AjU^R0*DEbkN{$0BqUhb z9;{Z+c5mbOEX_Y|5)wd6i-ZIa(<31P#EeKt05LNX5v{b{}pfK?6= zseC^~-yZ`@xV`MYha0i5#$`q4BhN^QjYn*K);{85JBTIl6GF{B4`4yejY&uVv2-LP zfLJCH5>PUlEAR=T%@ugjCPcMt^e7<~VNnIYGzESgye}8MOF%-)M?wOM>KE|IToKL0 zi;E=3WIdmn+1mC4g{|kN{%ENJs!NFA@?!3`9bL=A9Gr zw)}e}6f34LshB?|e7Z;a=Y;=R@*Me~PbClif_=6gOMg#0HU&0Aj;PNC2@>BqV^? zI1&;-Y!V3xAU2JJ1Q44=LIQ}*BOw9A7LkwuV#`QK0I^jhB!JjD5)vLOJN*91s1>q$ z!namPdl%X$6w@{_Y6-FCF3X2E{3;163A=u*q^$@T-nI#$w~e7CK-29aApykpk&pml zhe$|>2^NFE4k79tqdy7J-(arT&Qzu9u+>Jzb_=0)ilHPRxpzfE0*IX>AtAV*f};0C7MhB!DER?g|20$W=fpePmQg0*Ip`ApykEk&po5J&}+QOQ#srt_e{e6a7hu{-R=4_fgXb zKc~Wh1i#24#qdKcQta3mS^|6l?ybc}C@59WpOBMbj5q2`_o(OeuuNkB9oh=c?XmqbEBjJMG1MT__6A;J$v z?-CIH(nv@Ef#U6+w{*GUC4fNj8X@7dvP1E9^Nbr}14Y|C&*3r0fQirmWm!CJLj))> zi$DU1_eVkkVmu!NVvUp7me9^sd`1I3nw(d%?FJ4* zoVjzef!*=FPVQW9V5_pSZ=P2lSU7D6{hlpCFvDP`!7PK>26GISFz6lkM*RUanvT2| zUY3tsJ*Y=Cnm$6!)d?8J@xw|Qwm%=6j0CiyFGNBDh%ZJ$0*KoqA;H$@2caDJuk5BE z;yCRbgsjGANWBR^l<-p%-Y5LDgvUvJ?b8$*w{`>Y;R-w=V@nc{v3_F3EiGrwEequI zbVpQL0*E^!Apyi)k&po5?np=gaZe;9;AzxcL>}{c^++9`4m#G{il!8vg-OSigf+La zFmtOCt8R4wb-g#HBLT#hA|V09eUXp=;{HfT0P#R1B!KvGBqZ=%`%j|2?owZyhlFE3 zZp-sgcB>_P@wBb%@QYAc_cE$*T*l*UWXw+89jjHQ4d4`1_aTlW;XxV>>}h$BW|49g z!N?nz!K>aEy&Qsl()>59B1V5-bP7kFGfQ)>Z(YL`#=t^E$pZXJ%&P=6m9>+MV1wv1=|cj}8xM^!Z)}4!(Z050 z(op}=sJ;Xck3~WPo`r4;pZT*;_SR9Kg~l1VsDPbA3XjJKC5-g9Tk!Yw=uZOt?Z6wD z@QCQedl9N`pWyu)(YpjF{zN1sj7;Z%5b(+9PXhey!W$@K+W%bh@*mQBx21Oo0Xr@P z3@JwlvEw4dVRFI_hsUtE-{~5{F85wxw;KYooWB`Ul>p*fk&po5+mVm};;BeT0P&qj zNC5HONJs$jbR;Bz_+BI=fcSnSB*ffvJ3Qp~q@eIK(W8Ws)zM@ItIh}SKZxEXAfX>d zLPD&L%krrRzf#5UcucKwJ(pN>?+?-aD2A4R=zbgt2_T-0gai;jiG&0ex~&fe^CT~} zBrma~E)7XN7sE+FM9)V;0*DtPA))OV{Y8i-j+aLy&ptko@Fykw2NNDAeZ{$qgTsg8 z;P4R+4wqBEu`JI`v}mq$aBKi%3YIPJ5_F(H{74l6M?-l@GmFC;Vm!PyZZ} ziH-Yd+B%daV#!_0lDnStSS7a);-5D-r0dnZ=I_(9?64yMo1K30vZL3$ z>=+^`yX&m%1T%&NEW59cQFb>%F_hiS)DK1V+gMZ*K>RKe5=LvnpRyQkBh=hyLqxxi z;UplUKSV+Th(AU`0vp@)vB*BkBEwVtv5V~UET+MGbbXXp+nZr|!BR$f(L-Kd^p}?x zy(i`MF)J^@j3EKb>yei7D#nOAEw}i=Gv@YQ0*2uGs4MdHa?Fzi5U)f+0*F^5ApykS zA|V0#vwd!px6eBebL`7MOZx0x3I7yw6z$l168_gYpN~8-BUOjrA7c*i3uc_j9w8tj zj{=#IzelYkfOstu5#EsQI`d5)xd@obv z72nGgdByiKMP64;Pk+GoGDXJqy$rSlXe$b47|b-7WiZ=-`N!+#3E10w z5kX_iUj`K%JLk_6ev}RTXcpAm@2En>{ee(*e*&-{Oo{180MQc(2_SkSA%TI~4UShV zO8i(I^Y~hbxi5y3fQY6>LIQ|-BqX4Bzl@+Uj~nHA)YSKh*eY*jt9+elpjGmH=0oGS zwnZ1Dx7w#!4SojJ3g?a-!Y()1(Dig(uh;c{U7ytTm%9FkSDOzG$L0$*9`J2Z*srXAl?8L#V9(=3PFs_JV`6eg;_&pOTgq z_KJV*@vnWDTRj)P+I!l9U9*0=*Sm)I@yaj4?Q_SI-&t^4)_=vlzy8^RiCO>aYuDdg zaKOT6a5L!w>tfHdwD2L3%$kh>&4r&6!)zLJ{KD(RFw4dqw(vqR%)T*u4>ZezEC+M$ zGH^_JkOgASZ3p%%53*#;x#_@;g@j&Ay##_Q#eb0ZnagBqV@X zIua5b#V);l& zXtfo(5KGKoYAcLS_|#UInDC?63dO*R7p|ym9Y8Hth&o6B;UXa+4mw46ylBPnvqSh5 zqjw1iKQ9szFo4d0&(U%+E8%y@Yig8XuHRBznt)w402LpI=|})EKN1o^tP}|eZMN7_ zN$Tl4Xmb<3*k{9AED3)|p)J}e>y10nUtxQlze4|`*Uve#d)oMcspXEwZD?QFLH(DH zD~;Q`yJPyE<2%Ya!f&;gvU#)dmQWKz=YtH_TmWUe@p2Vle6|I@z&Na0Dq$DC^hNw# z-+|u%>cpVaL}Jxgny2J?;JvMczdqqtOZYFh@mT0IdB3q7I#~zm8(m}b-G?KdU2FrPc}$ZP5H(b zz=5HXrgmhgUQj6bnTu4r;_bEJz{_Sx@8TIa`9U<^B!jzSa39?3$sD$gyF)(KM?M<2 z!@b<#DY)6V1L8^@k_T#o9u$wO?ADR{gQvqebQheByK(8O_EZOlCq#vLq+)mD-gx6? z-C%LI-S|3gB!!sX9r_YO*Sh9U@2L&`4*t4ymnUO(H}1y;=OaD+0=#W7<-z2^Lxd+iKm* zhwxh>*7-Z8!L~-Q2DZ|$Sv!J$f+5@4Bqoa*uN5L+>zvD`Cb97(!r_d@y?VPHcD-;$ zV-iR2c!!OzZcB2;C^y;@4FLeyAM0*lPpo@+M2xMl?v+0JLNB%`C-!!~F%922&JG79 zPW9`mxY>i|?_Rc+8`Rzq1;FzLyMrIqPm})L(_n|bhf4!nWT9dj*aYit`~a81BU!#b zr1M9(gy=R!bn9HeoDZ}8^B}$QvUxoFng60@S{N=?ohF9M`@ny;B@^c5t?3?_`G^9cnl|*Ko4m2>yeH zlkrTL8g3^Id82P~d6@V{{X3|YLc_`KmyB{!xo1-75geonUD-?AuiyoBM!E58$bLOY ziSp=8>yv4c@Bcc=e!bmbG6wfI=-z_v!B3*XjJ+7EwQ=gxLo>0z?>9!sQZ{1&I)ak< z4U%bKF9wF66i#{G>UsT4;06wWG_^fe*tlmiS3E) zb?DECuF(e%@tzGbjCJTQyjRz~)*@ys?ytBTdLFh=ATlK99F+z(Q9#k-spTPTpmh5U zAmi0nUD;e3*hPUCBNPT37$KU*YY+!JC&f`^xfXxLO>Ag%yNi(H2KE~eHm}W%pVmO4 zXcwnqW-hv7FnPS~im{BfSI@;%7JDJxFRb2IUv%*eI^-X352LJl>O=oVm{XJX`F3+S zYtcDGGy5;(FwO>JG>|lh(_#)=n;J{eVP`0`lnF1)?3-R*>J1y@G`RIl=TVW}FHCKv zJKdXL=an`YM#k8m(YFo<-T>?c#(&Sk{<;m0bF)$jw@NFZm-F5$u*sGIPJ>;xdcr>g zH~D|G@sq$|ab4O0e={LF#Iu$SZWW$k$=_d~P548^`;ctHO_4QZYfAuZLX3MQe34Va z%ebZ2@Q3$8P$8S+=4kdH&X3Fa!X6Ccz+xDA+aNr~z-W6HMOc* zi;+HqRi*ZClO{vbs#0l~RYi}{s@e&1xoKC0GONl6g)ys2VqrLGtp=+q@mJhzwW>m` z1$#sBEKa4+qFO|yn7#4#D#es-ubR}Ng1xb*q6_wh+G1{Rv{nMs2=)fW+}==D)U{je zje^eYjYG}ecnz(N_QrnbUa7r-m&{~uJPyRI+}>C<*c-b7Q+tDU#kJt@du^#*!9k|Q zuJ|qNg@X$EDfU5l^z?lRO*(R$f^(B> z3f?oDqO+$n*c4R9EQrovQ&5q}BsN87uqpP!?bN1Vq#c82(5C48pSLNfUYqG)HU+h8 zyYYW%Q|t$IQ2P55nsf|a(q>bT9LuJFbufxeK{nbH4Bc*1jPJ!9yJ(xD2-ad#w9#RD zZ)HcZDfWgE!KR>SHpK+k6cfy*!04REfr+)nrWkRfJ<$*Vkk}LxT5XC6Z8pUL&|;)b z!4^8wrl11&4vu;!HU+mvw2MRIBC#phi@C*d5OH`nTze;#-KCt+#%adp4eWvp6BC<) z;SiJA6zYYrDXdRYfnZa#YiKq_qG4iF^!E0eO+n)#u_;W$9)B>R4I1L<-G`_liUk7= zZ}jz)hlz?+Z4ItXzK^!Mzkq*fK34z8+fJl7G+-? zf-u3pP`vF^*|gqiW?#_INbC#CEPl2N;X`KYWp^1fJ4kb;$s1VF4-*snLYb|beKED% zV@l(zJNO!5U+~vg(1NKVeuE{kFUVNS#s_?mQ~Sd1S+{4bseRE}r1Tl=3-txFFBp>c zg-XNh3wk_tsEjo$f1D?DDcTiu$e-C15(~3IHpSfBPjRELCn|_D%nisWTP2o(T;2C{ zW(k9#6T>DCxYxioKYw^mq=Gv#)=336FpT&H6KmL-n zIy+g#WfnQt>IY+u|B&X?!*C0l9{~t!^>un43dwj=uKBmwX60+N66_ z!WWY+zUxc)>o|~O&$;{5mIpP*!V7xAafBuv>4Tbl8PD78%Xlgi7wt?G-xVfIGUav* zGHuf)2C#+wdk`Ra|Bo*07cr&gk8zltwwc(bXyz)t@n3&X(?Ei#lH& zDSoVN0}d+OHaLMed^oP$Hn^N~iftS42Dc4}$rR6U`L+Q&J|BMAFhB*u6yL6)P4S6_ z$rL}-Q@wwvYNrSi% zr}#xp>nFlrnAR0n`?NmRwt;1Esy_+gLk6*JfUmRSwgGQ&+klu%>&jrdZ9qlwYb3ai znAXF#0aa|>HXvhN!rEjyt=l~-HpZGx>#fB|pJ7^88@6ekAvvw9G;CU@$GB}U1i9R_ zt3uhffe{L0Q@q4tCXd?&iNE4zG0pQ~OsKW6ZJ>A-r&73Wu!u^rZG*R0DW+_D)wFFJ zEUM_jwgF@4$+rz!D}iZ*Z3BwAF{7-gYqxA06m;A+C~Xq<4VHxsb2#ji3)^g&TZ1jL z3v3qL%J&WMd**r`@l#;?zQOXaU)I21V&ia>Y1uc}8R5Pv8|P%)f{k-3AlNvYAfcD= z_g>gJdm-IL+Bhw?iAN;pzNZnIbj;tS{rLj#6^2QR(P1V=6CP3%g8@1QfAs%nVw5M3 zco$?5CdPl=U^pFlLOGp5Xwos_NdU=rZZI(PJ1`iEU@Zni8y)8ER(2GFVHipTgMs2` z216c4yTLHxMth>~#9%lRS_D0lcQ4r9Mo#He0H-EU?_||J)|AdZ#3}t8;_xZBa!S9d zn9_NJQ#vu3(itwF($!xurCaZz0%1yT*U+Z)M8n0H(oMrD{#-;GG{ltt;bKbX4NmFA zWJ;HY>6C75wpCYhVM?c%PwBbhXzOR;#^Oxr=fPi?(iPX@%pQEd!ZJA3zaQa41~H|7 zq?poqgHt*&nbMWPbV{e9IBNpev8HsY*gB2=Qc z_)F$=4l@=0q-1=@;EH@sKOeU+r(XmJbNV@$&vDLO35U;=u0#CzDJk3>xizu)bNwX< zkAD3@LX(d9hqll4yjRTi_O>XKje82C%>EbSb~^hrijKi6F@67kY%qLzN1u zrvQ5k|CeULrBDY&`XNG-juB=7$#-rRF!Vbx3yNSZWb)3d0lOj1f-8x`7vM^>0AHfSl|FCK zEFdOk0mJ2Hfw~sV0_$j0AeaU18k$*E0;?ikpiv3lz`dR0_?4MO2EJ z1#hoXOxgCTX)_BJRdm5DU<`#>&{_#hBbWsgbF)BMQP*xU3ko`z1#z8!XRrxoVLnc6 zf*%K);G8y_;7`FO=)v6HZWHVY?(kNdfMZOHO>hqGKcaR1)wl(l;CeuKKj2`bSw(su z#UBpK!i|yk0DcfJ;fqHVi?kDPLRJ#!swu6{F@~^_k>Mi;d73}5CrAzcuu=FJ}C-tkKYzheR1#XaV`ap|k!a}hH?sBB_>@P<9Xpw4YK#kLsDtXbnb4$T@LxU1(!

eTYJ`r#AYBD0p39 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 literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Network.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Network.dll new file mode 100644 index 0000000000000000000000000000000000000000..6f489252bcac43180ea2c00f1d34e9f0e867c91e GIT binary patch literal 1688488 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�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ϟ^>iS>c2e@A+9ZL!8mIagS8Qb{(*n9stsi*h< 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%0A1D-2}tFk)?~LbXF#t;tOVz6RTxJPG-OH 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ΜA|%BA$CBSaR-=j2{64;zxjRwRk>Z@la8p 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�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

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

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

Yp6{ZT^377T~>Z4u#V`m zNE4T(rszZgmvtg*lgmowrf?F}X+Fp8<~TOBXkl#XPw+V$n>xQRHnmn9o7$r=HpMZh ztDxPC|Cuo;p0P%RlUXC5Z!Fhsj^WH3<*_Cq2_9=Q0CU`WFvsoBC5YMXk^=Q281 zGCtQ|W-$}VS)a>l%Dr2`WBv~l;|BG)47lK0&F3=iLW22RhF?hdEPd{5goAyx0-=vT zs%Fel9L(p=f5seh7k%z9X3VA8az3{pN6VR4Yxvw*2qOAi(pod-k}_cSayPlF5{i|^ z41n1<)eUdP+=_^z+UK(CR{LBAfY(bi?u^eJY{ncjy0t{uS)Ao|>5gywTI5oUbuU^C_{!pguZC^klj8FTm}(r3&ufivca z8K0{Nvoq$b&*o#L7JV*h;&YS0(brc(LM6U%Yq&G!Rz;rZc~x%F5DhkC&Klb_FbDZ# zV=-fHJR55>=9s`4bHt42Rb#U=<`^_yxQ%6%=dCegj^W~6+gRpj%$aWci+wQbc`eO0 zD(lI5UbQ*(i|%>TEJJwS{0?H4=y@4N^t>#eo>%pl=jDpo8FN~jUYBpE(0b-`YlWs6 zbA^P|;~s!Q?7B1qGv?UGt7pt1rhUovg3;yq==>IM)_&@r* zTj3q<&(E3T5u2Mc*Nc0RH_7L%h9m^OHXzQK!w@{@)79;Svd@NJJRJ8f@se_^P|Igf zr_UhH-)AIi4dFAm&MDGCiXoh70$CJ|DUs^5ZyPpU}r2t9=(6 zyEvDQ$;G*JYP9@^&!uDR<~ACm|6tUvFglCZm5d|t*>&q6L)MY7;&SgrbR-KuyKYcN z!X^~_g*g(oq>x~agbgYre3p*na|j1}Zv#Rfe^gDoqd1r&ng6sq<}NytVNAPAv*jE~ zL5}7iuhwuR>mrEgNJwi|1WvmnX8eyDpPhDR4dAlM|J0av$8hWWxXe$xGu`$d zdvMnOSek8Q)|2%=YIC*!NwW;$fATwwS)%`87}5W*eEJ{NWB!LL`k3D);P`Zfmda&g zekLf7d7(kV%&eETA@xHX^UL&&I4MnK4QDrV+;528Y}4)*Y&ToL#hslU_rtWip*CL} z_hSj^w7aCYFK7!n?QVz`+Q{br=@w$z-Edo&OuNf>HEzW?vPqhZY^o_b7IPz;shkXk ztsCdvy&S#m=L_EUSoltkZQ@Lmd%wvW@S>bw*It-k_b`4_|9e5F7hVNE_jCB48EfO& zJU7<19LoK%yzmxCLZ{sZ5Xaj5`H_EXtnCX(sO5pF(*qOd?}3xGhVZ~#XBZxMt4u&y z54?3ozjGnH?)J!!^ZO2jKK`gV*2d)GSeqJ`8*5{XKC;GG>iZa-D;a0&V{O|aIqPg$ zO}Y0|I@^VRaqOri2DzuqfD1m=oGs%nBz%?z_KOGyyJSZ~AAeN6YL?<)26p~KYRp|U zu)`QqOS9z+Y(b7*GOyM!u-hSsXkbZe4XGt%6o=HR5{i{B%#hknh{8Io3@m$Ym4UT& zSUtY=gJqS0Rb<0AuJ*%`$-lcEpT< zWxiyqV2QvWo6yut7R&VAsHI$R8VsLAuFo zpbgS7frE6!j7e1kvx9UD6d#SkvdW~^7^Gvk^?h9C2kA_=eZ*dxHK~?n88O{&_Q z8ayAQOS24NQu8~7S)xg07}2D%e413%VX<{J^5o$KY}LoR87-0Pr@8(pS^o!LayGX@t+{Rt zxL`lbmoV-^!e{AAzKU?LOZF%9@kf;}p}6qAgt-^Om!#QpzN8>Wi;!1q_>z4QMD!)3 zwR}lZM$wm4B@`=N7+-P#qOcAtU&5YSPG7%2Lmso_AfgTha zBZMzmJoP0^pf4e2e2F5=`Vu=L^088jzJxUKB}w2ok`6?|aD2(ZSTFh#l{H*nVh!vX zI0X4)1K~@SNPP(t=u3zhU!n$PeF+1_=LoSJjxS-j_!1$Od0%3>?IZTmtS_-N+mNg$ z>r2$;YG0CO8N!$3cM7vaU&1h=FJbxgC921K30KVe60PmNMC+L^sTG=hNg<)=OB5D- z3Hx=mFVTL}A(QhZsr-M*m+&CX`I0N(U4E?bl3paimmCg=zGNMY<@kGI>-!ExLM>lH zoxX%Pe_xWUHH0tWI>YcKhh+jveM#)T!+1vVNaV*MdK96LKayt@lL<&nE1D0rAZI=p zh?|cZR^tdHXRQVcE%!dQC-m`0mDQlQ z@K%Gl7s6_!*>YB+AjhkIUaes@zJ?&8)gY~9HIg!lR--DRSn0x8jR8avXfD1{7h|3|ODd$4V`l0n)?_B!Q!^AB}|Jn1N%k zUNi$LYq(~>8rU`PP2`Uagc-nlXnc@@2{Z%5j2Tb^vu1#S;`_B&4#x~I-1=Dff% z7{mCPyuh(Yf)_Xu5WT?N@B&{(`S0uA$?-_2JJw^t(Tc?)vgJf}{6TLLYyub{uX-#koQpi?87BsFKYpG*_DA zd$-g;S%v2KIs?XOR-rljnZ4%TSxdtXBuVx)-;=R&);KT%d~}a%HZSx$w+==2jBzO8 zE4}t|c?O&D2TU;Iz?cgOgBypEegC(S-~Vl_{r%s@Tg+WF4tSB%{NA~hX3H6ef*h~md9{XdI0ZpO z<3MW0p&jqsYPWZ8jkKmKPFy{6(~*)B&^6bK`X6_WV1y+6(X8I-T2;pQNt% zH6fk!!!(Nr-$n(m8kDim=1pwN=5Zq~ejl6H^*1kB(?ZNX?Fv z>-&?yaRi-#gi5*URiNeK#GbRTUbG`Bt7u2Yb&Rw3Y4PUC#_v+WWM+>MLCew7!qwR@sp;l`(vu)|kxuv>0xEAD56fLpbq$ zTBh4RVlU0w5lgdE3hT+*5w*G6j-*+Jup{}M!Yt8_FpOwNSU&BD>M=XQ6{8)&7h2lAta1lMv_cNs_gO@FZMk7@p+(Oh60fNk(?blk|TVCFp836Z`ag_%UMw4GQI+ z3fAEd$~~R<5#7qg_>F`65<(w;WZgD8Sn0wHb6n1CI*40gn(YdF@)f+w zttg`5yA}5PYPZ5d>id|Mbt{9-@ZkB4gC{>A_MeL-2TzverP5yT!~_nW5HoIt`C#MB zt?*!{1F%D%0YtY_jL_UlCc=zc8El4!MOYcQ62-;{F?ceK5!wr$n83jkV#ci~!tCIQ z9SQkZsYSO!nz)rDa2!G3M*`f+{W$k$Up-LeR(^=}qFYf}MYl583=eBy*T7ZC9~+3l zlj&@rz2J!n96TXr+=?2Q9Xw&6`1&)JRc@um3=f7|-^XQs@Wgc6N9?6pw_<6wAz4q> zt*Fh_ZY9k!gj>n)6lRHTg<(Xu!t&`>RFAn8u83*Kr^7`I;C2FpXlJrEy?P*(o5ER8rzPLl`FWhzG6}vZJFjJh z=+W?6(%ih3bKt2s5BC<}ia@+l08hEw_gy}P#(BG$dAK}fjR5qKSC0^ zz>fhn?<-w{gj&9hI(-{){=O|)YY5-Qb%x>FuFV9rK)x+HuxOhKE?kki$cz%;b80ENa*8_D#Jx_;qNOk_d*!1G+WMa z73AoB@@fsk^%DdU4Hs!G!PM%0xH}Yh)2t27ZoW zV}!6qvlyXGeq{o!5iw(p6k*mHS)a|vN-bI=(&WBU5;*$$&yY|V#^l#quwJxADr-2` zO%CK(1G@%(f&8(7uts?IzYpXvf!2tau|{fO)*3O;`aUj)V~rSYeIJ*3Yh=3ZBlf$j zHL^6@kgO+bjnw99Ym{ag!W!jw3bRCO#4zIZo#oRSsUEXNTrqoJNo)IkC9P+6s8(pY zuT)4#t&mNARah9vVZW}vucZB^Lne1$DV6{4+*jf;nj6RAyRd(*ahzL`1TSzqAdcg# z13%((Oz@`z#&Ld$#9DrUI{g4~{(c}?YY0EUb%x;wew7I*eFi=D;9<-&xfA(ul-@uum>=MP8HVHwpJ<`#w~Ls&=m#)t zGr!wKX||jnD9G{BoL6i3fnOtt=m$v6547TTQLEi9YO|)>?V`5)?V_Y`e|=-I(uH|T z|NMAh43wn_Y?bX!;)`l#0@YXDq#ZO(n!qs0p^3V zv7r(jh42G*OfrDz2Z|AzAILTpzz^JyKi9HDC5^=!I}c*L=m%6*(GLvvE^KSyn1P3o zKQ<6=Xj%{4YCn)>8Nv_bcM7vaKfo}eA7J_P1FFaT09V9N$+6)y&`%{&-n<{-qJYK zri()*EFpbMV}2*FjyP08nmo&_rszZg7jyw@(@;q&H-+y)#Q=xDr}6*tw}^Sp8WFx{ zb@E-<^hdYIA3cmD_@l=GgZiUKkyy(gQKvs5&fgy;YYpL#xXv*A(PNo_7RDd_7Wr}3 zdWz7;AJzVdX+?je7UcX90~x{}J%Qw`KVqTf-rZ;XPyXmqWUo11!te?<$ovtbEF^rE z{^)lI2V4JXLLYxr`6G%8?~j;!A^cIAE$5F4a5gKum1rFm0|d!XR%)NM=EPL7f+6tSOf8mY2=R$gg;s(^+!ygKO$!Q zks6rwM+_8SLdJ49{)pk?lh#<~{gLUmkJ#_B{>aj7L$aQ%KT?}hZ=vI1DXXBquaKA; zk8N?-#M5}vfmloQM+_tSBNjn_q@v6paYgu}i%`bEAHnPUY^hx4k4#V=^GAh9Jj~2` zX&cfoFGdxy4@7^Ya)z^u>5qok#paI|Y!_Rw#T~sW{m~@|)cnyq1ZOt9K3N9C_J zWZ34Y{4>D{D6W%v*2!OF_%bqNJr=7e_x^DvJl4X$$Z*il1T)}*m9l$MjJuHVS$eF$ zA{^|J*9m?6(Ywej*v2K%#p7p!DGuhb=KsDz<}P|Hj8V;R3@Xi*^H>Er+MT>w!(+XI zAfm@2HIJ45OmI?0eEndLd#tL2Vx=(yU^X`z#u{3d#>{*C1v&U?CL$uI5?EmQ&;(dj~ zZDI1h!hBcbR*W8&H1V)%ijGBi*h9HJ41&WD;%m=Cp0oDVe`_ad=M zGVkeDcuUTQdJdSK4|O5@CiOdjS)K0%YJ_hcga4U%QaqdIz7u>r(r=QteGf_Kv>ySY zx5axZ>h8w>0}&IyQ_OD?<0J7{p_aF$PH+4FF?SyDmK0U~fAnMKy&1yHn>RD4pr{C5 zVGs}%0ZAqdm;+`+6tfQ>=DydgYYwaHnq9-1!>(!9HD|<}GiEoaYh)1>{Qth^RCiTZ z-`ls}9bo?N^LbU>=TtZqy6StYyQ}f1vuz!!gKY`ZgKf`G3`*Jd{}Opz7c9yP5_#Oa z+vSWH=-0@+e^C@o34g^aIT^d1H|m^utsWZ8OK~dZ#cX|>J(2i!-e%%t3cgSgQVJ&H zh1CsWzMY`piQ9Qogba3_f+qsMJT}Yv z<1rUT8;?DGbbaucaS}Y9Uz9)mgU-NX?c`nIF$(Y)Kfz<-)p*Pp0UrB^fdK)Ja|<1h z6AOFbv0J!lw0pErc&vyO9-{z{@e@2Y3sXGyE23#DvI>tmc08W5tZL(RHEBaSH5&31 zkL|pL$4GNLUME?=W6P!wH?jEXgJ0^s(+W6af; zh2=K!*yY}S^xzbaUFVfdJ}DksnIl?OcpRg2;Bm9Th!XG^GXfryK9im0<9JL!;qg_$K$m%vm2Z@_Ezxt zX*C{qRbRkkQiyn5_x81x5IpWEq2uu-T|(h;-xAh%-0W)9V!&e#Ydp51*tIA;j^DP6 z;(9ypnvX9Ce0-0Lk6#@4`1TneUljQG${7d$Q0MS*A$~^TvMOM<}27 z8y_#IMB?K;8z`ig(0XSUo-B-Rjvo-fM$-Apw2NVdGx@@ViJRJmS7% z!-nn$+;@);xbGF7Z{MWMREo`bB`2+~4kO$!e)ogvONm6Dft6yk1}kOafGthw7*^U- zMg&&ka2zYuY2>WbQskM=!b(fBBG{Qc-cCPg(+ma_CAvN|L$8Krw&D*L>9$e_AiivpU#PiV$0 zOliiuY|~a`;dU*De!F&EF{}+&SKlJV(z+|3qfsP%oNZlBEZY?>5R0YNXDWkOynxH2 zeH1?wP{eW~1@y<+P(UpB39(oKQ)0nTeYIU~A7a7WqQq?yi_5)@=yxfxxXvq*d{Sbu zGRN7zB9<7XgIJo4LXGeIU%`mQJ50hE_V7*yr-KHL)9;H}s!(7p>gArj@R$3$#KCkye_GKptT( z=a9L4JG(PjQEZ@C+CDgq+-#{UiWdj>lJsC*E!FdE^O`5m)VaR9+j#eHpm~#TbNpPs zrqOz>>sgvhnX}&^KcBPDmuy~ha2&c(LqW!Sg1Ms264_t!JLhs%-LpPI%j*AZQ6<~%-I~)b9QaGy7~c9^qI4-u5e+_ zwzT>T=*-z(z~#|E@k0SMXWuZ+*(jK^@sl~*3YgB>7+RFLedcV;ElS+xob7UNBl=xB zXS>cTl6=xR+sYj0yK2skQ99=AW}^@#%-NU`=4{eu&bEAf&L&_rXJ1XnMd_}^@;TcD z7RTr831%kYVi~&TY)hw46EkObG_lXwYinXRHgD)`&hDzZFlUoOoU@yaKptVv=CGc# zttd87H0JCmzRc%r2Cded{U7!_`x;Vd&OTJ$#5wyADJRa^he@d+;BdT>llGjAE}yeW zvpHw)kR+Y6iM6o${z-GTC2)z&*+(cdmEu}>B`2*p8{y1zHj!tTvtzWzoSlio^x2e- znX|7cBf^}`;kY@wP9vYQTZ%l>S?25`Wkq|=rXRHDYz!z$bbaP*dNp(Qb@7J>%Vo~i zSXBMaM!}qopUm0BtLJR%%$l>kYhyr|vvUi5&Q2`sF=xAln?^?|*E66T7i_LvL1(S<&8q;h~wXsta>ADa1Lu*$Ctj=4=k@ zIopb21BK@7Cy<-{&W_^6!4oCD41Z@cXw46ve0_qj+KP7D-isyX~j7`?<%=ZFtfgkIm?BVeT2vpS%1aQeD^W znjgH?!?M2cPKEfOmHPzQrgGn=C{NOnzT_@frN5!Pl{2jLZ&S2AwXf>i5*|Fa+h#A@=qYpigtC$C{6G%?Q4f^ulM3Q(dSj_nw%h8vyE-b$ zo61$$ZYFQ#K2uwk*lO9E;|*^jmzKR*Xj!CcS-hlWiPEcOEp1D*(Xvq-TGre3@pBuV z9^3VKFRt4atCDtIH+Qbe{vm7ETS%p{pIVf+)KO91%G_JaRSn!m-pYNg1|Fq~v%dXk z9niNQBR@1RX{ZKni#I$)E;VrTPyf4sKC8`?u zH-+=Q9mNX+z0eu^_EYCJJU7F$_bAFc=%^^~ zXzrcNJyou1;?D9`&YW5kq@*n68dhl!fu2QKU?o^a_*HKa4!`yqyRSldbZ{>c|u5^;n zm3}Y0;oanNrJoY6bfmh{@scZ@C}Xa4OUaT*ukusww)N>! zd0U^MBYg|Z-20k)rd*Zue)3lCKeeq%No{?9yy3m&($=>OZH-iIjhD1FQF^ttrEQ5e z+B%B+wKY~X+M4VB!*<<2Kq|lPAEYCF>CD`R$W;wIRNji#ur;UYm#Sa)8Y=C&S68X7 zd(u!1tl$kFD3=`SL?unurkPTe-ACWg-un zO5waFqIhBOX-N;Ba@}Lq{NOW$Wd2*2`=8UoJfH!=MTx#Psp*E1JHt>?#AWE;=u(U1FMr}lKsEvwsUNE=eWpNyQ z&710R5WAB4SU>lHdK`SBRH~1=7v+<6RFqFK_o?PSO|EL<@8qpK*lMDKdq_y5;nVSk zPm;@Ms2>ByJxDbg;w7UYQO1mhmXalrj)qa1agUg;;vTY1#=^ASpCOgE`?GYUP0G!E zj=9e@_jz(v+ULt#dC1guCq1?M3-E@|luNto7mqP6Qnfo?((Xj*)$W$ICE95BDDK{X@>U)?t=&mT?fz1{;S1%`?za!^j#TZAm$W-k z#LOGGDoOnq&i87{~mXalrmNQBxmy>Lha;7})@eCO!WlY=h%~E+=zEwv> z`8IRkZtgqes-*9fxAL%QB_$!1^k49XZ;?w$?-WXkR3*hrN=lS5CAE|+iL|6qI=L;$ zHYul%Rhs-YSO2S2DyQbCck8Gq-(&83&3&J_|0Y+Z{dajQ`VB31IY*P7&DfvS0W249l2W|xU`6n4!IzU*Q5Jv{B({~?w4?GNgxC_iNGhvljcJ|b`B>}f4d5^C{} z;tf9_mloF(CN?`ERg2>#El!j%Ep91U5^0M^X;N-R7U+a{e+IR zy_310lB+U)THeaTt&Cq$1z9_PRR^^5*W`zGCJnXoXYhs}mrFZqAbl=O|tnd|T4GohLFXcFhmI<6&v%bHyS;R@K2d zQh6PmtD~a)oVlNut2+3CycI2(sIPxlk*yBCrvvKX`|?8_kcR5ui+ID&%B2ppc4>8h zRCR!N@wO*cbwCs)a-I@V9sE$xqr1N}b#ijIo%tLA>q+^@@3O?*S%$|J2Nx>hPkNj33Jyy2JSQWJLzHGxz$ftUPd zBZ_Kb`bveRZHcNT;z~sn_xsI;RmpF*l-Ir`mFhub;CFOXl;1V?d**)M+#kqQZJZ}> zJIhajqk6Rv}lV|CziM{o$Q{^xkZAIqim_Xwp&s?y^n>vlv@>8G#A zTH2PVN*`BbqqyI?9abglc4^svA(fZ?zjUORf90y||08eZF;mMrl~i8#|J6}Z{zk6K{#$t~kF~OQty&OU zW&a)C@YixF`)Q%^}EuJqM`w zQ#Bv_UMf8^@JD&!nSqn^K;cjI|1dpU_(nZ5xG=blUWi?puz$%D z;gy`|qjQ7J8iAMV?Q+ri;{$A$n`}c;ZH0Tj0;Eq45Mg2Ur`waQ-priyH^`=KO8dao zUrV{NU5AG**zqCjR(~haU>}L>VfxhzWn{M1o4++#mn?m!@>1XE{z8>W_4H@Fl9Sd0 z3J9BTO`4_i8})UmbYt75wA$E~*!dF*<2Sao_`dMSpudGD6s$5(dFhH0UHXK=q>XL4hS<36V*KGB*wp^#hXPbd%|Sa^Mvdi%<8a+fD>`h|DB%eOyPEXNTf;o*^Mr!sbE=65s3#PDrjyY{QtMSVb1jyB*eI3@ERHBY zB$HTDnVE!(Wzc%v#=(U=VE=O+g+3781h6FgG_k$6h*?Wxo7kUFSX&djv3WzEp&qmH z3mNJgw{=xrctU{`;>K;wMj(&ygaU{0tv-rkm!aP3`%iMSClss`n|N{XUy{ae0BNPyVW#eD(H~eA zm7E5r4R|FdJMNPM3%Up_lrEHKS+zADVb&{3iZCRhJtX$sDTI0cVJ(F5k3Ul-DZS{+ zJG+u?Hp(1T=^l6`CoQ%?I6K=Adj__N(Hd-%i34UdrDND;K}H0&;cy(=)M?~w(^BM_ z&cZf(%8EAI&=K2gg8@Z}t`FOA{lhk!@Q3qqVVnCzwm|{g;3sTDyqaz7(h}SFg@yrv zZE_2pZ4wK6u#H=|d9+!{1`EYD_l<0W0=B_V*v2eO*~a^9(^h1GZ8)sirZ!xCT_05I z#WqU{7oNVfwE9eZJbmc})Z3Jb9||b8IWw{i3fKleVH+!8$~G9P_owCdVH?aXO57&f zxZK-_ewVV1>%1b#CuJKebL4^w8e)`$C?YiI?vJLQW}^@#unlH}r!Pq#wy}JiZ3tMg z&E7iJd$#6UEN2@RSR7}Y31%kYVi}^DZMLy=`ZO_Y)6vAvHfw8QH#TqRjBUEAF0c(L zM7C)*0(k_s;jm^KD~b&i4YrBmoNW#jPn@aWi7%9&e&0})YwtL2;=M)bS@M-P_g*o_ z0rItDZi{X97q=X$|KuG8!;?aIGN40-Nypod^9wD3^kBB`39>r)4 zJj%p@RGQK;cyxIg5%7q^ad=dxk>gQIk!Ly!9$iURwDE`@+QuUcC`xpF@Q5JIIQugHe7vue<}Jb{T!fh0go)LK658{k2D5$5XkQ@Kq%a=Et={Vv5L*Lg*fPl`uY=7<&*9>pjf zc+_kZq69p`jDSa^4<1=QjzLIr5{VDPZNVj9Zl?bw6-R8WAlc7pnA;8uVtt&{d84bz#~$Kc+_kJ@(6guVU0&t z6dNdnNB>K1w)7Lli-X@tD%h#^fVh;uX~dW{KlrWZ$$j#ZMOnJRs`2PRsl-QDm$%3I z9S>N)&#~VXcP$j!S zmBPfVk1zI7SDKtP?~Y8*mxf%=J0g~l*{+>IV?#!9)sQFY9U1<3L1qut?dAE`ad?k} z(zohg58$f)uPK%4|8RND`aePvy=G?ak>+08-0R34Jl5*}ZB_lhy{i9r#QG;;>i@d< z!^7lK{||}vkAnKgPafAHp6dT!8ug!KeZCaiS0-fb^*=dl>VJB^b^TjHX1nTNriTkD zio+*T=cd#@rEh%m^t6q0b9$^<^?#I9s{iZD)9(ZQ9GUx^ejg~Wxs&yqd zd$aS>ATPp{(!@tEYkeAebFLP~l<7UavLEZSBBo zmT4Jpdm;Pk@ z;q~P5F8xCp_%-`#;zhx`^!Ulo72@fK*D*58FMM|3^4Q zw{X+wrb;$gsCVgCu<)}QeDyM=6ue81pZr`g3)6S${fc0ainb#2pDTLdRLAyvWppDQ zCDp5|>BdM(kCExfXpM>oe_Z%)0Je-@SX3N4uxB?{il$4`FxSY@T}<$Hl~L%+LF{m$=t zkNKbl=IV7;xy|?TUGD8ok57O4xXv4eeA1sjR_6G#VTXDdcfDhjj-Niw1|~}Q>4O>J zrw{4#)5r4hpFRYve)`-*$3^L`#qys%F0eTM(`SO2Nw`>s=1-rbFNL2!mR6r;=I2jG zGy9IcYinjVIB)Fq=Z`*U(N%rn=MO2wck}IP;p$jx3E8o?qlEqg?~*Q|cI@q2!g|Nv zW>=#Y!w)mPVl6uTB1Kk%Zs{#`KC6{`ArjjmMIzZW#TrR(2ki80yZ?@+CCr|aL} z5_huxt%oNX>)-DW`}KZbetysY05RRVg`fra{a?)NGN0+aQ zTL~KL;uzAgE`A%SQ;a3ih1KVZfR`2qTjR{XCX9U>Fn>8kUb(!SW%1ssKOKO18Lc|T zVr8b-l^A;mnWNgjBVNf#Yh4`SB#fQ@NF=dyjP3DAWQ^9p*i0OVvMCKcFU8o~%7}om z9FAKTuhYoa#aoIz(^=NV?<6bQph*vHgC+)O2M6rFj{4a4mFv>eCOs0#5W>3nUGRse z$YovpVUWquhH)rZ7spRPlX&&IxLt(;O}{2FAb@6Wp@U{(VFH?y9*J}dH;?YBWP^oT z7hlCfe*DwcXqtuTy14h*rme`rx;TgRx_E84`ueF-^jR0bo5BS+w6t<+nDj`b z7jWz7?us7@sCDtPDWE?RiGp=;`~(iIfa$t8h887m3l7IT5{bD*iQ8Nkce%F_{Vs(= z*Lg*fPYQ=t<_K059L6XeaM)}Vq69d^i~xtE4;)%P4u=F39A2OfKDx7xwOxm~7R%w# z1s2EQaDtghxLAe=hksHQ&2@20r%w|Dh8<1p*tE7Lc4PB~ezjgRgj zmH6m%c@z2QG$||MNcjjke1t!pkLpkzd_%Mp;Cv84Lm-CU8 zputBN(!odfmOAAl5?xsR(6x4okG`bnWBCa4G7NG)!pcmsEBWY5nWNgjA705xi;ob_ z&PT+afsbOe1|MbOfGSPt7(O~fMg%_Ma2y}iY2UDEhqn0$1Bwz| zA3kCTfsY=9KfI@0_~;Rlk5Irz_z52oujV7W3dKi$O=3XcqufI0qr}15x9z9se z1`EYUkBoeT0zSe|_{c0w`N;ch(^h1Gk2tLPs5V@E{Q*++;iHErT;L;1tIy=ga|2$$ zt)qu3ekh>$=uwf6P{2p{2_IPjQ$E7bqQvdPN0?ibxJ^ECxwjGhF6ATFc}0>>%12h_ z$QBhJ#V8$o)NB-@1U|xyz(=GHA6Y)mM+6ifU97or^gtaKrMni(`N#zp$N6Z2nMt@< zhR8>MQx;7=vUK`1F?`g~#Lh=+YhpJxZ|FzEM|0~dKI*Evz(=GI`KZ|l8!^3kJZj%xogcqJz-K0-J<9}#;7K8n#Ae3Xd;sx+lz_~;Qb zBJdH1VnE=d+(PH0#KInYp6d#q5k5Irz_z53b0aHH0 zP;CMzw+|m-u672L+vFpcdmGX3Qa*B>S0wqQd}L*gY*F!1jMBkJ%|;%rjL_qP;I?auvp^l5vU5n*>*wnbyZ#9BT|Tb)NBOu2z2+>QEhg zM3^3Y^pwP)$VWx_)I`2;9btrhxHDYo7frwK_6)_>X!cCJl9TkAvU=YT)Hym?;Tq_K zjTJg!i(6Mol4r`Q-A4XS5mJ~Un}yY@E9y?%jJqYZFz#j?24~FVFooTj;^Eh=%+D0N zlCqv9JJnXt#w$5#Q5M44DT~-MP*#lApsY+BfTt-PLs?Ik5rMKe97kDo8aZXP6nUnz zP}Xx~MVqqdx^2qB0PQA=-97HoF%Usn&&MA=NiLK%ij;){%EC`5i+D9E#cNe`~xU3p)4wrRiY*(Pl&Y0oyj zBzw2_`0#Ag>DjYQygTtG$=;{`~I^u8~9o1>%bktJhna)B-ua*^UI--ZR=?DXg5?voUVhDkbUW-5c z2f5JE6C)j=fR6AJIwD?8M|Ks8j{KU$fIvsNg-%C_g+1uVE!;eMosta}ijJNX=?DdM zgrCrnS(wt1_t~bc$O0X4SkqB$xcd4(NzsRnUaxS0jx4P{Qzvxf1>8FNXT=W%6dgS| z(h&;i2tT1CD_}}T7^+?9<@TW?%+)6Ea+`GIa&II0T}nr;^NJ*&l#Z;-kt`}Yicvb~ zsM#n)33P-RfsRNYI8RNVs)uB50h%i0)=*@{iv+&V76Ku`*5Di4a zmI{%+b`*;>Z>n{C{la|)4?tXNm9>P$20q+uNE6$DkJm+kc^T6%{03K)X5~t9^sx!0wqqY9w4Wu!X;g18&6oF?J8MH0acSMk{))f-h{KkISF68O zkd-S-p#6Y3)_%Z$lxL2%QND^agR9EX3(jXBAb<3)%17PeU3euYEpS6PJGc>h25^hf z8sL_R14A{XW5DelG9rK*hvUGlP9q1mmLkt|7I1sFtZ0K9mqQ!eFrX;W^#M1=Ho)zD z_`^5K1>Bw*!3_oAhM#~N@oI2mcwkw}2MY`c;FeqH;Feg}1Kixg&7*%)vcW=u+tVVr zp#a?Q6L2#NQ*iS>+q4x~05=Y6aH|bhUw@AjeZcMC6)u3ArPXIv2i&}XTSxC#{7^uF z+uucSLjkzqC*WoUOu-F9^>r4xeZUQK^~n~wO>lF$w-Nm=1vl4uMUqbnZdT?9Jr%gc zC>`L|Y!spdaKnrMZln*mSw0SK1QfXKtMPI4UL6;uyB5pA%>@?6!EJ(>Nw`>s2yXi+ zizc{PI(?cLaO-Gd2e-8~u^XE=^wR;iE6Pv@x2~!S;6@4&+?tI*9s%4qtijESVgrT1 z?Mmck;1D*R_>fkoQ^x(D+B?isH zZ68y74O$<^D>-SeYoW`b%}UUKHVmogYz&KiMCz2qNOWQK+JcdtV6nR@`q*_X%*&9= zSqv*P#dH?C^zi5tGDo%lNxYJi79Js-9gm1T10Ka_4Lr)kfmE8(F?jS*84>V^!*O_2 zr;+1POOa*#Ze9||ZudRD|E6yOnlf=5=s6pt`e z-!7Be2ahnfC~=#3arJc>~|@Tl1+LYcXcc z53cTcR?nX66Nnm*J};H{=*#jZ^3fNi9LGn<;UoO%d{l?(;3LBH;G-`k2F=1pUsHUI zT3^R2Icf6|x}1-!1PwmIkPbfjiqt6|k?6we8OQ7tA3ask$MO;8Wf8hn(A1FAHoWBBN+G9vI1hvWFDP9x`|mLkt|7C!ox ztZ4HQJ+#e77@&_mVs{TdVhDkczKcKnf?W9MIgyW0z(@EA9}%zSBfAPU9{Dwi0fCQl z3!RS=3w!X9Tex}jJtZ3~6dye|@(~L72tVN?voPf&@3T!?kp({Du;!!MaP{?XOVNjq zzOQhBk1VY|lP7%S1>8FNf#Qb(ijSTb`3MDkgrD${6)@!^3@u9BK753^MTy(wBbR#{ z(eF||a-CNs`J{YgWsYo7@llM@!AH$TAxhvQ%m{o$`tXtE<9tLw@zFIjH;%reV}0Ax zT#My=*Ox*p1B_`uXtDAu`nYsH^G% zACW@jqh=$JN8lq4Yd*4~*gzpZ+Cgr{M^U^uI8@Thj*l3#<_B7gBF}11-!B^S;5`Fm8+@G5JGjo3~cTn1%vWF=_+tXLO1pA)8N9Z8z=}W@wDfXnaE#ttWa)^&;S2M@in9T7O&(aeg1!8%feuZTXd)$ zU)L|KU-dm@t#F2~)t<80==i#R6NQk zA^LLO@D6Kx%5q%=voEM_ppQHZ*%u|ptvzMUvi^I@ z(*N7I?CGORae307vW#f#DJv^Ay8oA4_LO}g1HbPni-J96@e^Dop1}VYUEY4-bGOxp z0SpMZoLlI)oLHFP@}xaw-NH?yKPlN@q4t!05f=KMvMAV77C*sdvoPIL)~^T#sc0)Q z$7Ov?S;xl9qd)3MUxP+>Z3?(`bUu<2dAg^pou8{&AnYk?=gFS3cAo4hYv-*!Ws&B4 z%3dg0KyNcE=dwwA%6erjkN%9k-kjP~_8+J$-%}O^d&=S`=xvpi?kVd9#%-bZm_21N zSKr;0+uT#u<=)=(_!PZe=Z!)>DSBI(BequP9iw!hce8;~tJo#MCl zlsO6?|00#f`MHhtx@`NM*NYTp9P=WFdGV(+ZyliTw97Ft5Jj4q)w$S8|dvZ~e|I>U_!83fEY&#l~vM7F&uE>ncgYywy9e zyD8a}dC6vBb@%J<)FSR(6@Ba?E(T|4>&%PYnc`!|Rpw`kT?xbMR6S~|^>`&Gt<_zG zlVEuI&a}kNVYtW6v@u!(hBI;C(x!9_3>PvYz%Ym7R(I<(^3~mzBF}V|)!hYI5$x2+ zQGEh|uG_{{3@A!;DXvc1nU;Zw)!mK68va#htnR)TzVV%DQLws;pWrI->eXGYSrE{# zUZF}%-NMbIJ(O&)P^-KDh=sm0Eeck5@e^D%3)9tI@3T!?k%iS= z4(rw3+Hm#tMJf8M?(V5@0WmGDoINJ(OzQ>IhjSG_6i}X@vK737^MR-n~g%0fS8yO z5R>#lOv}d+lYm0ZYiqG=v_Z%Eq_Vjd%MsHB7RM2Df|*IUScZt0*HISD)m=-cPZNWe z9Zl@;wYDa9WAlc7sd~)Hb!Dip?sipOz)MnytGmrcAddiF9M1FlKDh7H7;7mpC}pfIiF_8u+DGvl~CO5$&SY?Y+(_Qx3X+D4eX8({YQxpn_miRz$X!|C0?1ifeP(%X(|ZB8j;^Bkp@0IpS45CQ z0m$JeAZGDty;NFkaM}W5&bR&IoEkbl1~b9R^|vn70AUX9U#|i z6ru!>!;AoOqz}khJ`QpO6v)|I9#_<{zRPQ_#d45yfyHrC8#OQ%m0 z19BZr>>#(cCU#@LZ`FkF|UUpTf z#BvA8oA?~#)ubH9a>!vh{OK%Lhw5NC!t`Ld0~3QH%Y{o?D?!t~!E_D9*RXXkUdc)O zIYx9juvrNjz=k0eo{izKt4p177>O>dKJbK{;;=U<`q(8f%*&|CISeZ^#dO@d^Z@A) znWNg@fmd?U0wjd90}`=k0HheL0Z5rRuu4-p29O3aA^;MH;{d5nBL}3GBF}UdKsr=b zv;m18+6E*H(D%5py9XdKgaAl~;|~vz3n0BR0ul-U2|ocO;?;m;SD^sOuSpCDfRtP4 zfRtF+1CZRp&7&ifY_L#(^r{F*C;%k<1dzA3(a6 z!UaIGwEE1R0FoDQ>*z?u4+Rt;y*dIC3IGW|0VFG63P>2L4}#0>14x*w?}N*20+P$U zjp%nNAi2&fl6+D?vNA`wr~oNO=>Vi=qYxzk5@rNIB7FeK@^L^SV71b9n2w9mU5n*_ z*1f=##m!;FEi2>zzm9EG~XNCRUz9~QbcBLK{u>IX`m+{e`w6`sMwC@-`y0>I!=|6c7 zmNBcb*7cowt?SxSiI1))FYpn2m*`F5xwq>7$4W-v&3*1de!ljD+rV+ibcVkIkK*u1cMMdh&*D`6)q`d9*^^ciS5fl&#WVmg6& zP3_oE`;?q@gR0^zmAF|+QBrpn=Ghj8(^eR2)55&o!f=|08B)Lb;#ytjVKV5uxK@-j zOR~cXr_tz34=rz?eAIDoh*xsbLQ90Rqb0FtK+71dftHy#P+n6y1}#sJ5dkeZ9EX;5 z8aZ0F6nUnzpyiEZMH?--^x9~N0Y!l{1hgc5(9-g8v?O4) z_I48;>)Y?#Dkd zmZT8Tve^ja5zvyu8ZE6THc&Ly-lDj@_V(7W_O>LhOWE?v;yb>J{+#T)=tqhTVaq$o z&)42wDcM`~pRgr^R%`9;Yxb<#Eu<1#-df(owYOVJIgTxn!4Z>RVgwr-DCa?)OVLzjc4m7oEZ7*c`d81lP~)G7Iq=)&qp1wcDNe!o)mvE+w& z8Q?kjVP&S6PJWjjAl*UcsP^xOS8~ze%pkZvm@0w8fX z4v^|JazJV+@=Rv|q&vxqHXzYM+kk`t`u;g~_gH&l2mz4pfV)B zh*txWU4;T9za}vt08(zD15#pP4?uDY_5E`t8!Qwcy*>gG3IGW|0VK091tjmYO7${gXM0;CwF1CW}HLX-eVm=OSp^Z_Kx z#{r3e0;FU0jM3=MI@b5k&9zt#NG`BA4oDNsOv1%7L_oT}vIu=3JmPQZ^l4%MsiTP< zkk;13ZfxGrZ%~g}IZlT9Q)XRN7XXPAA|N#zfjj~raaaSA6~zV$0n+j0W>1+#@#5eF zNp(Z9`nJNQy!OVJH9ydePV%hwSoyl~(LJORADu35A|IV5gx}Xq7NTEMBxG-Sz3K2Px#0SsPCUEekh>$=*^LjP{2p{2_IPjQ$E5_eg9l; zA3nldeg9l;laE~PZA8CI`N(x%k>r!|k(D{JMa4%kN(Ub`8-*x=k1!+f5$VH6mXGrh z0mVl*(A+qBppNzZb8{`0^N|ZIj`Pt3Gm~(!43Up+s4SX%Wa;#2V)&?|iJgzu*2HdX z-q3G>k8UJGosYVzF7Od4L_TUZ0(k^J;;`l;D~b&i;-edroAFT;FAi=Z>1D@9j9K%8 zlReLhkG^4iv?7)G=xlit`RHL%j^iWb@DcuWKB_}?@DX8p@X=~w&@6oPNX6Hv^(efO zlQtir%lXJk(BLBs>ENS>OP%r&i7u?(^Ts>HM?*y)%SV`(VUY6?R%VJ_$w!ZtIja4~ z;FX-T_z2i2j^m>`jhv5KiagU<_~@~+qRmJ2 z&^8}ofWCi@-97k-Ap|}e;SbM}3m?5T@(~L72tVN?;?;a)SE2aGuSpCDe3V=0e3V$& zgOA)oeg9m^1`EYUZ;O0{0zSe|_{c2WJUCIiVra{arA?vFHf^OJ2R`Dk=A+th_4QJU zK790eg$sOSY4w>r;Uh1gzJIRxp@8C}w?{rg0UzNfd}IYo`3OVx{d2i}_y}|L{d2iZ zK61IY5&bUZBiH%GPd+IhS(zhSRD2YpbnsELQHT=w2r~j7kv@E6`8XdDP<(VV&5fg> zj`jU>b1jzhkqa!2^U(w|lW?&Nk&kY!ESh{|>GWx0_^6|aosZVm#BOZf(C>hcZXrXR zkGiTZ@DV9QK58}sc?3SE>^HxU~x&b*!3vlM+S8)06CK+Z;3nJIQ98$DCzsP>@8L z&_mm7WG!U9H)W$uTQ&`jQWnc><#0XnI;q&MQJdkTSlWB^T>RmakPbnRvl)_agHu7r{0|Fc67CIXx7A9=8Wy_Yq@mR=K4kx&U`_vXL zjh?4ugM~}Q;9s!tQw0{HSY9fI_z4@Cg-gyxn~SB*q0icgQQJyC4s66>%|^B1s{H3j zp?UFK4Xww%TW=ug*fte=qaWLbVlVe&+f3|vIxbdkbvX?b>+_Aop0Bh5KUseH@)GGmg@@CpLdV%7HO4wEm{*_AjDA|=LmbdBC?eY_TvP#%CxEV=qEtb46 zMM;rDf6_)<>j!_@eeRIu<)!5v`xi^gE4NVSvu`M8gt{0PkjMBkR&4wdN;3v!o{6zZjljY<5M8L5x^GmSItDs`A>bL6E5E0NImH6YOU_0YvVE#;adtljLg5=lHnIwy%JUK~7B(t}Sr zMUAKq_F!FeXUhMo{Pa1U_l9S{SM|IObG*<)&F=5QJzFgBGW{pd<8U3%4^~K-`%UZS zPEzP^887_3R5JTT^0a5|8SD2s_UlSVb@309=ri5s{-e1skvq^PSnId1+*;^iyVc%? z1NNA`tq#H%LXzxO`%?Vj3+1v~?YrolzFRE{cB{p|c-tGQ-D-)aly0w-;%>D`*6&sd z6SMZ+YA0vSZne|%rJ-!MT1&`m*Jh=6lttc9QM@>~lccK7xpcqUb*k58{U>!#`R50x zdf;j;>)TfMFOy1j|0;PC*RozA)3FWoZJdcHBb2S{8o7Yi41( zmgRl6X)Ch8YaG_RRvWIq{st-ftYy7L;R1_US~-hN+HuPZxOMba#SaD4TGsn0pzpYa zg0(FCgvG3Y=~@*0S!RxpDMH9T%m$7R%SNTwrmW%O;qago|Z}Y<5>= z(Ok>2bow+gYgrvl>}y$TYhpJxZ|Hwhk6F2!4E43FuBr=bS)>rxvYL%R9$_tu!_2(&v6C#x2TsNI8y=ki$p#)A^_l)xk%E>A^?uObnWZkKUvB8nxbwS8_6T|5DUB zB3U6Ch=eT_BE9pbtYZCZB1smxs{KpfC3Ol-WTQ>A6m=&aApeb`kA)@-&e+JI3A;1J zbZGLz*(-m)xLH+JOXae73-5h0S$u!_+dV3mmj<20pX!0O#H zB7hZ#;rYdk0RgOX3mvQy3wwZ-Tex}jK_we36j;4Kf)xtD3O@lWvoHlK z@3T!?kp-~gum-EzaP{@~OVJ0cKBRB~tSqfQvo4EVUcjxR4=a8spup-sB3PjStnd@C zvI3@Hg`q`>+Xt*Lw4&gC`1Whg&6^? zNFT7Wd>pI@D6l$Blj`U{bX=6~S}X@E7g!tzs|jW%;bIvgSlvrmG{MT!>C?o3RYwy$ zSgoyz-PpXLKLA*rE<+uxx~eXK6)8lpYBmCS1hC?;1}iIy4HN>axMCE=)rwKYRc{V! zdz-{G>Dr#YMQ-olJu6$=J3?G^fYzJtApc1D>6+imC3~~}lXWMCtYqCOUGw{hRN|_S z$!o6peO!{F{DirmH1|_-2czk0ek947->311AC=3R-v_x?ea#OAYkv62nji66Yko=A zJ=XjtXU&@5^nB|zKTF7LZ>;%6an*uT*Ze4dQun*heN}DqU1QqMNTs^}oV>ua4_Etd zSDU|H|KByH{j8MZm=-xqi$9%d>rfp`OPC%^dv0RTEKK_)#n*)KWxSG;u}q6PXId*n zgK4p)Vp`u0Xd28W?^;v&3B4vcPRQ;rp4e4U7cyMJ5%&wS_+qJD#7Vx zfwNyxK5DVA;+34Va2Db0I7{pqa5hG3;A|!iWZ9IC!Pzg$h=8*kj>FkHjT~oNiagU< zaQ17mqK&h3;5N=;KvAOWgR=}f;OsZ?hv&!zXFtUF?CXRmz*+nRXNgziELSc#>(?;` z1f0z+bev5r?18gx;pWk|lx(n2IQwBN^qu)pfV21s&YFdrlV{$%&o*sE7I2os8fR<6 z)z`l+MIW5~w!#IRwY2)M4mj%t+&cP>;)enXXFoy#eVq^mIE$a)tQ9cDSq#<3Z{_yE zSc@(&QR^poB`59ssOWN_vJy0a3PUQO8iP+ilsd&H z5?xq5@D@9TPd8TdvG{~}86`PBVP&S6j!&1~o)SNmIja4i;gy`U_z2i2j^m>`jhv5KiagU<_~_@dqRmJ2&^8}oKvAOW!$%Au@X>$a z55FfDKKfYXBNXrve!@q@tNF;TLXAg$O=3XcqufI0qr}15x9{snH4Hk-zJ|6i9 z1$=~`@R3=#IpHJkvrSu(1wP`i=A+th_4Qv!(T9)zN8th=Sz3K2Px#0SxOMbP#SaA( zAAKV75eoPSKj9-QV9G}rs!vnP?ZZcyTa>s>K61IY5&bUZBiDIFl26JO2qz@liKF&u36dzqxbK~egbzGG0S}f-y7g!wUqX}jv;bIvgA0419 zn#+BbPM;=*k2;#z`DkrT?8fE|{cQN?YBJQ9`?{(w@DV9QK58}sc?3SBA-`mN^ed^vN57L7_^ADT$p4jc93LTv zkMO7SQ5~v-j|kI)kA9OF6!}PBF;3(+Jw+I?#&4qkQSmjJosU;?GIlKrb&gI}xCT05 zV}(xG;?`A?F);OeMMz;PPNqqcqJz-%0f6hWf6M@%8Jn%l$D7C@HC}kDC-Y0B2X5G<0z|6 zBd4sEBF}Ud%KDS6Xj2wlw@q0Xpbs@;caNK@3`9`YU+{;&mJ4NlGEx=_C<{NKEaKIa z#Wl++lwZLZ5GX6R&?zgium@$ig_}ozRkFcCQP!s-Wubtw@Ds{13scJSKHIbvS)eQq zYs#t(S6{zSiawNek-`Pavb6e4!BCbLaO>z|#SaA(WqmqQ778c}KcOruU`kmSs*j4x z?L%3ZtB(xJZBmxYy^ZL1DP_6NE0TOt%Ca&?La8V#M(LoeW}^@#P!?tc$|8Lz%kpu` zBA_Vi8k%88f7WqPx@)nVvRq(soU$gEnS_gFh?I4(vS?D4rPHU0p{$N3cFI~?6T7i_ zL#Lk~*T=cLsxD9#DMZR@HUfDB%Hpu5EGvo)6r!vhsuriLC=MUzuI{P6FRVfBm#sm4 zFRVemBwK?zUW~*V)aml`HK;d9_CEb5Yfy|>$v3zc=5DEH{l9FC^*5=+Si9|E_f%K( z9>tH8uHK_4B+-Yc&E4JHb>^-&cR}vpadv<8Fcr_=%7m=_or=j>bANSuzV-c8 zOUP{3{ngl*QCxj#y?K9iNp-w`^PLLHpR~j7bFbYvH}@55hYeDx9X81m>#Eu3_Lig9 z!{(l;w*REs^9|aowkY>dfN{Kw9NxvB&bxJ}4&Eh958mA~F(~ETy%Krk-J;w(k$+b3 zwpI?_qWGF`mhnnXj((XcD}3)@VatNQI*Zylc>U7)@an7;+BkT9cy$)roqE@=ItOEQ zCBZtkw~{1eygs~MyIB!ZGA84N)!!(pI?GnUZJ1@w*ZXNJ+jM^5>aX=)?uzc5Z#;Ct zjt^P4`a6jR`$%-QR-repP9$TBka4b)F(t_qPR0}{Q|wAI-YRp{dfV_yPF8PuCG~-; zsp#RoTZEIym^W?go1%^PZjn~+-4Z(|W4-+`?Y-L=twF|_I6!JsI);pwWJDli4xNlQ z>b={I{@$(T=Q@oodoZ7K3hLj-w8P-)kabC41~Qhxp3?Z)iA+wHQ#d-9Gu6@C!R zuD=p7@-SpylpGJvP>N^Yhdk~pCzyOD=l7GdTIzl2!TmXXfSizA@>VYwMw`1meRL^z z?Sa(Ymi8Q70e`qr?v_1^!8yzxdJ|HkA&TWaiy?l(-NaK$$0$i3 zBj9cyF)$!-cW$9`cVc0}-J7>;_P2U@0XccA*Dc&M+E>X23pW)5-8wqt2cOkkUX&=b zr^ygM;cl~Vldo>>&5O%^MKGR4Tah_;>kFtlHt-(pqoZP28?USBa!5+#S3XB$;jv%S ztP{@9<@^)z+}`-*?cbocw|-w2&+X0M7jkZI{(7kV?ce>BQ($;AD+j!-TekY!zsp;e z)3<-UvX)0zv=UfzE*FDysjOEBfb_jfDVCRuA%4Q}R$0sb_V1QrX-gJ@^8iPF-ix+HyfBJf#ESD zFg)qQ@RpA=JOL|)zr2q1v0`&AmNUEyERHk$1T&Lxu?$UyPx?~Wf!EUN)68&uM>D_I zdfM8W*$vJcJLULoVQ{*WUGLc1sJ_7Qq_DK@?0YECW0R|6ttGrdcM1KM$|YSw{Zi@b zAZZD=S0!wAHEJ>ZQsJ=vrDBa`Lu=!gN)*>{dy-zE=H2d}h2JVS&wi`CTb#-_7|znO zfC@6FC1kbs+}st!t^8IwPJa4ZMIWs<`TkW!TP zrB1n-j2BjyZnaY@%BL&(*cD}pkWsL6GbPCs&dn4kQ+({Ws$7|3R|54lWT%?-V7!u( z)>1RVNkBdQ#b{#ZK;7fT=oqa5)R{Q2ZBsf1s1K460jN0~x71vxkuNp36nUnzEHxh@ zE856QpKc>B1{5W_6nQ7T7|mG5Qu8(Ohx^NAsrhp-l0Wc>f~98s1bK;9FEw*{gOPr* zV?aRO+(Jj*#KHu5C%qW$7H%FLreuSKT5A407WxB^C|GL7PmtFvOqZIy&o*sE7M7Yh zte2W=!`0V!NYQ7h`EZ2`m}+U|{4(jqXfNQ_(GiLt3aF*#FHk^#;1LB&&G-qXS^?9g zW(?H_Oy#yPb8{0cOm%_9aZH_HW)d!zA!2I#1Fe=$pC$%TJDS)5 zZf#BM#^w$EQuUaX>#8pNhJIJo1%M-kxYXQi1o8*~$6*a{Rumg31aL=@o88cl;_3sf z)mrm~f!|Kc`0Yx8-@ccvH9t}O1i$fIW6o*6lG_106-q6b^KhJX1K(Q307^I?xqE zYAOE)Yh80;ysuZ+_Ib|Ps+j|~?|;=-u3TQ%sO1;mhtZc|m0I$;45v|j={*j5g7Q&k zI}xwsq(zSiXQxME&p?kcT7w=laR9ldbPPRSUq%FaUpn<9#KG#_z69lg(*FHpKaQTEYKr|H9gjbtFPZciazvs z6NL-(XleC93m#PP0&X3htoWgTqDS3qt>_U2^oXC(qZKfvM-0`6k>&QGN6ghnOXW7{ z(dFJo^t+TEUFQ`^J}Es~nIm~s^cbUb&||Yvh!W@#GXg!5KJ;k$I6V?j^tdndctaiQ z1Fhy-ET=~oSRALv31%kYVi_Vmw!gt@>GWx0=&_@TogUZL#BOZf&`*aR_3ipVk6l$4 z=#dm6JvJMGJOVv(Skt2w#Rdw|qX;n2V-&Z)!TLOL}TgsdGJm}4(9LJBy;Ya-G{8)$T;77vr z;Ky4e2BrLXN+OT^7%ugTbho%F#XWRy*cba&e|pWivoxM>(h~OQHj1y|?6!C%Cu5%n zMV)h^6|TXF*jO>3b0XGNk}xJDH=lx;5co&mFBv<7Bn;y^r2=@`tqwTuXu#o;*2s?*3Z ztEI>@odvV*AS>FKMb~X(76ue0x;~i2Km=x;ia)%WTrle^5wlQ$S@;QN5wFH9u30e4 zuV4%an3Y@Tn3Y)A1GC)1&7(Uj*!pd~SS`}s zNykO$uElc9a)HHh%$i_k5-ye@Vpe;R&eG}A#9&rO6FX+Dt%=>(yrHv2x~{4Vm_-T^ zvzm=S9s#pBtTD@qVgp5EkuHkEB3-pccPT#)%81oiqkF6v>iTSoe|_7;8VR z(P=w_IekE6?n$;rcMmBmI{5&fO|Vy4iV``Dg+HCK>QEhwMVKCpbg4W z0^9wRk9yGk@k&lwHu_$Y)`{ zM=QQYv&Z0-oQz#xL!Gmq6|TX4*jSOCvme$~k}*j4NU2k#Bb$ZQ+uvcQknS;xK6ZT# zgEK&Lq{Hq^;Yf%1nPNK9U3%+lkCi!Us}ir|q(xZ>XQwP;&p=r*T7$AOaR8pCbPQ!Z zN=5|A;&2>g)oJ9E)l%e{&O%v3S<$8}x^A1YFhHMx#_k@sF&T)UtjFUIA0`*d`c|YY z6i^m^LRrMCDT`|s%JM510|I5`7CL1m7WSYlw{Y|52}(9tD9Y03k*f7I6i^m^LRn^E zN?G1#o3mw=pP}UO_E>M=G)n^KZvb=y>M^94xP(V@EcOqq>fU@ut z%CZ8cl!c*1iQ9*=Ft;dio0R2pZzK9$N?ES+iX@+uvaHOJP%6rbQ93BA*(gK_l!Y0A zvPd7wvV5Gf2q?-rmfM(*({WL{Yq6ZNTwrmWvL=|Bgo|Z}ly!Y&5&A%Qi^0A_e}OAJaG>+cfzER6Lm#n)K&Y`l__v5bW}XDlmRgR!u&A}VJrtg9qr80#5Qr;J55 z3#)Is<4!Twmlb_1V_|ScOwL%?ohh8LFh5i5O2&GQ%u!oC7q8@`#aIYuXDnjRz*sR_ zgRwGkz@4Ua3}Zc0Mg+#Y|%>$VvS1M~q;?C!x>3`8*2 z-{TLTA{WN`Ze%PJFcyBoSj4Lti)$9f@+%kv0%PSCI%6dk_FycxaP#PeN;X(1#?qD; z6=R`*vG5bdG7D42@;=+N6qQC|7|YV?GXcX`UcjxRe^C5T zKrz<$BV(a}vG5bdvI3@zg`xVIt=vA0g}M52s@x`Hx!l``ewQ+q>%1b#CuJ-vbL5kX zv0{`C#%eYSQ37LOMqn(`hp{XlXDkAWv2LIlcJu-r>%+n3S}bQQ7g!u;tO;f&;bIvg zW8F|$G#Sg%>C?n8R!0*%W38=;-PpXL-vVRZNQU~023=Jb7>g7lV>KIrJOX2JSTmLt z#Rdv7){V){UNnf}#lcM^y{s6E5o>;MGC4Y9t?GSIZ7ieF=*3crv0g4ujHO$bbLVL- z?Fl;2_w?poq;;}KYE7&tU!nlxI14$Pg+HCM>QEh=MVKC(_0q(kl(Sxz$nShayy1$R zD+7P!pSH}c50`(B$H!i!C>r8kjaPD#qF23*3Tj8MxQ&XH*U+olMg_ASwAQa;UN9(x zNzkj>H02eFkfImaEUbR#P@&iCo2ESE@CoRJ!5K(7dSQ2_*p-C!PclbM@*2F7lhxhy zykELE3c^W*HGOXsV&{a_V{eogtwC6sIKWO*I)<=bDI)@5ap;8A+#97%Bi|dPrN}d# zWp9+%$_nqWwl@lwQZT!|xjgbPWUr6S%5Ck9VwUya8-@Pg<~L6tUCM8h_C{flV{eo< z;1B;%E_q3$-`Od06Osqo81K6#RtW%))eU6u%;xwjy(W)7Q9lYydZUosNoOZM?3g*CQ#B zr+cH=`MH`H!rmx$p6rcc=gHnEcHY_>1!=xF%9|t$ENEuspfG7~6tAr1(VMZ?n^SwE z{E*7>y-`rGHwu2jf>v4S-Y8yR+!hOt*&79OixRiFH;T)>z3K5O3%br5g?v&Lv@%DI zs#q{a>0rTT0}~~%AZ7#>Bz$oW0wOG!AF0eSxf)mV4!o@N~ z7W|c6Gu9W*QQrw`ZkAS`W`+kln%Vb8Sz9x^!Fgjp5FY%sj1>=RZkW zAy>y*OUT|R9VK+)y`)R1y;1s>u-+S`+104UK)f8*#A`*dYf;4eztpD@Zxk;Mej};) zv)UWwJ>lKjD`fX>pB(Ppo|xUc{hx5}b}#X0dhho0I_IA5Z!$T1qg+>|o#KP~8Cl;1@b8nJuHx~;p%BG@xn-t?17#Kb?W= zP#p|Rm>vxL_Qasb!2QAYU5c-9|J`^cCr3X=g%0n}vfss$s>#$2wu?)PVShj?ghA_K z*dGvE9Bda?=T8M}-ziD*gx=z6Lbr=yOTd32O!7P)rYx-PtN2TcGj9nvk#4a%gIK3q zjL#I)>9!bB!uZ(Tk?|WpWTKT4 zI>(NKJ;|Jv_t>(>w0#80)T1?6ITHtLZAwGc{*8Si50MoI>ATQMEwD0&&dPggAHh9+ zAHls6JGCTtxMHo?jC;8;iagU0LEaI>yB1k0;UneO`v~rt?IZX;SrP0^cKV~gw`rEr z=^NfUmAhr{V(=sI=WGpHMTug0?_!9b&@Azk zlG7|#J2dOpJ_ZDu%`J4AO)N}kcFUG6zSAH3pCmi|xrIxk_bb_8;Zia9F&2JB+hXZE zy;3YM6+`@lX3fGS-|262v9vk#*`}@Z^?5q>9sQQp=fwISN;eRz<(;F<_AT3eH$V1ExhdV_q=MB; zuaIq{4=8@9kZr}_CsfEs$*x2p{utsX#A+3?&3E(LS}b|N^ci4<3Vkc?=C{1G%x-?m z$!>m_tM3BKmG~5y6L#}+xwk3(G$mHo`CvglDY06aBkfhh8l!X&YqJrF5{MNu0p7i8e<iDABCjPgOLWcJ78h4s46DKD8er{%pl_8&RJ*6Tj30OME% zIjn*|omJ{k9jro_9<1__#GuG3MfuT0{;C=FYWt+(>x%yrUdhSW#W~dZ;+z$(u{ei~ z)#4nsxOJ5z!Ix@r?&FG(;tSd6*)#BE_QkoU9y4Ka4udmFaeTqb(`>c+NVQsvwrgM>$$kW9+J2%Ynjf?F( zS)8-;WO2^UTZ?l@bJY2wWC3-|tQ>VFEzWsmEsws0z22N!oclSI<%@GDSe(O8P{%4O zU7Yg*RHzf9bf8YNfr%1O2Qvcd zkUpqm`8etjP>XZ+@sZEzSYMDg*JAnNoC_?DW6uOLlW?&N5qu6?QoLgHnyTN&5XB!uHRbN<~BZas)XT6=PW344*ajv6;zBqSDmr#pyeM?v`&NaIl zwHOxXIIJ<&ielHIFgAXbBZ{kyi>tM{*94AT$T;?_z_EvBYjfWccOIa6{DOQk;hb$Nk%Pn2yx(f_l>zMqyoe9J|j zlvaRo+>0FU#h=c-b*K*RB}@?lj@8BjJxYoKf<4piBcjzQUP%7}on9F9ZTI*lASy1+SvLe`- ztew$A+pviN`dB=6Cu?VuV3T14*!&^>@GEkG&0jz#$7&qW$Al#UHt`eKBwh`hb`@$& z@@odaMS2VN;X(1*!)i{e5ppeqC^2~;wP|a7N)T2eYR;UvI;gi zcG&#Bj*4Mzy!!hOkd(+BHvOv?c5bkle)R%r4v#;UEWo2>(}yZpC-cHDkA6b_-aLZG z|BCR40(itv;L!@7!lM@ew+}pGu0F6Xw+W9f_x7Vtrts)GuVnH`;nB(*!K;GD7^MRq zn+-;k0FRgv;F0u!N6W|Ik${57(?oWo^K@L4?piE|M;BNehsOzKCgEZkB0S#9;IZx- z0j(^pKFtg~b~LlY|zkC$`_ z1&@78Si@tpt5J&q9yzSx(TZZ%qTun4)TiCqjpD_@og_WDV#kLEcKojVEv#>bzxQf< zWzW0SYz=h3z>X(m?09jIUu6tC-d{4FOHA02v3!1TDwg<~X=KNrN+ovuPkEi}_;Upq z$BxKhNBrsRScmFhN5b@A$6q7{&BBiVqxc%le~DLe(q>0=IXhYj8tjN69qjmDQm5=l zq6@2UxbsdegML)e$Fd{lWr*nPh?SXQSF+=;WR7b8*LWo-Ep|jWJ3A7426l|m8tj;f z1I9I_W7zS(Wkg^{4#%-$okq@%Ek&N`EbREdvZBq7^w2gtVn9)%>%)!=Be3J|@rOT? z3p@UIWJeURBYwh;#H-oSu0pY+Uy~RR*fF=z*)g%O2Rpijn?`?7vcW>J0rlZgApaLBW474Bz@S?@^N+~V8xEV({WL{Yq6XiU0`vX9VeKXgo|a! z*|F{$fvha8KFtg}b~LlIBV&1k9pkr#|4%Bh<6q?kb{zk$;Xf(BICex1 zJK|4g$2wF8I})Y`J6@O=6xmT9G*9I5J>;VNOCq1;Tf=`-e2xBddoq4-l72I-UaCZ$ z!`5SbzAqJ=t#Aa}dmqx9mL(+3O4Qa$C3T&9eTt?71-7B<$&<>qEi}ijeRE zRt+!E86^BGP|I)Gqkx3*6A~s~O~Q;3+_Lu(0|NpH=N38%Cl>Y~VYhJ8XfawS68<$7 z`Yn4DkT8Bi!e(Jg!hS_GZADg*Fvm{9yX&YJ*2e2y|yzoSZjE7RcGm>Vs5}vsc#gXe0J|bBdhx5PwC^C?IG2gq*FiQgZeJdXCONy@+nXMrlC$f)QOGAHXDf50&WfC4ln!!kHZV~FIb%j3XVQn9EgvUm0#>)| z*Xy__-L+Uw&MvSxPR_c6AZJpDR4+DA?J<~Iyqm`B@{XLEn!X0&8|i*26E=GCTA;(U5kxd_EB8j zvajE#*+t(PX7q2|vp+)j;=gbA?DtTC#Lk=KiJf)xYVK=#NcIt07oOM2(OL&C%Dtql zxcOvW;r0Eo{kt7YQfeICf>&~~sJ3L zkvU7d53VB3;Hq-=D$YJY-e_5wsT5oBN={n4!64jl_Qu_HQ~4mp2!rSR#<}&&)1QVU z@(gGdqczYf69>v^O2?qpW*HICiod0jEA4Ods+F2&M1ho0nhigh`# zTtVRiuvl7sW-@@q3%ESmSMfsu1uVa#fd1846aWi;0xVX*6j(5{C~^A$3+5IjZWCBs z?rlWBOM%68UXkRJ0*jS7PWBbB#3&uW(rgr>1Yp6804$^ruvk70ECdv={ETsF9~~E^ zyB5oV#RV3}fn|c3Nw`>s2rPQyb7SZOVJf$D`ZO`H($T~|m9MRd-PpXL&rpw9(Ze6% z7I9bA1y~`42rJD-AdfJWbI4S_z1aU^FNzHmOWS#nBiul>5}J6CCmgtKIalquH?Mi} zOr1YKetHjepm~#fs6UslX|#TiudDC-+JjwC1^UQQa$z zbM}5xY0kc~yoq!6m86_FXJ1uH4FLz>m7KKaY;^gYO`6R)dw)sNIh$AutIwD;XIlc7 z*qnVeWu{Ubh*xsbnzIqkJZBSmhB-S%Ys}f1I82{S>6khDDl#I>*&L3Wv+FeSIlHCE zGo5A5K1f!y=WO~xd(OsyqD0qc&Zbv0XI}$k%c*%!+OrH z4Odscx)gop>_ZeT%-NP!p8=gY+Y7in+M)QNfSR-a80Tyh%-Q(KoNWb6=WGluO58qk zHs%&3Zgb9dxwjGhE}gSo=M_ml>6~q4j`LkLXU8ZVb9S>)h!W;(%m{Nf=`&|rK0ap? zu$r?6Ixb3gEtb#OF0eR0XHPIQ2^Y)IHD_BoeVUj#yQ7JH&R$y+yRmsgXLEK})rC2m z6yluSYy|QMb2f+doNYz1fub>INAYDoXESKE=IkHX@9aaR(wu#Syoq!6VNy<18yHoAPyCe7xYeYhm)oK38S)eGWXm*($mOW+clv#+DfREq23m7KKZY=kq< z*+iaU&W_OU(`QpUX3oBrj0kf!hvVk#I*okJZYlCiXPL8)k`?Van|{!qvoWA3 z(e;_L>DA2H$KVgIDVI6>{5WT$V9v%*=4|5CbGCJ6&Dq|yF(Ay@xrIJwCl>aYv)#f? zqhpn9uuyaM|HU~Q1#>ojGH08G>74CdwrMM}FlTdE&)K!%>gv~%qR*UteT55iwx!i) zKxfYO0xpk^Q~Xds&Dj^kIU5CYHhwZ^TLIHK8$*i{x6ho7xkZWFoU>i-ZA8CI=WN$` zMUqcCXIq)$d{@ocF-pgr-E0)1ggF~C!kkU|%-NQY&)EdjoUN+bI67L#Md_}^@;TcD z7RTr831%kYVj1F`{U>G7{GDy-^l4(|?2ab(IeTqQ?8fE|{c!b|l?!F4KZ@N|bz#mX zg*az78-YB+oXuf9XIoKhpwOKCXL7R#m7{oZ@E1uh!{6BqTJwXydZz4c&+lw)>Zbwe zc&RjJ-$35PIr~H@C(hY7l2Sv!jqyrO+H*F#e9k7#=A3C?mq0&EdE?yG|pYvs;Qh z(^=;1o63szoJ~Jy&)FDIl<4}*+4O4W>|5XuPms%;ts$yf8%M#Mji1cf#H;6Q>&&`D zylZ1Xn6q;Wea=oS>@jD%g_}mFDA{14=4_2k)!H};=4||A&Nd6vIorEz(^h0*&gQV5 zvunfE)o&(6pE>)M3K!;VORLX-&YbN9Tpry@@k0SMXKOgD*2YmVXX7VxwiPg)voW+N zar?~Km|K*%%{klU-bVDhbk262S0wqQbGDT^&Ue+E9iw#2+08~FN|>`TBh1;P&zx=f z_?%5Z&Ds0v6_U}-bzGG0S}dQlU0`v1&Yoaq5-ye@&e`_KzjbzhB&>~FI(?d$IlH5Y zea>E66T7i_LqDB4`-;5oV;f_3Rb7~~Ng>YJ%|;-PFlTdE&)HTK8z?kqUy0mo&W_^x zlYf`h+Bkz&qHfc8J z?Au9_&e_CTSUqmioNWnQVsrMX%1ouWGhWF_YtBYE^PElO8RqO5tube3;xK(SrDNvo zJIIJIXLC4i&aTtQ=j@gu&vceK`!2GgJ!jJo+H*Dr6eYSob2h!2Is5MT!`sMZ&K4)U3K!;VORLX-&YbN9TppdK_@RKBvoDHs zHVWo!{AA9y0;Y2|h887mpE(|nh<=yO*{<`7B%gH7wlc^0u9~xBl#V&O z*(gK_b2es#Ih*vEvn?N=vk9m<`>M>@cl&?Lod>uiMfLVCeRucnE@AiHySs>>hzgDb z5m6CQ0kdMx2@?pS;^4*HGvFWLYTd0joDGXwzrqGm*Dqo zE?V=wt9Yl?_v{}UX5UvPVfN7yV=?>wGLFUUV`S7N;8;Y-hc;$o%P||DP0T(@niR8X zwXpKwahPomE;h`5pgL0)$015Sv@jdx%$QB%88ACGYhZS!4)EF3j=<~(D2RaBR7YWU z?IXwRmLczS7R-K-qG)3_>!6L<1W=UNx?nb|8q7W(Ik=xnFnepnYz$yFGQn)x)tGII zS(xohn*ai4=Mg$)ClPkQY>#lm@S$=WA{1u-H)1vhFdLa*wndm?wlCRctmpz}Q>`(( z4qQw9!7_Bg?7of*m~FngT+qR6PjGp7g4%}!h1qj!>hIYYz-(lK*_L36*#xS$%d6~y z*@Rn^lugWbz0VQrF2!uO`9RW7irJQP#JdW!W0MJ(-JBGf1k5IkfZ6y5v#lS;Yz`D= zUsIRs;X_m}N-wRIW40@-jbrwhFq7kA4iU4jr7oJ7ZGO5;F_=AJiXF4JZHhhEe4Hwcj?Fh_%q=E>TO?4Dz*FJL0ZW;1U zXTj`JQM56ebz-(lK*|e)M+ZMAh z+m|*01kBDObj(g7?10%G;fCSkq}^VQ{o4rY6T%flzCeMnH4Js&X}1DK6WFxwJLF`Gb(lCleC z6K+vbHZj}vK1Zy(6tmst14%zAW?Rk??<&lWO(tM=b5dv$Fq<#}X5$~swtgJ5Ik4Ir zAF8gm)LUt-9J5_vZ5*@5gqa){bBLJT-WxYRU8We!o-oCZ+1ob79&A3*+1~i1p$nLe zhlttDNuZB_*;H%Hwp8pw(byZ0>PviYoQqa#Z`{9UKS?HG_R}QBV)j#H9E;h{kWrU_ zlMp2z+L(sg_Y%dj`=;?99(Re{Y-VHES`lZ`Ov~_lrv*Cjc35@ z*sOusnL5B{Q#%5)pROPRW>X!7*|m=xvs;F|(^)Y4*@~i#*{p*$W)nbBV(Wt0tZFd( zdC0+&Rf5^8B4%R%vylmA)2_yBTg<|2U)lr^FguUXF*}K{17>@K8-~x9+Yq5Jdv(NY z3}7}g!EB2##cW@)%~;U|%%)mnb{)8u`g3IHg4r+7aRIZ7EPM~>MoL*D5unEfh6 z(Z+1nK^wCPKyRui?hcRmW>tgPuSE_{RtaV=M9jtjW+M~Krd^HMwwQ(4zO)G-V0Ip% zV|Ef@2h8>eHw;ge+Yq5JTkjaHzGq_qvylmATZAcQ`;u+OiY{O_)f%(wz_rw0EkhT~ zew~gBm~FngT+qR6PjGp7n%aj1h1u&OW@7-ekqKs7f+=PbXi-vj!ED0SOUG3aVxEr zW40@-jbrwhFq7kA4iU54-?Pn6mnjCbCrq(p_O?y22b)iH_C0&j&;`uKL&WUnB+y5| zY^pV8TPk*;XnfC(>P!54HW#hd_iVjBQx~My%OuQxlf+oeK3&GKnEe(RbqRPYqU1vx zv$5rvjn5`#zfqbLvuU-k@~m-~Z4NFr%sxY%DT}uuN4}>^CcjfZ0?>VRr2!$Ly9N?{pT-K2uS&F`ISJ#%uy8N^D&)n^g^FzY{rlgGw-a zeZ*`GU^X(rY}(bBZHrl_h%apd2$-Em=$M^E*a5RW!VSZ- zm}0gs*=DTh0%lXKF}n_2Oa1LKbiwSibzHz~^VQ{o4rY6T%foZjJ|rm2-XUT(1~40$ zV74WgVm5*5<=-m1U^e0E?W-!AnC*I>Bi3Dt*>3ZJq@NVCE$4`L6=ugK6EM3uDKrU~ zO&9^Q@egKOKaSZPD9k=YKV=Tzp}OAWY^Akw%yxyfam*eQW^!E2A!7FR)J0eW;l6S6 z(`Aam>`)EQn3q#F#87d zX1`}g_1fN{(q4kUXLHe-?;YlyR`;Ok4bQqDohy?t`@IrlG5g&zj>YWrWYi_#{fLqe zZOq1&V>UjUnEf7UQp~2+!peunVYWHA*f9G8>P%UD5K;1>h1n=)#%vnTfZ4HG1G6)A zfX}9O1ZKZaK?KaEItsIEA30{X40)%sVD^U;MH{nO2W`wI0KGk)xI28$W>tgPA4Lw{ zr4r2EF=93bFdLa*HtlN6w#BSd#FsV!1kBDObj(g7?10%G;fCSIm}0gs*=DTh0%lXKF}n_2OZ~$#biwS8>$rf~=BvvE9nAIwmxrHF`;ee8dqc!* z3}7}g!E8$~#cTrAyMtAB!ED0SyS7y}G28V%N36RPv)$$cNk1uOTh0;hD$I^eCSZ1R zQfLw|n=k@q;~&hnejKwoP?&u~U9N{8QC)9Tx6)cUX1l`LIA)ItGdV8i5Hb5k>Y|C+ z=BLXPgV__N*fD$Crr3kcC;Ba5_Kg*&WA>z>3z&_Eh}q3appSsrRBOz(RO~__%)SY| z8D>ZI+TKm2y#z6vi`IPaX5J~7eaLombKf+~{-jL8>`zNVf*X(@A7xXN(1-&&_ znxZ`4%Fn9oy<~1~&6fUcGyx3OK{pxAk0*B9KWOTWzC z8lGZjIaus^WNLg3SX75sIm~UhQ7O&sH22>fx7%f(xw-AG?HM=TufX5b=?&ky@PA$z zYn;C{=&Lg7Qu{ST$%i&K!j^L*d^Wk!m!wI#5v>+h{xFUknS+as8+~1! zDT{9)N5z3jl5shcyMzL9g8)fQ1Q<~Zl+~_L`B5)(BqqtG+Bj-jfL*D5u+~}K% zqRow12W@Ud0D22Cad+TGtZKN?caVcGsDv9WMs9=wZiGy@5$$SjWQ$p+h%apd2;3-- z(790(VFzyH5pEcMS8hXu;zmo68)1MOAro$75vJV8muxdubb%XDt+`PhxR(02Waz?; zzNg~?H!@#cfD>-y2`&%6ul6B9aiitPjWEECkO?=k1XFHApnBJ<$}Zf9aP{U?l}&Es zdY>cKUCNEz<^xGTDL1m5Bd@5qQEW1S8#O0|CV?9fM&L&HhZ|Wx&W$)w-01E?o#D4t z*PA7+v{ufITw!gT8;uDwIWFc9xzRn;MUxwupDt4jH<~cT&W*NhiapqTqTdZSx~Bql zZZv7=0yn}#YB2jZ$iWX(g4vrQW@7-ekqKtguEuOz%))G6+5`|V zJCD#YJBhFZW_yGihQF2D5TP)8bHr>6U^X(rY>P0(Y+tg?SkVQ{rdnfm9k`bIuVmolL?sJoD`Y_%qEP0+4u*utslp14iskF>%V`kx?cBd zrL}U*c7?TZ%pMbFa$L+IVm7b;Zeq6i=`zJ&_Jk>R%-*&s_F(ggJ`c=}ul}AibOE#R z5HY(s3G@*#n`({OmWo{{gxT>Maa32|h%d3{x^vNLe9w;i8Gn#TnEfY-=6=SXr76n4 zSov3#y_Zhk&%hb`8Gl0#{-~1ujGZ}8eLn*O`x(e&KZACy{fwmR4*MD7yJkOQdcXC4 zhB>m>8~YhiUCrKz{R}d0j5GTgdf|aC{C}58CKI?( zb5dv$xDjClZiIihk@e%;hy%rqjuLSh7OLwFepXs5=SHruHqMR4gqa){bBNsN=oU9J zKV7C6ZZu(vof~c26nn7wM1L4=^Z*6w`x%plE^s3}L~hia1o{Zvh-%G^EET&@h#MV4 zZ?>Ni)oXjlN_z?JXK>M)?>*2vt@bngxqb_ZT$sJR#8}K;C*xSm-cd$f0(L@_d}w1f zwj8tZ*~IMi(xjM8tA&*#$6>ZPxY#gzgE~_d8xbWRT9}P;X3VDX44568H849<2l#Ai zM_~323L;=O)lryT`^Yi7Wym|71+y0wMTj%OY}P>=vk9Omv30?0RyCNt2{~A+63o`q zO{?b(U;wj`31-u-#%x>6!fapK1Q0MgkI*qYiLe7^dxRT?o8>k{D9qN4>DAvsU;wj` z31(Y_DQ5eUZN`c&U^dknv+KaM)R$!Fg4tViT)=Ge)#ZW?W_yCm!=2SWBq+?*LshG1 z@nQh8kqKs7f+=Pbs9qMRvI}MtuHI^=vWeNQ_c>zSrI_tDA4vL1G23#EcvoR|Y%&3} zo0CG5fZ2o*FdP41w)Nwf&4I#fd#>NI>UwdemDb8J+ZEQvF?&py$#F4Jarsq zn}drDv#+4el*Jy1k`FD+MmaNP(|88Vj?EgFov8zSHnk%#`*I2*U^dlJm|gqGF}r2R zJDmlyuc#>6n9Vw9V>SU4CAKb@&8h~o_e2hMQ3+=2x!4tEV*s;}31-u-#%x>6!fapK z1Q0MgkI*qYiLe7^dxRT?d&zBxP?)`Y#B2;;HZs9%i!jA(U$V_u(FM$=T4Qz{xR&~r zWaxs~SJ80+v&~nR3p$wX2`&$NY9A65W?vySci{yI?lq>aBJv zo0#o-pCi^?irH@Sfux@lvn}U{cNJ#GCKE8bIVm&=m`xY~v+)mRTR)E394O4T=lWe) zb-g&#N^9kq?Fwt-m^~)UFDF(AAOtEA3woS1In@{v9V0L`2-=v`n zn2m>s+099ykAT@!Ys|J(>_Q>Tj?eXr>P!5216;JmJa6EtG6}QylNgKH`^Y#Jv-g)# zmw>AyN@K8-@qTZHQ2qt?yRV z_iPMcHZs9%i!jA(U$V_u(FM$=T4Qz{xR&}gW$1$0*U@nSv&~nR3p$wX2`�R{M~k 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 z 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⁡t$Fe3a$p9*ZI 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∓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%0DitnquS$_Wp@;&5I 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 z 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/vj)q2{*&xew!F1wnY|9F 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

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

@jU|NNQmnsC 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 literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json new file mode 100644 index 000000000000..54274e52ee76 --- /dev/null +++ b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json @@ -0,0 +1,2413 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "Microsoft.Azure.PowerShell.Cmdlets.Accounts/1.0.0": { + "dependencies": { + "Azure.Core": "1.22.0", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication": "1.0.0", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Authentication.ResourceManager": "1.0.0", + "Microsoft.Azure.PowerShell.Authenticators": "1.0.0", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "NETStandard.Library": "2.0.3", + "Newtonsoft.Json": "10.0.3", + "PowerShellStandard.Library": "5.1.0", + "System.Security.Permissions": "4.5.0" + }, + "runtime": { + "Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll": {} + } + }, + "Azure.Core/1.22.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Memory.Data": "1.0.2", + "System.Numerics.Vectors": "4.5.0", + "System.Text.Encodings.Web": "4.7.2", + "System.Text.Json": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/Azure.Core.dll": { + "assemblyVersion": "1.22.0.0", + "fileVersion": "1.2200.22.6212" + } + } + }, + "Azure.Identity/1.5.0": { + "dependencies": { + "Azure.Core": "1.22.0", + "Microsoft.Identity.Client": "4.30.1", + "Microsoft.Identity.Client.Extensions.Msal": "2.18.4", + "System.Memory": "4.5.4", + "System.Security.Cryptography.ProtectedData": "4.5.0", + "System.Text.Json": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/Azure.Identity.dll": { + "assemblyVersion": "1.5.0.0", + "fileVersion": "1.500.21.51401" + } + } + }, + "Hyak.Common/1.2.2": { + "dependencies": { + "NETStandard.Library": "2.0.3", + "Newtonsoft.Json": "10.0.3", + "System.Reflection": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.4/Hyak.Common.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.2.2.0" + } + } + }, + "Microsoft.ApplicationInsights/2.12.0": { + "dependencies": { + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Runtime.InteropServices": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.ApplicationInsights.dll": { + "assemblyVersion": "2.12.0.21496", + "fileVersion": "2.12.0.21496" + } + } + }, + "Microsoft.Azure.Common/2.2.1": { + "dependencies": { + "Hyak.Common": "1.2.2", + "NETStandard.Library": "2.0.3" + }, + "runtime": { + "lib/netstandard1.4/Microsoft.Azure.Common.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.2.1.0" + } + } + }, + "Microsoft.Azure.PowerShell.Authentication.Abstractions/1.3.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Aks/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Aks.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Authorization/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Authorization.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Compute/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Compute.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.KeyVault/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.NonGeneric": "4.3.0", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.KeyVault.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Monitor/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Monitor.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Network/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Network.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.PolicyInsights/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.ResourceManager/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Storage.Management/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "System.Collections.NonGeneric": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Websites/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Websites.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Common/1.3.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Common.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Common.Share/1.3.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Common.Share.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Storage/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Storage.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Strategies/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Strategies.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.1": { + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "4.700.20.21406" + } + } + }, + "Microsoft.CSharp/4.5.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.CSharp.dll": { + "assemblyVersion": "4.0.4.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "Microsoft.Identity.Client/4.30.1": { + "dependencies": { + "Microsoft.CSharp": "4.5.0", + "NETStandard.Library": "2.0.3", + "System.ComponentModel.TypeConverter": "4.3.0", + "System.Diagnostics.Process": "4.3.0", + "System.Dynamic.Runtime": "4.3.0", + "System.Private.Uri": "4.3.2", + "System.Runtime.Serialization.Formatters": "4.3.0", + "System.Runtime.Serialization.Json": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XDocument": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Microsoft.Identity.Client.dll": { + "assemblyVersion": "4.30.1.0", + "fileVersion": "4.30.1.0" + } + } + }, + "Microsoft.Identity.Client.Extensions.Msal/2.18.4": { + "dependencies": { + "Microsoft.Identity.Client": "4.30.1", + "System.Security.Cryptography.ProtectedData": "4.5.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll": { + "assemblyVersion": "2.18.4.0", + "fileVersion": "2.18.4.0" + } + } + }, + "Microsoft.NETCore.Platforms/1.1.1": {}, + "Microsoft.NETCore.Targets/1.1.3": {}, + "Microsoft.Rest.ClientRuntime/2.3.23": { + "dependencies": { + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.3.23.0" + } + } + }, + "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.Azure.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.3.18.0" + } + } + }, + "Microsoft.Win32.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "Microsoft.Win32.Registry/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1" + } + }, + "Newtonsoft.Json/10.0.3": { + "dependencies": { + "Microsoft.CSharp": "4.5.0", + "NETStandard.Library": "2.0.3", + "System.ComponentModel.TypeConverter": "4.3.0", + "System.Runtime.Serialization.Formatters": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Newtonsoft.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.3.21018" + } + } + }, + "PowerShellStandard.Library/5.1.0": {}, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.native.System/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "runtime.native.System.Net.Http/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "dependencies": { + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" + } + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "System.Buffers/4.5.1": { + "runtime": { + "lib/netstandard2.0/System.Buffers.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.28619.1" + } + } + }, + "System.Collections/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Collections.Concurrent/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.Concurrent.dll": { + "assemblyVersion": "4.0.13.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Collections.NonGeneric/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.NonGeneric.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Collections.Specialized/4.3.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.Specialized.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.ComponentModel.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel.Primitives/4.3.0": { + "dependencies": { + "System.ComponentModel": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.0/System.ComponentModel.Primitives.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel.TypeConverter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.NonGeneric": "4.3.0", + "System.Collections.Specialized": "4.3.0", + "System.ComponentModel": "4.3.0", + "System.ComponentModel.Primitives": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.5/System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Diagnostics.Debug/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.DiagnosticSource/4.6.0": { + "dependencies": { + "System.Memory": "4.5.4" + }, + "runtime": { + "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "4.0.4.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "System.Diagnostics.Process/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.Win32.Primitives": "4.3.0", + "Microsoft.Win32.Registry": "4.3.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Thread": "4.3.0", + "System.Threading.ThreadPool": "4.3.0", + "runtime.native.System": "4.3.0" + } + }, + "System.Diagnostics.Tools/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.Tracing/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Dynamic.Runtime/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Dynamic.Runtime.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Globalization/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Calendars/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Globalization": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "System.IO/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.IO": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Linq/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Linq.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Linq.Expressions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Linq.Expressions.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Memory/4.5.4": { + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.7.1" + }, + "runtime": { + "lib/netstandard2.0/System.Memory.dll": { + "assemblyVersion": "4.0.1.1", + "fileVersion": "4.6.28619.1" + } + } + }, + "System.Memory.Data/1.0.2": { + "dependencies": { + "System.Text.Encodings.Web": "4.7.2", + "System.Text.Json": "4.7.2" + }, + "runtime": { + "lib/netstandard2.0/System.Memory.Data.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.221.20802" + } + } + }, + "System.Numerics.Vectors/4.5.0": { + "runtime": { + "lib/netstandard2.0/System.Numerics.Vectors.dll": { + "assemblyVersion": "4.1.4.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.ObjectModel/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.ObjectModel.dll": { + "assemblyVersion": "4.0.13.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Private.DataContractSerialization/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XDocument": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Private.DataContractSerialization.dll": { + "assemblyVersion": "4.1.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Private.Uri/4.3.2": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "System.Reflection/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Reflection.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.TypeExtensions/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.5/System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Resources.ResourceManager/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "System.Runtime.CompilerServices.Unsafe/4.7.1": { + "runtime": { + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "4.0.6.0", + "fileVersion": "4.700.20.12001" + } + } + }, + "System.Runtime.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.Handles/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.InteropServices/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Runtime.Numerics/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Numerics.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Runtime.Serialization.Formatters/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0" + }, + "runtime": { + "lib/netstandard1.4/System.Runtime.Serialization.Formatters.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Runtime.Serialization.Json/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Private.DataContractSerialization": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Serialization.Json.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Serialization.Primitives.dll": { + "assemblyVersion": "4.1.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Security.AccessControl/4.5.0": { + "dependencies": { + "System.Security.Principal.Windows": "4.5.0" + }, + "runtime": { + "lib/netstandard2.0/System.Security.AccessControl.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.Apple": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.Cng/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Security.Cryptography.Csp/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "1.0.24212.1" + } + } + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Security.Cryptography.ProtectedData/4.5.0": { + "dependencies": { + "System.Memory": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.3.0", + "System.Security.Cryptography.Csp": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Permissions/4.5.0": { + "dependencies": { + "System.Security.AccessControl": "4.5.0" + }, + "runtime": { + "lib/netstandard2.0/System.Security.Permissions.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Security.Principal.Windows/4.5.0": { + "runtime": { + "lib/netstandard2.0/System.Security.Principal.Windows.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Security.SecureString/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Text.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Text.Encoding.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Text.Encodings.Web/4.7.2": { + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "4.0.5.1", + "fileVersion": "4.700.21.11602" + } + } + }, + "System.Text.Json/4.7.2": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.7.1", + "System.Text.Encodings.Web": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/System.Text.Json.dll": { + "assemblyVersion": "4.0.1.2", + "fileVersion": "4.700.20.21406" + } + } + }, + "System.Text.RegularExpressions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Text.RegularExpressions.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Threading.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading.Tasks/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Threading.Tasks.Extensions/4.5.4": { + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.7.1" + }, + "runtime": { + "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "4.2.0.1", + "fileVersion": "4.6.28619.1" + } + } + }, + "System.Threading.Thread/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Threading.Thread.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading.ThreadPool/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Threading.ThreadPool.dll": { + "assemblyVersion": "4.0.11.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.ReaderWriter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.ReaderWriter.dll": { + "assemblyVersion": "4.1.0.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XDocument.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XmlDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XmlDocument.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XmlSerializer/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XmlSerializer.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "Microsoft.Azure.PowerShell.Authentication/1.0.0": { + "dependencies": { + "Azure.Core": "1.22.0", + "Azure.Identity": "1.5.0", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "Microsoft.Azure.PowerShell.Authentication.dll": {} + } + }, + "Microsoft.Azure.PowerShell.Authentication.ResourceManager/1.0.0": { + "dependencies": { + "Azure.Core": "1.22.0", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication": "1.0.0", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll": {} + } + }, + "Microsoft.Azure.PowerShell.Authenticators/1.0.0": { + "dependencies": { + "Azure.Identity": "1.5.0", + "Microsoft.Azure.PowerShell.Authentication": "1.0.0" + }, + "runtime": { + "Microsoft.Azure.PowerShell.Authenticators.dll": {} + } + } + } + }, + "libraries": { + "Microsoft.Azure.PowerShell.Cmdlets.Accounts/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Azure.Core/1.22.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ze/xRCHSSDe5TIk5vBDbVrauW1EN7UIbnBvIBfMH8KSt/I9+/7yPAjTBDgNBk0IwG6WBV+BBHp4IUtS/PGAQwQ==", + "path": "azure.core/1.22.0", + "hashPath": "azure.core.1.22.0.nupkg.sha512" + }, + "Azure.Identity/1.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VfF88dqrgKXZNOS/y4XrX/jmIfP3pkY+hBUzBNpoKml1nR+QshX6XlXWyToLtWV80TDQ1CmUVCJksktDg5+j1w==", + "path": "azure.identity/1.5.0", + "hashPath": "azure.identity.1.5.0.nupkg.sha512" + }, + "Hyak.Common/1.2.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uZpnFn48nSQwHcO0/GSBZ7ExaO0sTXKv8KariXXEWLaB4Q3AeQoprYG4WpKsCT0ByW3YffETivgc5rcH5RRDvQ==", + "path": "hyak.common/1.2.2", + "hashPath": "hyak.common.1.2.2.nupkg.sha512" + }, + "Microsoft.ApplicationInsights/2.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4vZcVaxywAzfLm5mAc2/llaZQTzbCqu9KirxxI/t49AkZH5Qxf7JxuAMUuv2/6JEdOOkGDzpvdrrIlf6LkFGcg==", + "path": "microsoft.applicationinsights/2.12.0", + "hashPath": "microsoft.applicationinsights.2.12.0.nupkg.sha512" + }, + "Microsoft.Azure.Common/2.2.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-abzRooh4ACKjzAKxRB6r+SHKW3d+IrLcgtVG81D+3kQU/OMjAZS1oDp9CDalhSbmxa84u0MHM5N+AKeTtKPoiw==", + "path": "microsoft.azure.common/2.2.1", + "hashPath": "microsoft.azure.common.2.2.1.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Authentication.Abstractions/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bKDPidNeqBpTDikPnIuoMoGd26pD2PNE41cut0ASwL5exJwLNggYO55U+f/cJkgjCUMR8i5nqnlfpGHSS1I0vw==", + "path": "microsoft.azure.powershell.authentication.abstractions/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.authentication.abstractions.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Aks/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sUGkvOvpqlEK5zdZ7HWaou3GY5bnlNrE0LuZ137+TsNfgx2E3+0Ika3a02i/9+niDDf60xj4LaNOYDSuK5zdJA==", + "path": "microsoft.azure.powershell.clients.aks/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.aks.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Authorization/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Q760F40/qfas2Al+GQhhE4gJt768pQPxlCjqrjjkukgVsq+X/M8IqpCeBzbRTiiyerhcjJoyNxqlGuZpUhqGxw==", + "path": "microsoft.azure.powershell.clients.authorization/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.authorization.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Compute/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1fcsBdYMmEJPMPN8EAgJkaJ2WxxTKH3VcLECYdL2cfg2bgN8CKbbjSvarrXEezhyduE+LdYnL0e8Pigsnaj55Q==", + "path": "microsoft.azure.powershell.clients.compute/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.compute.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BIMthJ1x2vQAN3iWChnNj8BfgrXvKXn+n06E0/h2MNurMXbAOn5eiPIfE8bnj2BO99uSh1ns09yEgOTPJIvZBQ==", + "path": "microsoft.azure.powershell.clients.graph.rbac/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.graph.rbac.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.KeyVault/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MfvwM8ABj/EswmYu0Bf/8kyAO6kUv2zYSihVn384SVmypomVKUu69GN0VXKbmGaovPI8v3H41Ldp7DqbPRun5A==", + "path": "microsoft.azure.powershell.clients.keyvault/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.keyvault.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Monitor/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UyCKG5BWVjYFRtH2JNx6f4KdccaSqww2y0OE2PYgib8VhLqkoPr/BQg6vKzaGsghLIerZ/egQ7ntPPw3PCtS3w==", + "path": "microsoft.azure.powershell.clients.monitor/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.monitor.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Network/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YAAHxw+zzvkGNWAi668NSoTR+V/7vf+gRhu1oFa1O1/f2NGpz5XuqPrQyAPrri64hKqB/k3OMrM7sjlIv16dAg==", + "path": "microsoft.azure.powershell.clients.network/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.network.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.PolicyInsights/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-urRIwRVzzOwpk8HhKq/b785DiL/arnmGUHbN4HvRN6ZsBkE1PU431YwgUlofb9pfB3buLcl0XJFRPLBJ0yZJUw==", + "path": "microsoft.azure.powershell.clients.policyinsights/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.policyinsights.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.ResourceManager/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-juWnd63Z2Sp+6bvtOPOF0Gj1v2AfpxXcuyodd9+U7euBro2G7Yfo2UHmHo/uaYyQUbM3HaXJPvse7BLDKjhe6w==", + "path": "microsoft.azure.powershell.clients.resourcemanager/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.resourcemanager.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Storage.Management/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HPpTWIlN+5ALqJssL7+6BD/vYrWi3eWKQ3QpWYjCFk5c9HVLTNpP+M2dq9jbsxLsZj+5Pt6gC4FIS22Q13Uhag==", + "path": "microsoft.azure.powershell.clients.storage.management/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.storage.management.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Websites/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b5yBD9FrY02r0kdNNgZ+uU0/QsW3AtmnCE/x1mUG5j8ka/V04AYUo+sDokQBzu+vnK6Y6OrVDtyWjmnKTDHpWA==", + "path": "microsoft.azure.powershell.clients.websites/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.websites.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Common/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9jZYZ9LKbx16r69y7cO9d7bDjpE0/HgeBU386Y/O6q05VRaq2wAsB2rbQ9AjxcPGHfwS0+2US/RImSSqjVABRQ==", + "path": "microsoft.azure.powershell.common/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.common.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Common.Share/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4mJSjnwZVLQYWhP47eDzdt0yaLIf2I4pqaEIqcfAjkjdbKpnCXCnJUEFRId061yuKpq1LtfBZkHDRi68I5CJxg==", + "path": "microsoft.azure.powershell.common.share/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.common.share.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Storage/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fObXEcuhk1JUoQ0fiCV4nK4NJWqvsfsKCzapF7SFEQ87X6AasL6m5KGT8JQSnHmc849xxxaixPTxyWaf9BBlpw==", + "path": "microsoft.azure.powershell.storage/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.storage.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Strategies/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HwyxUwDHCmY6Zdxg2xpFC9Gqmu92Xr0cAr4ElWYwz8Z7PE9uYVkTpKMIKd7oIJJgsIANTfqEU1HKoeI3FXPLqw==", + "path": "microsoft.azure.powershell.strategies/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.strategies.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yuvf07qFWFqtK3P/MRkEKLhn5r2UbSpVueRziSqj0yJQIKFwG1pq9mOayK3zE5qZCTs0CbrwL9M6R8VwqyGy2w==", + "path": "microsoft.bcl.asyncinterfaces/1.1.1", + "hashPath": "microsoft.bcl.asyncinterfaces.1.1.1.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.Identity.Client/4.30.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xk8tJeGfB2yD3+d7a0DXyV7/HYyEG10IofUHYHoPYKmDbroi/j9t1BqSHgbq1nARDjg7m8Ki6e21AyNU7e/R4Q==", + "path": "microsoft.identity.client/4.30.1", + "hashPath": "microsoft.identity.client.4.30.1.nupkg.sha512" + }, + "Microsoft.Identity.Client.Extensions.Msal/2.18.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HpG4oLwhQsy0ce7OWq9iDdLtJKOvKRStIKoSEOeBMKuohfuOWNDyhg8fMAJkpG/kFeoe4J329fiMHcJmmB+FPw==", + "path": "microsoft.identity.client.extensions.msal/2.18.4", + "hashPath": "microsoft.identity.client.extensions.msal.2.18.4.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==", + "path": "microsoft.netcore.platforms/1.1.1", + "hashPath": "microsoft.netcore.platforms.1.1.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.1.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==", + "path": "microsoft.netcore.targets/1.1.3", + "hashPath": "microsoft.netcore.targets.1.1.3.nupkg.sha512" + }, + "Microsoft.Rest.ClientRuntime/2.3.23": { + "type": "package", + "serviceable": true, + "sha512": "sha512-92kNTi1N7zI5wwI2ZXswBRnk61OUYnuYJXrlgOhes5IsAqGmgw9DPGmhUzeY8OaZ8TTrQdDzvgXFnbCHwLzSVA==", + "path": "microsoft.rest.clientruntime/2.3.23", + "hashPath": "microsoft.rest.clientruntime.2.3.23.nupkg.sha512" + }, + "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+NVBWvRXNwaAPTZUxjUlQggsrf3X0GbiRoxYfgc3kG9E55ZxZxvZPT3nIfC4DNqzGSXUEvmLbckdXgBBzGdUaA==", + "path": "microsoft.rest.clientruntime.azure/3.3.19", + "hashPath": "microsoft.rest.clientruntime.azure.3.3.19.nupkg.sha512" + }, + "Microsoft.Win32.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "path": "microsoft.win32.primitives/4.3.0", + "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" + }, + "Microsoft.Win32.Registry/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Lw1/VwLH1yxz6SfFEjVRCN0pnflLEsWgnV4qsdJ512/HhTwnKXUG+zDQ4yTO3K/EJQemGoNaBHX5InISNKTzUQ==", + "path": "microsoft.win32.registry/4.3.0", + "hashPath": "microsoft.win32.registry.4.3.0.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + }, + "Newtonsoft.Json/10.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hSXaFmh7hNCuEoC4XNY5DrRkLDzYHqPx/Ik23R4J86Z7PE/Y6YidhG602dFVdLBRSdG6xp9NabH3dXpcoxWvww==", + "path": "newtonsoft.json/10.0.3", + "hashPath": "newtonsoft.json.10.0.3.nupkg.sha512" + }, + "PowerShellStandard.Library/5.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iYaRvQsM1fow9h3uEmio+2m2VXfulgI16AYHaTZ8Sf7erGe27Qc8w/h6QL5UPuwv1aXR40QfzMEwcCeiYJp2cw==", + "path": "powershellstandard.library/5.1.0", + "hashPath": "powershellstandard.library.5.1.0.nupkg.sha512" + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", + "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", + "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", + "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.native.System/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "path": "runtime.native.system/4.3.0", + "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Net.Http/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", + "path": "runtime.native.system.net.http/4.3.0", + "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "path": "runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", + "path": "runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", + "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", + "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", + "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", + "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", + "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", + "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Buffers/4.5.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==", + "path": "system.buffers/4.5.1", + "hashPath": "system.buffers.4.5.1.nupkg.sha512" + }, + "System.Collections/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "path": "system.collections/4.3.0", + "hashPath": "system.collections.4.3.0.nupkg.sha512" + }, + "System.Collections.Concurrent/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", + "path": "system.collections.concurrent/4.3.0", + "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" + }, + "System.Collections.NonGeneric/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", + "path": "system.collections.nongeneric/4.3.0", + "hashPath": "system.collections.nongeneric.4.3.0.nupkg.sha512" + }, + "System.Collections.Specialized/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==", + "path": "system.collections.specialized/4.3.0", + "hashPath": "system.collections.specialized.4.3.0.nupkg.sha512" + }, + "System.ComponentModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==", + "path": "system.componentmodel/4.3.0", + "hashPath": "system.componentmodel.4.3.0.nupkg.sha512" + }, + "System.ComponentModel.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==", + "path": "system.componentmodel.primitives/4.3.0", + "hashPath": "system.componentmodel.primitives.4.3.0.nupkg.sha512" + }, + "System.ComponentModel.TypeConverter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==", + "path": "system.componentmodel.typeconverter/4.3.0", + "hashPath": "system.componentmodel.typeconverter.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "path": "system.diagnostics.debug/4.3.0", + "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-mbBgoR0rRfl2uimsZ2avZY8g7Xnh1Mza0rJZLPcxqiMWlkGukjmRkuMJ/er+AhQuiRIh80CR/Hpeztr80seV5g==", + "path": "system.diagnostics.diagnosticsource/4.6.0", + "hashPath": "system.diagnostics.diagnosticsource.4.6.0.nupkg.sha512" + }, + "System.Diagnostics.Process/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==", + "path": "system.diagnostics.process/4.3.0", + "hashPath": "system.diagnostics.process.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", + "path": "system.diagnostics.tools/4.3.0", + "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tracing/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", + "path": "system.diagnostics.tracing/4.3.0", + "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" + }, + "System.Dynamic.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==", + "path": "system.dynamic.runtime/4.3.0", + "hashPath": "system.dynamic.runtime.4.3.0.nupkg.sha512" + }, + "System.Globalization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "path": "system.globalization/4.3.0", + "hashPath": "system.globalization.4.3.0.nupkg.sha512" + }, + "System.Globalization.Calendars/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", + "path": "system.globalization.calendars/4.3.0", + "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" + }, + "System.Globalization.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", + "path": "system.globalization.extensions/4.3.0", + "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" + }, + "System.IO/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "path": "system.io/4.3.0", + "hashPath": "system.io.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", + "path": "system.io.filesystem/4.3.0", + "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", + "path": "system.io.filesystem.primitives/4.3.0", + "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" + }, + "System.Linq/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "path": "system.linq/4.3.0", + "hashPath": "system.linq.4.3.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", + "path": "system.linq.expressions/4.3.0", + "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" + }, + "System.Memory/4.5.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", + "path": "system.memory/4.5.4", + "hashPath": "system.memory.4.5.4.nupkg.sha512" + }, + "System.Memory.Data/1.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JGkzeqgBsiZwKJZ1IxPNsDFZDhUvuEdX8L8BDC8N3KOj+6zMcNU28CNN59TpZE/VJYy9cP+5M+sbxtWJx3/xtw==", + "path": "system.memory.data/1.0.2", + "hashPath": "system.memory.data.1.0.2.nupkg.sha512" + }, + "System.Numerics.Vectors/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==", + "path": "system.numerics.vectors/4.5.0", + "hashPath": "system.numerics.vectors.4.5.0.nupkg.sha512" + }, + "System.ObjectModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "path": "system.objectmodel/4.3.0", + "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" + }, + "System.Private.DataContractSerialization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yDaJ2x3mMmjdZEDB4IbezSnCsnjQ4BxinKhRAaP6kEgL6Bb6jANWphs5SzyD8imqeC/3FxgsuXT6ykkiH1uUmA==", + "path": "system.private.datacontractserialization/4.3.0", + "hashPath": "system.private.datacontractserialization.4.3.0.nupkg.sha512" + }, + "System.Private.Uri/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", + "path": "system.private.uri/4.3.2", + "hashPath": "system.private.uri.4.3.2.nupkg.sha512" + }, + "System.Reflection/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "path": "system.reflection/4.3.0", + "hashPath": "system.reflection.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", + "path": "system.reflection.emit/4.3.0", + "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", + "path": "system.reflection.emit.ilgeneration/4.3.0", + "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", + "path": "system.reflection.emit.lightweight/4.3.0", + "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" + }, + "System.Reflection.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "path": "system.reflection.extensions/4.3.0", + "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" + }, + "System.Reflection.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "path": "system.reflection.primitives/4.3.0", + "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "path": "system.reflection.typeextensions/4.3.0", + "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "path": "system.resources.resourcemanager/4.3.0", + "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" + }, + "System.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "path": "system.runtime/4.3.0", + "hashPath": "system.runtime.4.3.0.nupkg.sha512" + }, + "System.Runtime.CompilerServices.Unsafe/4.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zOHkQmzPCn5zm/BH+cxC1XbUS3P4Yoi3xzW7eRgVpDR2tPGSzyMZ17Ig1iRkfJuY0nhxkQQde8pgePNiA7z7TQ==", + "path": "system.runtime.compilerservices.unsafe/4.7.1", + "hashPath": "system.runtime.compilerservices.unsafe.4.7.1.nupkg.sha512" + }, + "System.Runtime.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "path": "system.runtime.extensions/4.3.0", + "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" + }, + "System.Runtime.Handles/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "path": "system.runtime.handles/4.3.0", + "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "path": "system.runtime.interopservices/4.3.0", + "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" + }, + "System.Runtime.Numerics/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", + "path": "system.runtime.numerics/4.3.0", + "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Formatters/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KT591AkTNFOTbhZlaeMVvfax3RqhH1EJlcwF50Wm7sfnBLuHiOeZRRKrr1ns3NESkM20KPZ5Ol/ueMq5vg4QoQ==", + "path": "system.runtime.serialization.formatters/4.3.0", + "hashPath": "system.runtime.serialization.formatters.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Json/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CpVfOH0M/uZ5PH+M9+Gu56K0j9lJw3M+PKRegTkcrY/stOIvRUeonggxNrfBYLA5WOHL2j15KNJuTuld3x4o9w==", + "path": "system.runtime.serialization.json/4.3.0", + "hashPath": "system.runtime.serialization.json.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==", + "path": "system.runtime.serialization.primitives/4.3.0", + "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.AccessControl/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", + "path": "system.security.accesscontrol/4.5.0", + "hashPath": "system.security.accesscontrol.4.5.0.nupkg.sha512" + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", + "path": "system.security.cryptography.algorithms/4.3.0", + "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Cng/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", + "path": "system.security.cryptography.cng/4.3.0", + "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Csp/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", + "path": "system.security.cryptography.csp/4.3.0", + "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", + "path": "system.security.cryptography.encoding/4.3.0", + "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", + "path": "system.security.cryptography.openssl/4.3.0", + "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", + "path": "system.security.cryptography.primitives/4.3.0", + "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.ProtectedData/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==", + "path": "system.security.cryptography.protecteddata/4.5.0", + "hashPath": "system.security.cryptography.protecteddata.4.5.0.nupkg.sha512" + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", + "path": "system.security.cryptography.x509certificates/4.3.0", + "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" + }, + "System.Security.Permissions/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", + "path": "system.security.permissions/4.5.0", + "hashPath": "system.security.permissions.4.5.0.nupkg.sha512" + }, + "System.Security.Principal.Windows/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==", + "path": "system.security.principal.windows/4.5.0", + "hashPath": "system.security.principal.windows.4.5.0.nupkg.sha512" + }, + "System.Security.SecureString/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PnXp38O9q/2Oe4iZHMH60kinScv6QiiL2XH54Pj2t0Y6c2zKPEiAZsM/M3wBOHLNTBDFP0zfy13WN2M0qFz5jg==", + "path": "system.security.securestring/4.3.0", + "hashPath": "system.security.securestring.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "path": "system.text.encoding/4.3.0", + "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "path": "system.text.encoding.extensions/4.3.0", + "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" + }, + "System.Text.Encodings.Web/4.7.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iTUgB/WtrZ1sWZs84F2hwyQhiRH6QNjQv2DkwrH+WP6RoFga2Q1m3f9/Q7FG8cck8AdHitQkmkXSY8qylcDmuA==", + "path": "system.text.encodings.web/4.7.2", + "hashPath": "system.text.encodings.web.4.7.2.nupkg.sha512" + }, + "System.Text.Json/4.7.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TcMd95wcrubm9nHvJEQs70rC0H/8omiSGGpU4FQ/ZA1URIqD4pjmFJh2Mfv1yH1eHgJDWTi2hMDXwTET+zOOyg==", + "path": "system.text.json/4.7.2", + "hashPath": "system.text.json.4.7.2.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", + "path": "system.text.regularexpressions/4.3.0", + "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" + }, + "System.Threading/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "path": "system.threading/4.3.0", + "hashPath": "system.threading.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "path": "system.threading.tasks/4.3.0", + "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks.Extensions/4.5.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "path": "system.threading.tasks.extensions/4.5.4", + "hashPath": "system.threading.tasks.extensions.4.5.4.nupkg.sha512" + }, + "System.Threading.Thread/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", + "path": "system.threading.thread/4.3.0", + "hashPath": "system.threading.thread.4.3.0.nupkg.sha512" + }, + "System.Threading.ThreadPool/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==", + "path": "system.threading.threadpool/4.3.0", + "hashPath": "system.threading.threadpool.4.3.0.nupkg.sha512" + }, + "System.Xml.ReaderWriter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "path": "system.xml.readerwriter/4.3.0", + "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" + }, + "System.Xml.XDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", + "path": "system.xml.xdocument/4.3.0", + "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", + "path": "system.xml.xmldocument/4.3.0", + "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlSerializer/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MYoTCP7EZ98RrANESW05J5ZwskKDoN0AuZ06ZflnowE50LTpbR5yRg3tHckTVm5j/m47stuGgCrCHWePyHS70Q==", + "path": "system.xml.xmlserializer/4.3.0", + "hashPath": "system.xml.xmlserializer.4.3.0.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Authentication/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.Azure.PowerShell.Authentication.ResourceManager/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.Azure.PowerShell.Authenticators/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll new file mode 100644 index 0000000000000000000000000000000000000000..2eff02a0138e8b7f4b1dd9ed2166bf818dffa7ce GIT binary patch literal 461744 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 + + + + Add-AzEnvironment + Add + AzEnvironment + + Adds endpoints and metadata for an instance of Azure Resource Manager. + + + + The Add-AzEnvironment cmdlet adds endpoints and metadata to enable Azure Resource Manager cmdlets to connect with a new instance of Azure Resource Manager. The built-in environments AzureCloud and AzureChinaCloud target existing public instances of Azure Resource Manager. + + + + Add-AzEnvironment + + Name + + Specifies the name of the environment to add. + + System.String + + System.String + + + None + + + PublishSettingsFileUrl + + Specifies the URL from which .publishsettings files can be downloaded. + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + TrafficManagerDnsSuffix + + Specifies the domain-name suffix for Azure Traffic Manager services. + + System.String + + System.String + + + None + + + SqlDatabaseDnsSuffix + + Specifies the domain-name suffix for Azure SQL Database servers. + + System.String + + System.String + + + None + + + AzureDataLakeStoreFileSystemEndpointSuffix + + Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net + + System.String + + System.String + + + None + + + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix + + Dns Suffix of Azure Data Lake Analytics job and catalog services + + System.String + + System.String + + + None + + + EnableAdfsAuthentication + + Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. + + + System.Management.Automation.SwitchParameter + + + False + + + AdTenant + + Specifies the default Active Directory tenant. + + System.String + + System.String + + + None + + + GraphAudience + + The audience for tokens authenticating with the AD Graph Endpoint. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + ServiceEndpoint + + Specifies the endpoint for Service Management (RDFE) requests. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + ManagementPortalUrl + + Specifies the URL for the Management Portal. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + ActiveDirectoryEndpoint + + Specifies the base authority for Azure Active Directory authentication. + + System.String + + System.String + + + None + + + ResourceManagerEndpoint + + Specifies the URL for Azure Resource Manager requests. + + System.String + + System.String + + + None + + + GalleryEndpoint + + Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. + + System.String + + System.String + + + None + + + ActiveDirectoryServiceEndpointResourceId + + Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. + + System.String + + System.String + + + None + + + GraphEndpoint + + Specifies the URL for Graph (Active Directory metadata) requests. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + MicrosoftGraphEndpointResourceId + + The resource identifier of Microsoft Graph + + System.String + + System.String + + + None + + + MicrosoftGraphUrl + + Microsoft Graph Url + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Add-AzEnvironment + + Name + + Specifies the name of the environment to add. + + System.String + + System.String + + + None + + + ARMEndpoint + + The Azure Resource Manager endpoint + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Add-AzEnvironment + + AutoDiscover + + Discovers environments via default or configured endpoint. + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Uri + + Specifies URI of the internet resource to fetch environments. + + System.Uri + + System.Uri + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + ActiveDirectoryEndpoint + + Specifies the base authority for Azure Active Directory authentication. + + System.String + + System.String + + + None + + + ActiveDirectoryServiceEndpointResourceId + + Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. + + System.String + + System.String + + + None + + + AdTenant + + Specifies the default Active Directory tenant. + + System.String + + System.String + + + None + + + ARMEndpoint + + The Azure Resource Manager endpoint + + System.String + + System.String + + + None + + + AutoDiscover + + Discovers environments via default or configured endpoint. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix + + Dns Suffix of Azure Data Lake Analytics job and catalog services + + System.String + + System.String + + + None + + + AzureDataLakeStoreFileSystemEndpointSuffix + + Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + EnableAdfsAuthentication + + Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + GalleryEndpoint + + Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. + + System.String + + System.String + + + None + + + GraphAudience + + The audience for tokens authenticating with the AD Graph Endpoint. + + System.String + + System.String + + + None + + + GraphEndpoint + + Specifies the URL for Graph (Active Directory metadata) requests. + + System.String + + System.String + + + None + + + ManagementPortalUrl + + Specifies the URL for the Management Portal. + + System.String + + System.String + + + None + + + MicrosoftGraphEndpointResourceId + + The resource identifier of Microsoft Graph + + System.String + + System.String + + + None + + + MicrosoftGraphUrl + + Microsoft Graph Url + + System.String + + System.String + + + None + + + Name + + Specifies the name of the environment to add. + + System.String + + System.String + + + None + + + PublishSettingsFileUrl + + Specifies the URL from which .publishsettings files can be downloaded. + + System.String + + System.String + + + None + + + ResourceManagerEndpoint + + Specifies the URL for Azure Resource Manager requests. + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + ServiceEndpoint + + Specifies the endpoint for Service Management (RDFE) requests. + + System.String + + System.String + + + None + + + SqlDatabaseDnsSuffix + + Specifies the domain-name suffix for Azure SQL Database servers. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + TrafficManagerDnsSuffix + + Specifies the domain-name suffix for Azure Traffic Manager services. + + System.String + + System.String + + + None + + + Uri + + Specifies URI of the internet resource to fetch environments. + + System.Uri + + System.Uri + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + System.Management.Automation.SwitchParameter + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + + + + + + + + + + ----- Example 1: Creating and modifying a new environment ----- + Add-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint TestADEndpoint ` + -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` + -ResourceManagerEndpoint TestRMEndpoint ` + -GalleryEndpoint TestGalleryEndpoint ` + -GraphEndpoint TestGraphEndpoint + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + +Set-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint NewTestADEndpoint ` + -GraphEndpoint NewTestGraphEndpoint | Format-List + +Name : TestEnvironment +EnableAdfsAuthentication : False +OnPremise : False +ActiveDirectoryServiceEndpointResourceId : TestADApplicationId +AdTenant : +GalleryUrl : TestGalleryEndpoint +ManagementPortalUrl : +ServiceManagementUrl : +PublishSettingsFileUrl : +ResourceManagerUrl : TestRMEndpoint +SqlDatabaseDnsSuffix : +StorageEndpointSuffix : +ActiveDirectoryAuthority : NewTestADEndpoint +GraphUrl : NewTestGraphEndpoint +GraphEndpointResourceId : +TrafficManagerDnsSuffix : +AzureKeyVaultDnsSuffix : +DataLakeEndpointResourceId : +AzureDataLakeStoreFileSystemEndpointSuffix : +AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : +AzureKeyVaultServiceEndpointResourceId : +AzureOperationalInsightsEndpointResourceId : +AzureOperationalInsightsEndpoint : +AzureAnalysisServicesEndpointSuffix : +AzureAttestationServiceEndpointSuffix : +AzureAttestationServiceEndpointResourceId : +AzureSynapseAnalyticsEndpointSuffix : +AzureSynapseAnalyticsEndpointResourceId : +VersionProfiles : {} +ExtendedProperties : {} +BatchEndpointResourceId : + + In this example we are creating a new Azure environment with sample endpoints using Add-AzEnvironment, and then we are changing the value of the ActiveDirectoryEndpoint and GraphEndpoint attributes of the created environment using the cmdlet Set-AzEnvironment. + + + + + + ------- Example 2: Discovering a new environment via Uri ------- + <# +Uri https://configuredmetadata.net returns an array of environment metadata. The following example contains a payload for the AzureCloud default environment. + +[ + { + "portal": "https://portal.azure.com", + "authentication": { + "loginEndpoint": "https://login.microsoftonline.com/", + "audiences": [ + "https://management.core.windows.net/" + ], + "tenant": "common", + "identityProvider": "AAD" + }, + "media": "https://rest.media.azure.net", + "graphAudience": "https://graph.windows.net/", + "graph": "https://graph.windows.net/", + "name": "AzureCloud", + "suffixes": { + "azureDataLakeStoreFileSystem": "azuredatalakestore.net", + "acrLoginServer": "azurecr.io", + "sqlServerHostname": ".database.windows.net", + "azureDataLakeAnalyticsCatalogAndJob": "azuredatalakeanalytics.net", + "keyVaultDns": "vault.azure.net", + "storage": "core.windows.net", + "azureFrontDoorEndpointSuffix": "azurefd.net" + }, + "batch": "https://batch.core.windows.net/", + "resourceManager": "https://management.azure.com/", + "vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json", + "activeDirectoryDataLake": "https://datalake.azure.net/", + "sqlManagement": "https://management.core.windows.net:8443/", + "gallery": "https://gallery.azure.com/" + }, +…… +] +#> + +Add-AzEnvironment -AutoDiscover -Uri https://configuredmetadata.net + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + + In this example, we are discovering a new Azure environment from the `https://configuredmetadata.net` Uri. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/add-azenvironment + + + Get-AzEnvironment + + + + Remove-AzEnvironment + + + + Set-AzEnvironment + + + + + + + Clear-AzContext + Clear + AzContext + + Remove all Azure credentials, account, and subscription information. + + + + Remove all Azure Credentials, account, and subscription information. + + + + Clear-AzContext + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Delete all users and groups from the global scope without prompting + + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + Return a value indicating success or failure + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Clear the context only for the current PowerShell session, or for all sessions. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Delete all users and groups from the global scope without prompting + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + Return a value indicating success or failure + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Clear the context only for the current PowerShell session, or for all sessions. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Boolean + + + + + + + + + + + + + + --------------- Example 1: Clear global context --------------- + Clear-AzContext -Scope CurrentUser + + Remove all account, subscription, and credential information for any powershell session. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/clear-azcontext + + + + + + Clear-AzDefault + Clear + AzDefault + + Clears the defaults set by the user in the current context. + + + + The Clear-AzDefault cmdlet removes the defaults set by the user depending on the switch parameters specified by the user. + + + + Clear-AzDefault + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove all defaults if no default is specified + + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + {{Fill PassThru Description}} + + + System.Management.Automation.SwitchParameter + + + False + + + ResourceGroup + + Clear Default Resource Group + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove all defaults if no default is specified + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + {{Fill PassThru Description}} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + ResourceGroup + + Clear Default Resource Group + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.Management.Automation.SwitchParameter + + + + + + + + + + System.Boolean + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Clear-AzDefault + + This command removes all the defaults set by the user in the current context. + + + + + + -------------------------- Example 2 -------------------------- + Clear-AzDefault -ResourceGroup + + This command removes the default resource group set by the user in the current context. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/clear-azdefault + + + + + + Connect-AzAccount + Connect + AzAccount + + Connect to Azure with an authenticated account for use with cmdlets from the Az PowerShell modules. + + + + The `Connect-AzAccount` cmdlet connects to Azure with an authenticated account for use with cmdlets from the Az PowerShell modules. You can use this authenticated account only with Azure Resource Manager requests. To add an authenticated account for use with Service Management, use the `Add-AzureAccount` cmdlet from the Azure PowerShell module. If no context is found for the current user, the user's context list is populated with a context for each of their first 25 subscriptions. The list of contexts created for the user can be found by running `Get-AzContext -ListAvailable`. To skip this context population, specify the SkipContextPopulation switch parameter. After executing this cmdlet, you can disconnect from an Azure account using `Disconnect-AzAccount`. + + + + Connect-AzAccount + + AccessToken + + Specifies an access token. + > [!CAUTION] > Access tokens are a type of credential. You should take the appropriate security precautions to > keep them confidential. Access tokens also timeout and may prevent long running tasks from > completing. + + System.String + + System.String + + + None + + + AccountId + + Account Id / User Id / User Name to login with in Default (UserWithSubscriptionId) parameter set; Account ID for access token in AccessToken parameter set; Account ID for managed service in ManagedService parameter set. Can be a managed service resource ID, or the associated client ID. To use the system assigned identity, leave this field blank. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + GraphAccessToken + + AccessToken for Graph Service. + + System.String + + System.String + + + None + + + KeyVaultAccessToken + + AccessToken for KeyVault Service. + + System.String + + System.String + + + None + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + MicrosoftGraphAccessToken + + Access token to Microsoft Graph + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + SkipValidation + + Skip validation for access token. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + AccountId + + Account Id / User Id / User Name to login with in Default (UserWithSubscriptionId) parameter set; Account ID for access token in AccessToken parameter set; Account ID for managed service in ManagedService parameter set. Can be a managed service resource ID, or the associated client ID. To use the system assigned identity, leave this field blank. + + System.String + + System.String + + + None + + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + UseDeviceAuthentication + + Use device code authentication instead of a browser control. + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + AccountId + + Account Id / User Id / User Name to login with in Default (UserWithSubscriptionId) parameter set; Account ID for access token in AccessToken parameter set; Account ID for managed service in ManagedService parameter set. Can be a managed service resource ID, or the associated client ID. To use the system assigned identity, leave this field blank. + + System.String + + System.String + + + None + + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + Identity + + Login using a Managed Service Identity. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + ApplicationId + + Application ID of the service principal. + + System.String + + System.String + + + None + + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + System.String + + System.String + + + None + + + CertificateThumbprint + + Certificate Hash or Thumbprint. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SendCertificateChain + + Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. + + + System.Management.Automation.SwitchParameter + + + False + + + ServicePrincipal + + Indicates that this account authenticates by providing service principal credentials. + + + System.Management.Automation.SwitchParameter + + + False + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + ApplicationId + + Application ID of the service principal. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + FederatedToken + + Specifies a token provided by another identity provider. The issuer and subject in this token must be first configured to be trusted by the ApplicationId. + > [!CAUTION] > Federated tokens are a type of credential. You should take the appropriate security precautions to keep them confidential. Federated tokens also timeout and may prevent long running tasks from completing. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + ServicePrincipal + + Indicates that this account authenticates by providing service principal credentials. + + + System.Management.Automation.SwitchParameter + + + False + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + ApplicationId + + Application ID of the service principal. + + System.String + + System.String + + + None + + + CertificatePassword + + The password required to access the pkcs#12 certificate file. + + System.Security.SecureString + + System.Security.SecureString + + + None + + + CertificatePath + + The path of certficate file in pkcs#12 format. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SendCertificateChain + + Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. + + + System.Management.Automation.SwitchParameter + + + False + + + ServicePrincipal + + Indicates that this account authenticates by providing service principal credentials. + + + System.Management.Automation.SwitchParameter + + + False + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + Credential + + Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + ServicePrincipal + + Indicates that this account authenticates by providing service principal credentials. + + + System.Management.Automation.SwitchParameter + + + False + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + Credential + + Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + AccessToken + + Specifies an access token. + > [!CAUTION] > Access tokens are a type of credential. You should take the appropriate security precautions to > keep them confidential. Access tokens also timeout and may prevent long running tasks from > completing. + + System.String + + System.String + + + None + + + AccountId + + Account Id / User Id / User Name to login with in Default (UserWithSubscriptionId) parameter set; Account ID for access token in AccessToken parameter set; Account ID for managed service in ManagedService parameter set. Can be a managed service resource ID, or the associated client ID. To use the system assigned identity, leave this field blank. + + System.String + + System.String + + + None + + + ApplicationId + + Application ID of the service principal. + + System.String + + System.String + + + None + + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + System.String + + System.String + + + None + + + CertificatePassword + + The password required to access the pkcs#12 certificate file. + + System.Security.SecureString + + System.Security.SecureString + + + None + + + CertificatePath + + The path of certficate file in pkcs#12 format. + + System.String + + System.String + + + None + + + CertificateThumbprint + + Certificate Hash or Thumbprint. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + Credential + + Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + FederatedToken + + Specifies a token provided by another identity provider. The issuer and subject in this token must be first configured to be trusted by the ApplicationId. + > [!CAUTION] > Federated tokens are a type of credential. You should take the appropriate security precautions to keep them confidential. Federated tokens also timeout and may prevent long running tasks from completing. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + GraphAccessToken + + AccessToken for Graph Service. + + System.String + + System.String + + + None + + + Identity + + Login using a Managed Service Identity. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + KeyVaultAccessToken + + AccessToken for KeyVault Service. + + System.String + + System.String + + + None + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + MicrosoftGraphAccessToken + + Access token to Microsoft Graph + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SendCertificateChain + + Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + ServicePrincipal + + Indicates that this account authenticates by providing service principal credentials. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + SkipContextPopulation + + Skips context population if no contexts are found. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + SkipValidation + + Skip validation for access token. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + UseDeviceAuthentication + + Use device code authentication instead of a browser control. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + + + + + + + + + + + + ------------ Example 1: Connect to an Azure account ------------ + Connect-AzAccount + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + Example 2: Connect to Azure using organizational ID credentials + $Credential = Get-Credential +Connect-AzAccount -Credential $Credential + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + Example 3: Connect to Azure using a service principal account + $Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ApplicationId, $SecuredPassword +Connect-AzAccount -ServicePrincipal -TenantId $TenantId -Credential $Credential + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +xxxx-xxxx-xxxx-xxxx Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + Example 4: Use an interactive login to connect to a specific tenant and subscription + Connect-AzAccount -Tenant 'xxxx-xxxx-xxxx-xxxx' -SubscriptionId 'yyyy-yyyy-yyyy-yyyy' + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + ----- Example 5: Connect using a Managed Service Identity ----- + Connect-AzAccount -Identity + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +MSI@50342 Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + Example 6: Connect using Managed Service Identity login and ClientId + $identity = Get-AzUserAssignedIdentity -ResourceGroupName 'myResourceGroup' -Name 'myUserAssignedIdentity' +Get-AzVM -ResourceGroupName contoso -Name testvm | Update-AzVM -IdentityType UserAssigned -IdentityId $identity.Id +Connect-AzAccount -Identity -AccountId $identity.ClientId # Run on the virtual machine + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +yyyy-yyyy-yyyy-yyyy Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + ------------ Example 7: Connect using certificates ------------ + $Thumbprint = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' +$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy' +$ApplicationId = '00000000-0000-0000-0000-00000000' +Connect-AzAccount -CertificateThumbprint $Thumbprint -ApplicationId $ApplicationId -Tenant $TenantId -ServicePrincipal + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +xxxxxxxx-xxxx-xxxx-xxxxxxxxx Subscription1 yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy AzureCloud + +Account : xxxxxxxx-xxxx-xxxx-xxxxxxxx +SubscriptionName : MyTestSubscription +SubscriptionId : zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz +TenantId : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy +Environment : AzureCloud + + + + + + + + -------------- Example 8: Connect with AuthScope -------------- + Connect-AzAccount -AuthScope Storage + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +yyyy-yyyy-yyyy-yyyy Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + ---------- Example 9: Connect using certificate file ---------- + $securePassword = $plainPassword | ConvertTo-SecureString -AsPlainText -Force +$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy' +$ApplicationId = 'zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz' +Connect-AzAccount -ServicePrincipal -ApplicationId $ApplicationId -TenantId $TenantId -CertificatePath './certificatefortest.pfx' -CertificatePassword $securePassword + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +xxxxxxxx-xxxx-xxxx-xxxxxxxx Subscription1 yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy AzureCloud + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/connect-azaccount + + + + + + Disable-AzContextAutosave + Disable + AzContextAutosave + + Turn off autosaving Azure credentials. Your login information will be forgotten the next time you open a PowerShell window + + + + Turn off autosaving Azure credentials. Your login information will be forgotten the next time you open a PowerShell window + + + + Disable-AzContextAutosave + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings + + + + + + + + + + + + + + ---------- Example 1: Disable autosaving the context ---------- + Disable-AzContextAutosave + + Disable autosave for the current user. + + + + + + -------------------------- Example 2 -------------------------- + <!-- Aladdin Generated Example --> +Disable-AzContextAutosave -Scope Process + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/disable-azcontextautosave + + + + + + Disable-AzDataCollection + Disable + AzDataCollection + + Opts out of collecting data to improve the Azure PowerShell cmdlets. Data is collected by default unless you explicitly opt out. + + + + The `Disable-AzDataCollection` cmdlet is used to opt out of data collection. Azure PowerShell automatically collects telemetry data by default. To disable data collection, you must explicitly opt-out. Microsoft aggregates collected data to identify patterns of usage, to identify common issues, and to improve the experience of Azure PowerShell. Microsoft Azure PowerShell doesn't collect any private or personal data. If you've previously opted out, run the `Enable-AzDataCollection` cmdlet to re-enable data collection for the current user on the current machine. + + + + Disable-AzDataCollection + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Void + + + + + + + + + + + + + + -- Example 1: Disabling data collection for the current user -- + Disable-AzDataCollection + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/disable-azdatacollection + + + Enable-AzDataCollection + + + + + + + Disable-AzureRmAlias + Disable + AzureRmAlias + + Disables AzureRm prefix aliases for Az modules. + + + + Disables AzureRm prefix aliases for Az modules. If -Module is specified, only modules listed will have aliases disabled. Otherwise all AzureRm aliases are disabled. + + + + Disable-AzureRmAlias + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Module + + Indicates which modules to disable aliases for. If none are specified, default is all enabled modules. + + System.String[] + + System.String[] + + + None + + + PassThru + + If specified, cmdlet will return all disabled aliases + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Indicates what scope aliases should be disabled for. Default is 'Process' + + + Process + CurrentUser + LocalMachine + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Module + + Indicates which modules to disable aliases for. If none are specified, default is all enabled modules. + + System.String[] + + System.String[] + + + None + + + PassThru + + If specified, cmdlet will return all disabled aliases + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Indicates what scope aliases should be disabled for. Default is 'Process' + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.String + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Disable-AzureRmAlias + + Disables all AzureRm prefixes for the current PowerShell session. + + + + + + -------------------------- Example 2 -------------------------- + Disable-AzureRmAlias -Module Az.Accounts -Scope CurrentUser + + Disables AzureRm aliases for the Az.Accounts module for both the current process and for the current user. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/disable-azurermalias + + + + + + Disconnect-AzAccount + Disconnect + AzAccount + + Disconnects a connected Azure account and removes all credentials and contexts associated with that account. + + + + The Disconnect-AzAccount cmdlet disconnects a connected Azure account and removes all credentials and contexts (subscription and tenant information) associated with that account. After executing this cmdlet, you will need to login again using Connect-AzAccount. + + + + Disconnect-AzAccount + + ApplicationId + + ServicePrincipal id (globally unique id) + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + TenantId + + Tenant id (globally unique id) + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + Disconnect-AzAccount + + AzureContext + + Context + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + Disconnect-AzAccount + + ContextName + + Name of the context to log out of + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + Disconnect-AzAccount + + InputObject + + The account object to remove + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + Disconnect-AzAccount + + Username + + User name of the form 'user@contoso.org' + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + ApplicationId + + ServicePrincipal id (globally unique id) + + System.String + + System.String + + + None + + + AzureContext + + Context + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + ContextName + + Name of the context to log out of + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + InputObject + + The account object to remove + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + TenantId + + Tenant id (globally unique id) + + System.String + + System.String + + + None + + + Username + + User name of the form 'user@contoso.org' + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + + + + + + + + + + + + ----------- Example 1: Logout of the current account ----------- + Disconnect-AzAccount + + Logs out of the Azure account associated with the current context. + + + + + + Example 2: Logout of the account associated with a particular context + Get-AzContext "Work" | Disconnect-AzAccount -Scope CurrentUser + + Logs out the account associated with the given context (named 'Work'). Because this uses the 'CurrentUser' scope, all credentials and contexts will be permanently deleted. + + + + + + ------------- Example 3: Log out a particular user ------------- + Disconnect-AzAccount -Username 'user1@contoso.org' + + Logs out the 'user1@contoso.org' user - all credentials and all contexts associated with this user will be removed. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/disconnect-azaccount + + + + + + Enable-AzContextAutosave + Enable + AzContextAutosave + + Azure contexts are PowerShell objects representing your active subscription to run commands against, and the authentication information needed to connect to an Azure cloud. With Azure contexts, Azure PowerShell doesn't need to reauthenticate your account each time you switch subscriptions. For more information, see Azure PowerShell context objects (https://docs.microsoft.com/powershell/azure/context-persistence). + This cmdlet allows the Azure context information to be saved and automatically loaded when you start a PowerShell process. For example, when opening a new window. + + + + Allows the Azure context information to be saved and automatically loaded when a PowerShell process starts. The context is saved at the end of the execution of any cmdlet that affects the context. For example, any profile cmdlet. If you're using user authentication, then tokens can be updated during the course of running any cmdlet. + + + + Enable-AzContextAutosave + + DefaultProfile + + The credentials, tenant, and subscription used for communication with Azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes. For example, whether changes apply only to the current process, or to all sessions started by this user. Changes made with the scope `CurrentUser` will affect all PowerShell sessions started by the user. If a particular session needs to have different settings, use the scope `Process`. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + CurrentUser + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet isn't run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with Azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes. For example, whether changes apply only to the current process, or to all sessions started by this user. Changes made with the scope `CurrentUser` will affect all PowerShell sessions started by the user. If a particular session needs to have different settings, use the scope `Process`. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + CurrentUser + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet isn't run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings + + + + + + + + + + + + + + Example 1: Enable autosaving credentials for the current user + Enable-AzContextAutosave + + + + + + + + -------------------------- Example 2 -------------------------- + <!-- Aladdin Generated Example --> +Enable-AzContextAutosave -Scope Process + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/enable-azcontextautosave + + + + + + Enable-AzDataCollection + Enable + AzDataCollection + + Enables Azure PowerShell to collect data to improve the user experience with the Azure PowerShell cmdlets. Executing this cmdlet opts in to data collection for the current user on the current machine. Data is collected by default unless you explicitly opt out. + + + + The `Enable-AzDataCollection` cmdlet is used to opt in to data collection. Azure PowerShell automatically collects telemetry data by default. Microsoft aggregates collected data to identify patterns of usage, to identify common issues, and to improve the experience of Azure PowerShell. Microsoft Azure PowerShell doesn't collect any private or personal data. To disable data collection, you must explicitly opt out by executing `Disable-AzDataCollection`. + + + + Enable-AzDataCollection + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Void + + + + + + + + + + + + + + --- Example 1: Enabling data collection for the current user --- + Enable-AzDataCollection + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/enable-azdatacollection + + + Disable-AzDataCollection + + + + + + + Enable-AzureRmAlias + Enable + AzureRmAlias + + Enables AzureRm prefix aliases for Az modules. + + + + Enables AzureRm prefix aliases for Az modules. If -Module is specified, only modules listed will have aliases enabled. Otherwise all AzureRm aliases are enabled. + + + + Enable-AzureRmAlias + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Module + + Indicates which modules to enable aliases for. If none are specified, default is all modules. + + System.String[] + + System.String[] + + + None + + + PassThru + + If specified, cmdlet will return all aliases enabled + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Indicates what scope aliases should be enabled for. Default is 'Local' + + + Local + Process + CurrentUser + LocalMachine + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Module + + Indicates which modules to enable aliases for. If none are specified, default is all modules. + + System.String[] + + System.String[] + + + None + + + PassThru + + If specified, cmdlet will return all aliases enabled + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Indicates what scope aliases should be enabled for. Default is 'Local' + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.String + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Enable-AzureRmAlias + + Enables all AzureRm prefixes for the current PowerShell session. + + + + + + -------------------------- Example 2 -------------------------- + Enable-AzureRmAlias -Module Az.Accounts -Scope CurrentUser + + Enables AzureRm aliases for the Az.Accounts module for both the current process and for the current user. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/enable-azurermalias + + + + + + Get-AzAccessToken + Get + AzAccessToken + + Get raw access token. When using -ResourceUrl, please make sure the value does match current Azure environment. You may refer to the value of `(Get-AzContext).Environment`. + + + + Get access token + + + + Get-AzAccessToken + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceTypeName + + Optional resource type name, supported values: AadGraph, AnalysisServices, Arm, Attestation, Batch, DataLake, KeyVault, MSGraph, OperationalInsights, ResourceManager, Storage, Synapse. Default value is Arm if not specified. + + System.String + + System.String + + + None + + + TenantId + + Optional Tenant Id. Use tenant id of default context if not specified. + + System.String + + System.String + + + None + + + + Get-AzAccessToken + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceUrl + + Resource url for that you're requesting token, e.g. 'https://graph.microsoft.com/'. + + System.String + + System.String + + + None + + + TenantId + + Optional Tenant Id. Use tenant id of default context if not specified. + + System.String + + System.String + + + None + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceTypeName + + Optional resource type name, supported values: AadGraph, AnalysisServices, Arm, Attestation, Batch, DataLake, KeyVault, MSGraph, OperationalInsights, ResourceManager, Storage, Synapse. Default value is Arm if not specified. + + System.String + + System.String + + + None + + + ResourceUrl + + Resource url for that you're requesting token, e.g. 'https://graph.microsoft.com/'. + + System.String + + System.String + + + None + + + TenantId + + Optional Tenant Id. Use tenant id of default context if not specified. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAccessToken + + + + + + + + + + + + + + ------- Example 1 Get the access token for ARM endpoint ------- + Get-AzAccessToken + + Get access token of current account for ResourceManager endpoint + + + + + + - Example 2 Get the access token for Microsoft Graph endpoint - + Get-AzAccessToken -ResourceTypeName MSGraph + + Get access token of Microsoft Graph endpoint for current account + + + + + + - Example 3 Get the access token for Microsoft Graph endpoint - + Get-AzAccessToken -ResourceUrl "https://graph.microsoft.com/" + + Get access token of Microsoft Graph endpoint for current account + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/get-azaccesstoken + + + + + + Get-AzContext + Get + AzContext + + Gets the metadata used to authenticate Azure Resource Manager requests. + + + + The Get-AzContext cmdlet gets the current metadata used to authenticate Azure Resource Manager requests. This cmdlet gets the Active Directory account, Active Directory tenant, Azure subscription, and the targeted Azure environment. Azure Resource Manager cmdlets use these settings by default when making Azure Resource Manager requests. When the available amount of subscription exceeds the default limit of 25, some subscriptions may not show up in the results of `Get-AzContext -ListAvailable`. Please run `Connect-AzAccount -MaxContextPopulation <int>` to get more contexts. + + + + Get-AzContext + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ListAvailable + + List all available contexts in the current session. + + + System.Management.Automation.SwitchParameter + + + False + + + RefreshContextFromTokenCache + + Refresh contexts from token cache + + + System.Management.Automation.SwitchParameter + + + False + + + + Get-AzContext + + Name + + The name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ListAvailable + + List all available contexts in the current session. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Name + + The name of the context + + System.String + + System.String + + + None + + + RefreshContextFromTokenCache + + Refresh contexts from token cache + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + ------------ Example 1: Getting the current context ------------ + Connect-AzAccount +Get-AzContext + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Subscription1 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... + + In this example we are logging into our account with an Azure subscription using Connect-AzAccount, and then we are getting the context of the current session by calling Get-AzContext. + + + + + + ---------- Example 2: Listing all available contexts ---------- + Get-AzContext -ListAvailable + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Subscription1 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... +Subscription2 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription2 AzureCloud xxxxxxxx-x... +Subscription3 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription3 AzureCloud xxxxxxxx-x... + + In this example, all currently available contexts are displayed. The user may select one of these contexts using Select-AzContext. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/get-azcontext + + + Set-AzContext + + + + Connect-AzAccount + + + + + + + Get-AzContextAutosaveSetting + Get + AzContextAutosaveSetting + + Display metadata about the context autosave feature, including whether the context is automatically saved, and where saved context and credential information can be found. + + + + Display metadata about the context autosave feature, including whether the context is automatically saved, and where saved context and credential information can be found. + + + + Get-AzContextAutosaveSetting + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings + + + + + + + + + + + + + + ------ Get context save metadata for the current session ------ + Get-AzContextAutosaveSetting + +Mode : Process +ContextDirectory : None +ContextFile : None +CacheDirectory : None +CacheFile : None +Settings : {} + + Get details about whether and where the context is saved. In the above example, the autosave feature has been disabled. + + + + + + -------- Get context save metadata for the current user -------- + Get-AzContextAutosaveSetting -Scope CurrentUser + +Mode : CurrentUser +ContextDirectory : C:\Users\contoso\AppData\Roaming\Windows Azure Powershell +ContextFile : AzureRmContext.json +CacheDirectory : C:\Users\contoso\AppData\Roaming\Windows Azure Powershell +CacheFile : TokenCache.dat +Settings : {} + + Get details about whether and where the context is saved by default for the current user. Note that this may be different than the settings that are active in the current session. In the above example, the autosave feature has been enabled, and data is saved to the default location. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/get-azcontextautosavesetting + + + + + + Get-AzDefault + Get + AzDefault + + Get the defaults set by the user in the current context. + + + + The Get-AzDefault cmdlet gets the Resource Group that the user has set as default in the current context. + + + + Get-AzDefault + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceGroup + + Display Default Resource Group + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceGroup + + Display Default Resource Group + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.Management.Automation.SwitchParameter + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSResourceGroup + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-AzDefault + +Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup +Name : myResourceGroup +Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties +Location : eastus +ManagedBy : +Tags : + + This command returns the current defaults if there are defaults set, or returns nothing if no default is set. + + + + + + -------------------------- Example 2 -------------------------- + Get-AzDefault -ResourceGroup + +Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup +Name : myResourceGroup +Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties +Location : eastus +ManagedBy : +Tags : + + This command returns the current default Resource Group if there is a default set, or returns nothing if no default is set. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/get-azdefault + + + + + + Get-AzEnvironment + Get + AzEnvironment + + Get endpoints and metadata for an instance of Azure services. + + + + The Get-AzEnvironment cmdlet gets endpoints and metadata for an instance of Azure services. + + + + Get-AzEnvironment + + Name + + Specifies the name of the Azure instance to get. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Name + + Specifies the name of the Azure instance to get. + + System.String + + System.String + + + None + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + + + + + + + + + + ---------- Example 1: Getting all Azure environments ---------- + Get-AzEnvironment + +Name Resource Manager Url ActiveDirectory Authority Type +---- -------------------- ------------------------- ---- +AzureUSGovernment https://management.usgovcloudapi.net/ https://login.microsoftonline.us/ Built-in +AzureGermanCloud https://management.microsoftazure.de/ https://login.microsoftonline.de/ Built-in +AzureCloud https://management.azure.com/ https://login.microsoftonline.com/ Built-in +AzureChinaCloud https://management.chinacloudapi.cn/ https://login.chinacloudapi.cn/ Built-in + + This example shows how to get the endpoints and metadata for the AzureCloud (default) environment. + + + + + + -------- Example 2: Getting the AzureCloud environment -------- + Get-AzEnvironment -Name AzureCloud + +Name Resource Manager Url ActiveDirectory Authority Type +---- -------------------- ------------------------- ---- +AzureCloud https://management.azure.com/ https://login.microsoftonline.com/ Built-in + + This example shows how to get the endpoints and metadata for the AzureCloud (default) environment. + + + + + + ------ Example 3: Getting the AzureChinaCloud environment ------ + Get-AzEnvironment -Name AzureChinaCloud | Format-List + +Name : AzureChinaCloud +Type : Built-in +EnableAdfsAuthentication : False +OnPremise : False +ActiveDirectoryServiceEndpointResourceId : https://management.core.chinacloudapi.cn/ +AdTenant : Common +GalleryUrl : https://gallery.azure.com/ +ManagementPortalUrl : https://go.microsoft.com/fwlink/?LinkId=301902 +ServiceManagementUrl : https://management.core.chinacloudapi.cn/ +PublishSettingsFileUrl : https://go.microsoft.com/fwlink/?LinkID=301776 +ResourceManagerUrl : https://management.chinacloudapi.cn/ +SqlDatabaseDnsSuffix : .database.chinacloudapi.cn +StorageEndpointSuffix : core.chinacloudapi.cn +ActiveDirectoryAuthority : https://login.chinacloudapi.cn/ +GraphUrl : https://graph.chinacloudapi.cn/ +GraphEndpointResourceId : https://graph.chinacloudapi.cn/ +TrafficManagerDnsSuffix : trafficmanager.cn +AzureKeyVaultDnsSuffix : vault.azure.cn +DataLakeEndpointResourceId : +AzureDataLakeStoreFileSystemEndpointSuffix : +AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : +AzureKeyVaultServiceEndpointResourceId : https://vault.azure.cn +ContainerRegistryEndpointSuffix : azurecr.cn +AzureOperationalInsightsEndpointResourceId : +AzureOperationalInsightsEndpoint : +AzureAnalysisServicesEndpointSuffix : asazure.chinacloudapi.cn +AnalysisServicesEndpointResourceId : https://region.asazure.chinacloudapi.cn +AzureAttestationServiceEndpointSuffix : +AzureAttestationServiceEndpointResourceId : +AzureSynapseAnalyticsEndpointSuffix : dev.azuresynapse.azure.cn +AzureSynapseAnalyticsEndpointResourceId : https://dev.azuresynapse.azure.cn + + This example shows how to get the endpoints and metadata for the AzureChinaCloud environment. + + + + + + ----- Example 4: Getting the AzureUSGovernment environment ----- + Get-AzEnvironment -Name AzureUSGovernment + +Name Resource Manager Url ActiveDirectory Authority Type +---- -------------------- ------------------------- ---- +AzureUSGovernment https://management.usgovcloudapi.net/ https://login.microsoftonline.us/ Built-in + + This example shows how to get the endpoints and metadata for the AzureUSGovernment environment. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/get-azenvironment + + + Add-AzEnvironment + + + + Remove-AzEnvironment + + + + Set-AzEnvironment + + + + + + + Get-AzSubscription + Get + AzSubscription + + Get subscriptions that the current account can access. + + + + The Get-AzSubscription cmdlet gets the subscription ID, subscription name, and home tenant for subscriptions that the current account can access. + + + + Get-AzSubscription + + AsJob + + Run cmdlet in the background and return a Job to track progress. + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + SubscriptionId + + Specifies the ID of the subscription to get. + + System.String + + System.String + + + None + + + TenantId + + Specifies the ID of the tenant that contains subscriptions to get. + + System.String + + System.String + + + None + + + + Get-AzSubscription + + AsJob + + Run cmdlet in the background and return a Job to track progress. + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + SubscriptionName + + Specifies the name of the subscription to get. + + System.String + + System.String + + + None + + + TenantId + + Specifies the ID of the tenant that contains subscriptions to get. + + System.String + + System.String + + + None + + + + + + AsJob + + Run cmdlet in the background and return a Job to track progress. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + SubscriptionId + + Specifies the ID of the subscription to get. + + System.String + + System.String + + + None + + + SubscriptionName + + Specifies the name of the subscription to get. + + System.String + + System.String + + + None + + + TenantId + + Specifies the ID of the tenant that contains subscriptions to get. + + System.String + + System.String + + + None + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + + + + + + + + + + + + ------- Example 1: Get all subscriptions in all tenants ------- + Get-AzSubscription + +Name Id TenantId State +---- -- -------- ----- +Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled +Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled +Subscription3 zzzz-zzzz-zzzz-zzzz bbbb-bbbb-bbbb-bbbb Enabled + + This command gets all subscriptions in all tenants that are authorized for the current account. + + + + + + ---- Example 2: Get all subscriptions for a specific tenant ---- + Get-AzSubscription -TenantId "aaaa-aaaa-aaaa-aaaa" + +Name Id TenantId State +---- -- -------- ----- +Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled +Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled + + List all subscriptions in the given tenant that are authorized for the current account. + + + + + + ---- Example 3: Get all subscriptions in the current tenant ---- + Get-AzSubscription + +Name Id TenantId State +---- -- -------- ----- +Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled +Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled + + This command gets all subscriptions in the current tenant that are authorized for the current user. + + + + + + Example 4: Change the current context to use a specific subscription + Get-AzSubscription -SubscriptionId "xxxx-xxxx-xxxx-xxxx" -TenantId "yyyy-yyyy-yyyy-yyyy" | Set-AzContext + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Subscription1 (xxxx-xxxx-xxxx-xxxx) azureuser@micros... Subscription1 AzureCloud yyyy-yyyy-yyyy-yyyy + + This command gets the specified subscription, and then sets the current context to use it. All subsequent cmdlets in this session use the new subscription (Contoso Subscription 1) by default. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/get-azsubscription + + + + + + Get-AzTenant + Get + AzTenant + + Gets tenants that are authorized for the current user. + + + + The Get-AzTenant cmdlet gets tenants authorized for the current user. + + + + Get-AzTenant + + TenantId + + Specifies the ID of the tenant that this cmdlet gets. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + TenantId + + Specifies the ID of the tenant that this cmdlet gets. + + System.String + + System.String + + + None + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + + + + + + + + + + + + ---------------- Example 1: Getting all tenants ---------------- + Connect-AzAccount +Get-AzTenant + +Id Name Category Domains +-- ----------- -------- ------- +xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Microsoft Home {test0.com, test1.com, test2.microsoft.com, test3.microsoft.com...} +yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy Testhost Home testhost.onmicrosoft.com + + This example shows how to get all of the authorized tenants of an Azure account. + + + + + + ------------- Example 2: Getting a specific tenant ------------- + Connect-AzAccount +Get-AzTenant -TenantId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + +Id Name Category Domains +-- ----------- -------- ------- +xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Microsoft Home {test0.com, test1.com, test2.microsoft.com, test3.microsoft.com...} + + This example shows how to get a specific authorized tenant of an Azure account. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/get-aztenant + + + + + + Import-AzContext + Import + AzContext + + Loads Azure authentication information from a file. + + + + The Import-AzContext cmdlet loads authentication information from a file to set the Azure environment and context. Cmdlets that you run in the current session use this information to authenticate requests to Azure Resource Manager. + + + + Import-AzContext + + AzureContext + + {{Fill AzureContext Description}} + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Import-AzContext + + Path + + Specifies the path to context information saved by using Save-AzContext. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + AzureContext + + {{Fill AzureContext Description}} + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Path + + Specifies the path to context information saved by using Save-AzContext. + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + + + + + + + + + + + + ----- Example 1: Importing a context from a AzureRmProfile ----- + Import-AzContext -AzContext (Connect-AzAccount) + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + This example imports a context from a PSAzureProfile that is passed through to the cmdlet. + + + + + + ------- Example 2: Importing a context from a JSON file ------- + Import-AzContext -Path C:\test.json + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + This example selects a context from a JSON file that is passed through to the cmdlet. This JSON file can be created from Save-AzContext. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/import-azcontext + + + + + + Invoke-AzRestMethod + Invoke + AzRestMethod + + Construct and perform HTTP request to Azure resource management endpoint only + + + + Construct and perform HTTP request to Azure resource management endpoint only + + + + Invoke-AzRestMethod + + ApiVersion + + Api Version + + System.String + + System.String + + + None + + + AsJob + + Run cmdlet in the background + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Method + + Http Method + + + GET + POST + PUT + PATCH + DELETE + + System.String + + System.String + + + None + + + Name + + list of Target Resource Name + + System.String[] + + System.String[] + + + None + + + Payload + + JSON format payload + + System.String + + System.String + + + None + + + ResourceGroupName + + Target Resource Group Name + + System.String + + System.String + + + None + + + ResourceProviderName + + Target Resource Provider Name + + System.String + + System.String + + + None + + + ResourceType + + List of Target Resource Type + + System.String[] + + System.String[] + + + None + + + SubscriptionId + + Target Subscription Id + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Invoke-AzRestMethod + + AsJob + + Run cmdlet in the background + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Method + + Http Method + + + GET + POST + PUT + PATCH + DELETE + + System.String + + System.String + + + None + + + Path + + Path of target resource URL. Hostname of Resource Manager should not be added. + + System.String + + System.String + + + None + + + Payload + + JSON format payload + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Invoke-AzRestMethod + + Uri + + Uniform Resource Identifier of the Azure resources. The target resource needs to support Azure AD authentication and the access token is derived according to resource id. If resource id is not set, its value is derived according to built-in service suffixes in current Azure Environment. + + System.Uri + + System.Uri + + + None + + + AsJob + + Run cmdlet in the background + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Method + + Http Method + + + GET + POST + PUT + PATCH + DELETE + + System.String + + System.String + + + None + + + Payload + + JSON format payload + + System.String + + System.String + + + None + + + ResourceId + + Identifier URI specified by the REST API you are calling. It shouldn't be the resource id of Azure Resource Manager. + + System.Uri + + System.Uri + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + ApiVersion + + Api Version + + System.String + + System.String + + + None + + + AsJob + + Run cmdlet in the background + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Method + + Http Method + + System.String + + System.String + + + None + + + Name + + list of Target Resource Name + + System.String[] + + System.String[] + + + None + + + Path + + Path of target resource URL. Hostname of Resource Manager should not be added. + + System.String + + System.String + + + None + + + Payload + + JSON format payload + + System.String + + System.String + + + None + + + ResourceGroupName + + Target Resource Group Name + + System.String + + System.String + + + None + + + ResourceId + + Identifier URI specified by the REST API you are calling. It shouldn't be the resource id of Azure Resource Manager. + + System.Uri + + System.Uri + + + None + + + ResourceProviderName + + Target Resource Provider Name + + System.String + + System.String + + + None + + + ResourceType + + List of Target Resource Type + + System.String[] + + System.String[] + + + None + + + SubscriptionId + + Target Subscription Id + + System.String + + System.String + + + None + + + Uri + + Uniform Resource Identifier of the Azure resources. The target resource needs to support Azure AD authentication and the access token is derived according to resource id. If resource id is not set, its value is derived according to built-in service suffixes in current Azure Environment. + + System.Uri + + System.Uri + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.string + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSHttpResponse + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}?api-version={API}" -Method GET + +Headers : {[Cache-Control, System.String[]], [Pragma, System.String[]], [x-ms-request-id, System.String[]], [Strict-Transport-Security, System.String[]]…} +Version : 1.1 +StatusCode : 200 +Method : GET +Content : { + "properties": { + "source": "Azure", + "customerId": "{customerId}", + "provisioningState": "Succeeded", + "sku": { + "name": "pergb2018", + "maxCapacityReservationLevel": 3000, + "lastSkuUpdate": "Mon, 25 May 2020 11:10:01 GMT" + }, + "retentionInDays": 30, + "features": { + "legacy": 0, + "searchVersion": 1, + "enableLogAccessUsingOnlyResourcePermissions": true + }, + "workspaceCapping": { + "dailyQuotaGb": -1.0, + "quotaNextResetTime": "Thu, 18 Jun 2020 05:00:00 GMT", + "dataIngestionStatus": "RespectQuota" + }, + "enableFailover": false, + "publicNetworkAccessForIngestion": "Enabled", + "publicNetworkAccessForQuery": "Enabled", + "createdDate": "Mon, 25 May 2020 11:10:01 GMT", + "modifiedDate": "Mon, 25 May 2020 11:10:02 GMT" + }, + "id": "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}", + "name": "{workspace}", + "type": "Microsoft.OperationalInsights/workspaces", + "location": "eastasia", + "tags": {} + } + + Get log analytics workspace by path. It only supports management plane API and Hostname of Azure Resource Manager is added according to Azure environment setting. + + + + + + + -------------------------- Example 2 -------------------------- + Invoke-AzRestMethod https://graph.microsoft.com/v1.0/me + +Headers : {[Date, System.String[]], [Cache-Control, System.String[]], [Transfer-Encoding, System.String[]], [Strict-Transport-Security, System.String[]]…} +Version : 1.1 +StatusCode : 200 +Method : GET +Content : {"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users/$entity","businessPhones":["......} + + Get current signed in user via MicrosoftGraph API. This example is equivalent to `Get-AzADUser -SignedIn`. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/invoke-azrestmethod + + + + + + Open-AzSurveyLink + Open + AzSurveyLink + + Open survey link in default browser. + + + + Open survey link in default browser. + + + + Open-AzSurveyLink + + + + + + + None + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Open-AzSurveyLink + +Opening the default browser to https://aka.ms/azpssurvey?Q_CHL=INTERCEPT + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/open-azsurveylink + + + + + + Register-AzModule + Register + AzModule + + FOR INTERNAL USE ONLY - Provide Runtime Support for AutoRest Generated cmdlets + + + + FOR INTERNAL USE ONLY - Provide Runtime Support for AutoRest Generated cmdlets + + + + Register-AzModule + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Register-AzModule + + Used Internally by AutoRest-generated cmdlets + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/register-azmodule + + + + + + Remove-AzContext + Remove + AzContext + + Remove a context from the set of available contexts + + + + Remove an azure context from the set of contexts + + + + Remove-AzContext + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove context even if it is the default + + + System.Management.Automation.SwitchParameter + + + False + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + PassThru + + Return the removed context + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Remove-AzContext + + Name + + The name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove context even if it is the default + + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + Return the removed context + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove context even if it is the default + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + Name + + The name of the context + + System.String + + System.String + + + None + + + PassThru + + Return the removed context + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-AzContext -Name Default + + Remove the context named default + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/remove-azcontext + + + + + + Remove-AzEnvironment + Remove + AzEnvironment + + Removes endpoints and metadata for connecting to a given Azure instance. + + + + The Remove-AzEnvironment cmdlet removes endpoints and metadata information for connecting to a given Azure instance. + + + + Remove-AzEnvironment + + Name + + Specifies the name of the environment to remove. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Name + + Specifies the name of the environment to remove. + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + + + + + + + + + + ----- Example 1: Creating and removing a test environment ----- + Add-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint TestADEndpoint ` + -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` + -ResourceManagerEndpoint TestRMEndpoint ` + -GalleryEndpoint TestGalleryEndpoint ` + -GraphEndpoint TestGraphEndpoint + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + +Remove-AzEnvironment -Name TestEnvironment + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + + This example shows how to create an environment using Add-AzEnvironment, and then how to delete the environment using Remove-AzEnvironment. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/remove-azenvironment + + + Add-AzEnvironment + + + + Get-AzEnvironment + + + + Set-AzEnvironment + + + + + + + Rename-AzContext + Rename + AzContext + + Rename an Azure context. By default contexts are named by user account and subscription. + + + + Rename an Azure context. By default contexts are named by user account and subscription. + + + + Rename-AzContext + + TargetName + + The new name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Rename the context even if the target context already exists + + + System.Management.Automation.SwitchParameter + + + False + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + PassThru + + Return the renamed context. + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Rename-AzContext + + SourceName + + The name of the context + + System.String + + System.String + + + None + + + TargetName + + The new name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Rename the context even if the target context already exists + + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + Return the renamed context. + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Rename the context even if the target context already exists + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + PassThru + + Return the renamed context. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SourceName + + The name of the context + + System.String + + System.String + + + None + + + TargetName + + The new name of the context + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + ------ Example 1: Rename a context using named parameters ------ + Rename-AzContext -SourceName "[user1@contoso.org; 12345-6789-2345-3567890]" -TargetName "Work" + + Rename the context for 'user1@contoso.org' with subscription '12345-6789-2345-3567890' to 'Work'. After this command, you will be able to target the context using 'Select-AzContext Work'. Note that you can tab through the values for 'SourceName' using tab completion. + + + + + + --- Example 2: Rename a context using positional parameters --- + Rename-AzContext "My context" "Work" + + Rename the context named "My context" to "Work". After this command, you will be able to target the context using Select-AzContext Work + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/rename-azcontext + + + + + + Resolve-AzError + Resolve + AzError + + Display detailed information about PowerShell errors, with extended details for Azure PowerShell errors. + + + + Resolves and displays detailed information about errors in the current PowerShell session, including where the error occurred in script, stack trace, and all inner and aggregate exceptions. For Azure PowerShell errors provides additional detail in debugging service issues, including complete detail about the request and server response that caused the error. + + + + Resolve-AzError + + Error + + One or more error records to resolve. If no parameters are specified, all errors in the session are resolved. + + System.Management.Automation.ErrorRecord[] + + System.Management.Automation.ErrorRecord[] + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + Resolve-AzError + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Last + + Resolve only the last error that occurred in the session. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Error + + One or more error records to resolve. If no parameters are specified, all errors in the session are resolved. + + System.Management.Automation.ErrorRecord[] + + System.Management.Automation.ErrorRecord[] + + + None + + + Last + + Resolve only the last error that occurred in the session. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.Management.Automation.ErrorRecord[] + + + + + + + + + + Microsoft.Azure.Commands.Profile.Errors.AzureErrorRecord + + + + + + + + Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord + + + + + + + + Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord + + + + + + + + + + + + + + -------------- Example 1: Resolve the Last Error -------------- + Resolve-AzError -Last + +HistoryId: 3 + + +Message : Run Connect-AzAccount to login. +StackTrace : at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.get_DefaultContext() in AzureRmCmdlet.cs:line 85 + at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.LogCmdletStartInvocationInfo() in AzureRmCmdlet.cs:line 269 + at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.BeginProcessing() inAzurePSCmdlet.cs:line 299 + at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.BeginProcessing() in AzureRmCmdlet.cs:line 320 + at Microsoft.Azure.Commands.Profile.GetAzureRMSubscriptionCommand.BeginProcessing() in GetAzureRMSubscription.cs:line 49 + at System.Management.Automation.Cmdlet.DoBeginProcessing() + at System.Management.Automation.CommandProcessorBase.DoBegin() +Exception : System.Management.Automation.PSInvalidOperationException +InvocationInfo : {Get-AzSubscription} +Line : Get-AzSubscription +Position : At line:1 char:1 + + Get-AzSubscription + + ~~~~~~~~~~~~~~~~~~~~~~~ +HistoryId : 3 + + Get details of the last error. + + + + + + --------- Example 2: Resolve all Errors in the Session --------- + Resolve-AzError + +HistoryId: 8 + + +RequestId : b61309e8-09c9-4f0d-ba56-08a6b28c731d +Message : Resource group 'contoso' could not be found. +ServerMessage : ResourceGroupNotFound: Resource group 'contoso' could not be found. + (System.Collections.Generic.List`1[Microsoft.Rest.Azure.CloudError]) +ServerResponse : {NotFound} +RequestMessage : {GET https://management.azure.com/subscriptions/00977cdb-163f-435f-9c32-39ec8ae61f4d/resourceGroups/co + ntoso/providers/Microsoft.Storage/storageAccounts/contoso?api-version=2016-12-01} +InvocationInfo : {Get-AzStorageAccount} +Line : Get-AzStorageAccount -ResourceGroupName contoso -Name contoso +Position : At line:1 char:1 + + Get-AzStorageAccount -ResourceGroupName contoso -Name contoso + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +StackTrace : at Microsoft.Azure.Management.Storage.StorageAccountsOperations.<GetPropertiesWithHttpMessagesAsync + >d__8.MoveNext() + --- End of stack trace from previous location where exception was thrown --- + at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) + at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.<GetPropertiesAsync>d__7. + MoveNext() + --- End of stack trace from previous location where exception was thrown --- + at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) + at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.GetProperties(IStorageAcc + ountsOperations operations, String resourceGroupName, String accountName) + at Microsoft.Azure.Commands.Management.Storage.GetAzureStorageAccountCommand.ExecuteCmdlet() in C:\ + zd\azure-powershell\src\ResourceManager\Storage\Commands.Management.Storage\StorageAccount\GetAzureSto + rageAccount.cs:line 70 + at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord() in + C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 642 +HistoryId : 8 + + + HistoryId: 5 + + +Message : Run Connect-AzAccount to login. +StackTrace : at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.get_DefaultContext() in C:\zd\azur + e-powershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:line 85 + at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.LogCmdletStartInvocationInfo() in + C:\zd\azure-powershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:lin + e 269 + at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.BeginProcessing() in + C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 299 + at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.BeginProcessing() in C:\zd\azure-p + owershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:line 320 + at Microsoft.Azure.Commands.Profile.GetAzureRMSubscriptionCommand.BeginProcessing() in C:\zd\azure- + powershell\src\ResourceManager\Profile\Commands.Profile\Subscription\GetAzureRMSubscription.cs:line 49 + at System.Management.Automation.Cmdlet.DoBeginProcessing() + at System.Management.Automation.CommandProcessorBase.DoBegin() +Exception : System.Management.Automation.PSInvalidOperationException +InvocationInfo : {Get-AzSubscription} +Line : Get-AzSubscription +Position : At line:1 char:1 + + Get-AzSubscription + + ~~~~~~~~~~~~~~~~~~~~~~~ +HistoryId : 5 + + Get details of all errors that have occurred in the current session. + + + + + + ------------- Example 3: Resolve a Specific Error ------------- + Resolve-AzError $Error[0] + +HistoryId: 8 + + +RequestId : b61309e8-09c9-4f0d-ba56-08a6b28c731d +Message : Resource group 'contoso' could not be found. +ServerMessage : ResourceGroupNotFound: Resource group 'contoso' could not be found. + (System.Collections.Generic.List`1[Microsoft.Rest.Azure.CloudError]) +ServerResponse : {NotFound} +RequestMessage : {GET https://management.azure.com/subscriptions/00977cdb-163f-435f-9c32-39ec8ae61f4d/resourceGroups/co + ntoso/providers/Microsoft.Storage/storageAccounts/contoso?api-version=2016-12-01} +InvocationInfo : {Get-AzStorageAccount} +Line : Get-AzStorageAccount -ResourceGroupName contoso -Name contoso +Position : At line:1 char:1 + + Get-AzStorageAccount -ResourceGroupName contoso -Name contoso + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +StackTrace : at Microsoft.Azure.Management.Storage.StorageAccountsOperations.<GetPropertiesWithHttpMessagesAsync + >d__8.MoveNext() + --- End of stack trace from previous location where exception was thrown --- + at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) + at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.<GetPropertiesAsync>d__7. + MoveNext() + --- End of stack trace from previous location where exception was thrown --- + at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) + at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.GetProperties(IStorageAcc + ountsOperations operations, String resourceGroupName, String accountName) + at Microsoft.Azure.Commands.Management.Storage.GetAzureStorageAccountCommand.ExecuteCmdlet() in C:\ + zd\azure-powershell\src\ResourceManager\Storage\Commands.Management.Storage\StorageAccount\GetAzureSto + rageAccount.cs:line 70 + at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord() in + C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 642 +HistoryId : 8 + + Get details of the specified error. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/resolve-azerror + + + + + + Save-AzContext + Save + AzContext + + Saves the current authentication information for use in other PowerShell sessions. + + + + The Save-AzContext cmdlet saves the current authentication information for use in other PowerShell sessions. + + + + Save-AzContext + + Profile + + Specifies the Azure context from which this cmdlet reads. If you do not specify a context, this cmdlet reads from the local default context. + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + None + + + Path + + Specifies the path of the file to which to save authentication information. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Overwrite the given file if it exists + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Overwrite the given file if it exists + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Path + + Specifies the path of the file to which to save authentication information. + + System.String + + System.String + + + None + + + Profile + + Specifies the Azure context from which this cmdlet reads. If you do not specify a context, this cmdlet reads from the local default context. + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + + + + + + + + + + + + ------- Example 1: Saving the current session's context ------- + Connect-AzAccount +Save-AzContext -Path C:\test.json + + This example saves the current session's Azure context to the JSON file provided. + + + + + + -------------- Example 2: Saving a given context -------------- + Save-AzContext -Profile (Connect-AzAccount) -Path C:\test.json + + This example saves the Azure context that is passed through to the cmdlet to the JSON file provided. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/save-azcontext + + + + + + Select-AzContext + Select + AzContext + + Select a subscription and account to target in Azure PowerShell cmdlets + + + + Select a subscription to target (or account or tenant) in Azure PowerShell cmdlets. After this cmdlet, future cmdlets will target the selected context. + + + + Select-AzContext + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Select-AzContext + + Name + + The name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + Name + + The name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + -------------- Example 1: Target a named context -------------- + Select-AzContext "Work" + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Work test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... + + Target future Azure PowerShell cmdlets at the account, tenant, and subscription in the 'Work' context. + + + + + + -------------------------- Example 2 -------------------------- + <!-- Aladdin Generated Example --> +Select-AzContext -Name TestEnvironment -Scope Process + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/select-azcontext + + + + + + Send-Feedback + Send + Feedback + + Sends feedback to the Azure PowerShell team via a set of guided prompts. + + + + The Send-Feedback cmdlet sends feedback to the Azure PowerShell team. + + + + Send-Feedback + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + None + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1: -------------------------- + Send-Feedback + +With zero (0) being the least and ten (10) being the most, how likely are you to recommend Azure PowerShell to a friend or colleague? + +10 + +What does Azure PowerShell do well? + +Response. + +Upon what could Azure PowerShell improve? + +Response. + +Please enter your email if you are interested in providing follow up information: + +your@email.com + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/send-feedback + + + + + + Set-AzContext + Set + AzContext + + Sets the tenant, subscription, and environment for cmdlets to use in the current session. + + + + The Set-AzContext cmdlet sets authentication information for cmdlets that you run in the current session. The context includes tenant, subscription, and environment information. + + + + Set-AzContext + + Context + + Specifies the context for the current session. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzContext + + Subscription + + The name or id of the subscription that the context should be set to. This parameter has aliases to -SubscriptionName and -SubscriptionId, so, for clarity, either of these can be used instead of -Subscription when specifying name and id, respectively. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Tenant + + Tenant domain name or ID + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzContext + + SubscriptionObject + + A subscription object + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzContext + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Tenant + + Tenant domain name or ID + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzContext + + TenantObject + + A Tenant Object + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + Context + + Specifies the context for the current session. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Subscription + + The name or id of the subscription that the context should be set to. This parameter has aliases to -SubscriptionName and -SubscriptionId, so, for clarity, either of these can be used instead of -Subscription when specifying name and id, respectively. + + System.String + + System.String + + + None + + + SubscriptionObject + + A subscription object + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + None + + + Tenant + + Tenant domain name or ID + + System.String + + System.String + + + None + + + TenantObject + + A Tenant Object + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + ----------- Example 1: Set the subscription context ----------- + Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Work test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... + + This command sets the context to use the specified subscription. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/set-azcontext + + + Get-AzContext + + + + + + + Set-AzDefault + Set + AzDefault + + Sets a default in the current context + + + + The Set-AzDefault cmdlet adds or changes the defaults in the current context. + + + + Set-AzDefault + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Create a new resource group if specified default does not exist + + + System.Management.Automation.SwitchParameter + + + False + + + ResourceGroupName + + Name of the resource group being set as default + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Create a new resource group if specified default does not exist + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + ResourceGroupName + + Name of the resource group being set as default + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSResourceGroup + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-AzDefault -ResourceGroupName myResourceGroup + +Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup +Name : myResourceGroup +Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties +Location : eastus +ManagedBy : +Tags : + + This command sets the default resource group to the resource group specified by the user. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/set-azdefault + + + + + + Set-AzEnvironment + Set + AzEnvironment + + Sets properties for an Azure environment. + + + + The Set-AzEnvironment cmdlet sets endpoints and metadata for connecting to an instance of Azure. + + + + Set-AzEnvironment + + Name + + Specifies the name of the environment to modify. + + System.String + + System.String + + + None + + + PublishSettingsFileUrl + + Specifies the URL from which .publishsettings files can be downloaded. + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + TrafficManagerDnsSuffix + + Specifies the domain-name suffix for Azure Traffic Manager services. + + System.String + + System.String + + + None + + + SqlDatabaseDnsSuffix + + Specifies the domain-name suffix for Azure SQL Database servers. + + System.String + + System.String + + + None + + + AzureDataLakeStoreFileSystemEndpointSuffix + + Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net + + System.String + + System.String + + + None + + + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix + + Dns Suffix of Azure Data Lake Analytics job and catalog services + + System.String + + System.String + + + None + + + EnableAdfsAuthentication + + Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. + + + System.Management.Automation.SwitchParameter + + + False + + + AdTenant + + Specifies the default Active Directory tenant. + + System.String + + System.String + + + None + + + GraphAudience + + The audience for tokens authenticating with the AD Graph Endpoint. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + ServiceEndpoint + + Specifies the endpoint for Service Management (RDFE) requests. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + ManagementPortalUrl + + Specifies the URL for the Management Portal. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + ActiveDirectoryEndpoint + + Specifies the base authority for Azure Active Directory authentication. + + System.String + + System.String + + + None + + + ResourceManagerEndpoint + + Specifies the URL for Azure Resource Manager requests. + + System.String + + System.String + + + None + + + GalleryEndpoint + + Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. + + System.String + + System.String + + + None + + + ActiveDirectoryServiceEndpointResourceId + + Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. + + System.String + + System.String + + + None + + + GraphEndpoint + + Specifies the URL for Graph (Active Directory metadata) requests. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + MicrosoftGraphEndpointResourceId + + The resource identifier of Microsoft Graph + + System.String + + System.String + + + None + + + MicrosoftGraphUrl + + Microsoft Graph Url + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzEnvironment + + Name + + Specifies the name of the environment to modify. + + System.String + + System.String + + + None + + + ARMEndpoint + + The Azure Resource Manager endpoint. + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + ActiveDirectoryEndpoint + + Specifies the base authority for Azure Active Directory authentication. + + System.String + + System.String + + + None + + + ActiveDirectoryServiceEndpointResourceId + + Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. + + System.String + + System.String + + + None + + + AdTenant + + Specifies the default Active Directory tenant. + + System.String + + System.String + + + None + + + ARMEndpoint + + The Azure Resource Manager endpoint. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix + + Dns Suffix of Azure Data Lake Analytics job and catalog services + + System.String + + System.String + + + None + + + AzureDataLakeStoreFileSystemEndpointSuffix + + Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + EnableAdfsAuthentication + + Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + GalleryEndpoint + + Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. + + System.String + + System.String + + + None + + + GraphAudience + + The audience for tokens authenticating with the AD Graph Endpoint. + + System.String + + System.String + + + None + + + GraphEndpoint + + Specifies the URL for Graph (Active Directory metadata) requests. + + System.String + + System.String + + + None + + + ManagementPortalUrl + + Specifies the URL for the Management Portal. + + System.String + + System.String + + + None + + + MicrosoftGraphEndpointResourceId + + The resource identifier of Microsoft Graph + + System.String + + System.String + + + None + + + MicrosoftGraphUrl + + Microsoft Graph Url + + System.String + + System.String + + + None + + + Name + + Specifies the name of the environment to modify. + + System.String + + System.String + + + None + + + PublishSettingsFileUrl + + Specifies the URL from which .publishsettings files can be downloaded. + + System.String + + System.String + + + None + + + ResourceManagerEndpoint + + Specifies the URL for Azure Resource Manager requests. + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + ServiceEndpoint + + Specifies the endpoint for Service Management (RDFE) requests. + + System.String + + System.String + + + None + + + SqlDatabaseDnsSuffix + + Specifies the domain-name suffix for Azure SQL Database servers. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + TrafficManagerDnsSuffix + + Specifies the domain-name suffix for Azure Traffic Manager services. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + System.Management.Automation.SwitchParameter + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + + + + + + + + + + ----- Example 1: Creating and modifying a new environment ----- + Add-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint TestADEndpoint ` + -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` + -ResourceManagerEndpoint TestRMEndpoint ` + -GalleryEndpoint TestGalleryEndpoint ` + -GraphEndpoint TestGraphEndpoint + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + +Set-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint NewTestADEndpoint ` + -GraphEndpoint NewTestGraphEndpoint | Format-List + +Name : TestEnvironment +EnableAdfsAuthentication : False +ActiveDirectoryServiceEndpointResourceId : TestADApplicationId +AdTenant : +GalleryUrl : TestGalleryEndpoint +ManagementPortalUrl : +ServiceManagementUrl : +PublishSettingsFileUrl : +ResourceManagerUrl : TestRMEndpoint +SqlDatabaseDnsSuffix : +StorageEndpointSuffix : +ActiveDirectoryAuthority : NewTestADEndpoint +GraphUrl : NewTestGraphEndpoint +GraphEndpointResourceId : +TrafficManagerDnsSuffix : +AzureKeyVaultDnsSuffix : +AzureDataLakeStoreFileSystemEndpointSuffix : +AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : +AzureKeyVaultServiceEndpointResourceId : +BatchEndpointResourceId : +AzureOperationalInsightsEndpoint : +AzureOperationalInsightsEndpointResourceId : +AzureAttestationServiceEndpointSuffix : +AzureAttestationServiceEndpointResourceId : +AzureSynapseAnalyticsEndpointSuffix : +AzureSynapseAnalyticsEndpointResourceId : + + In this example we are creating a new Azure environment with sample endpoints using Add-AzEnvironment, and then we are changing the value of the ActiveDirectoryEndpoint and GraphEndpoint attributes of the created environment using the cmdlet Set-AzEnvironment. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/set-azenvironment + + + Add-AzEnvironment + + + + Get-AzEnvironment + + + + Remove-AzEnvironment + + + + + + + Uninstall-AzureRm + Uninstall + AzureRm + + Removes all AzureRm modules from a machine. + + + + Removes all AzureRm modules from a machine. + + + + Uninstall-AzureRm + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + PassThru + + Return list of Modules removed if specified. + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + PassThru + + Return list of Modules removed if specified. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.String + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Uninstall-AzureRm + + Running this command will remove all AzureRm modules from the machine for the version of PowerShell in which the cmdlet is run. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/uninstall-azurerm + + + + \ No newline at end of file diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.Share.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.Share.dll new file mode 100644 index 0000000000000000000000000000000000000000..e45ac91a1264184fd86bf3750d545a800176437c GIT binary patch literal 27048 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 F{x6v;GWY-h literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..a705c3fd25a8824c3a6cffa9ae5fdb1098d658c4 GIT binary patch literal 276368 zcmeFad7M$le)WkI=uUTB)On%RE>fY|2p)e-jfAW4lzxhDbsi&$= zojSFhTeoiY0rM|bu2L$3|Ns1_Qjfsr-z0Ir+UY`c-O$JC)Psqi4u7O-|DO(@b=>iV zVN3J=;`~u34O@8B$tU~Eh8=zEu>A6qhaG?Nu)PkNIqW3=m}5uR)+V5 zb?;;8--o6BMvWL&UA3)J9;AvJbWtnlVW1~bQdKXsW8@|vD2Xmmz>j$_f_hCln@Rbv z><2+Y_-g{+gGhkyp-~dSUwuSfybb6hBdP{ocI$|m6~=uXe^^O$NgYRc-->*rmmRxe z8N$n=LA_X4$X)q245g3G7xD`MifoWkc?iVeSNu(a^rQ2~p6DYXWu?r*t8TM&lPj_b zxi9sKKg#B)sQT4MN_}fzMa6WurT++QWJGlZ*jIT&oDQ~1`v}J^3IPE9%K$Lz0ss_m03iUNmIe?4Kr94=0DyjBQV0P65*t7W0Lc�zh>L2mt`fGFgNGP#Xe5 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�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ν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 NYqnQo?fvTr{XYuy=!^gW literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Strategies.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Strategies.dll new file mode 100644 index 0000000000000000000000000000000000000000..f82770a9ceed0b7d84854e2ae98998d94a87a9f9 GIT binary patch literal 65424 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 literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.Azure.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.Azure.dll new file mode 100644 index 0000000000000000000000000000000000000000..1d99c70159127240fc66dcb4bec5e891d960a1ae GIT binary patch literal 97872 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 literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.dll new file mode 100644 index 0000000000000000000000000000000000000000..4b4be00999a44dc176b392f6ff32e0eac0fa40bf GIT binary patch literal 80248 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 N%es1F>FroV{C~6e!nFVZ literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.WindowsAzure.Storage.DataMovement.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.WindowsAzure.Storage.DataMovement.dll new file mode 100644 index 0000000000000000000000000000000000000000..6ac672abd48641e9dc4266d9fc3dfabcfad39110 GIT binary patch literal 302784 zcmb?^2b?5D^?z@7Pfyrzn`UPB_U?A!*rl1U7goX%jyrPB;r7UxTY-id7WL-(JOc;{ zr-Gt@AfkdIl0*q65HkjXq7n`;p_uh2is179e&4H}>D`?J{r!LYxtn_Rs_NCNSFfsG z#XfNL`z*(@EEoS@ebut=fy=)Y^84C98xY(vcwdKgSNi)~+|zQv_qRCW%r(`ab1T6a zm6OgMI_0Eu&I!&RI{CDr%H%miYt9+kTn>bUWg$1-noKOQ6RpYI;G4)Ky{gmp(yKD5Qr^ym z47P0{l3x{)RWD?m#c;Ba#6}Im&L^I=F2(9loOFmL3^ebbj1a)zWVC) zvKBIV^KW@nH`J!_i30o-hFvp$=%FeY>fW}FgKQAorNPdcRT)pgrD*`HU%@D!sHdl^$X_(wHJUg*KlqO7imk)iFc zK)w4b@e}OEALNnARM7RD>jirdu_u1~z3_u};8;}7RXUxtQ?2_Y@?OeeQ4n*FL{08VoGNmCqfP6EVZp#tiQZ)8~ zsT_YLLLpa>dRhW{=wrHU^anw`z1aQ;vdMVwUiC2iRu9KdRL@|I!&H~; zLoi4YV4%nZM>4V`369dpJ&RrI-H406waacqDs{&^!O@6Y^470nk~n^x_;|8lHKU-` z@OS%zEBs^N%~X%Y@30Ro&$M;ho_{<5{{;M0PsC4f5`KpB!O3u1?Igzw7J~YQdb2V{ z25*VU0Kst?^tRf;sfbxh+req1QcSAcTazjnJ2)L^Kk1;h*xo3cR*}utDw{J99GrguY}>n?S+Ye#q-@WE)7smnVk*0KTXDWhD8@)kNNuTPa5js# zpY5Lm*Y>~ZTAq(?TbdjO3vF@&pq;FU5CQ;!9z|mafJR9wlt+t&R<3%T@gD@yQquD= zILs1_;7Lo<_TbtnTPfy6 zNA0@(W&6vJth}G*G{=xA#M?mE_P_cyo!&w0^R_AC60=@X4t|CAWjamEX zwFH2u(Utb{7&z&W_QHD3Zm!oLXTeJ_lq=uHg(3QxK z5BDT;i=Qoyda0!aJCz@oaMh@}sa7wQU$wN`PQ_9wEtYegDQ{@XYg^D73!OhYQF5Oj z&lG*zleDc#t**|bRM%)Ksd>0wepSIkOfR?SM>$emZ>YYN?v}Q{0q%$neQzU520?+e zU;VPwHgqZ27V34n0MU8TL*&D4$7C*v|IH5!tSh(ZT@i>bWg4w}NfO*yWZ&Zw3Q*217w+ zQ*lJG?Kv2b-L8Kzn5dU_6V#*RrTt5Qd}?ZLZlaY|HHpNdCsj~Ovqm`e!y^GtfVl#c<~Ym$TJi3kA(Q*T=GO-ujd0yrMWS#N4?GBvTP zb%!z7t_D@W00yDk){xaR#$l0vtyU&$6$cPxV(%IM?QZF|d>iItx3!K4eu%8o69vt8RNcoqF)L#4(cw<4lFlUG zwrQz0$+DYk+cdH%lPr0jwk(rq=^Q2OCOTYE^n4*zXu)j2w&q*Atfm4=1 z9l(uuLXhZ)Na21;1&vJPvc%f`e3c6pGa9{K+3q!6W6AU;0qk$D(2J2F&k2B6__=|g|Z$}mvXC#`vJs-*w}|Na}EHG zS@R$)l?%ycGMivyU^d}B#p#nNPtF?IS(a7A-dhPgY(?oqE)eZ?!Z(Sl8a*j+Has7$ zSEElg+Ea}tLN)sMI+x%`N^~VS7-7D&M@QlIQJ;*)lv)bi)>IajPD?R~9_K?WeiZg6 zAU+I4;rPffz6w77YW#!;Qa}eKa!Wew8e!P6!8MG#m->T`Fe*lcOyL~GP{fQGTn8jX zEEG8JSplB<$y4|^a6t%jK|S!}pauU#W!6UVeEKPly> zUGq!_kAiNz{S-`{r>)%&P#wO~_CHE7tV70bZ*Lx@vi|HpiFE!1bu+l0lB53F99!fM z_T0ySr7}TWnWtE%+BPtsO-H(vu+SN4{2Inscl`~B>wg?SSmP3m{}i$ru_Yj66uU+) zhMWzSCCHq;j%fdxh#ktv726GCUYFDFe*)w%r}sYzx797BlCFOvLCqkU$obDkX*Z=1 z?(N)a7%q_tbJxSLzft4*;OUz<=kuPOF3O|j26#lGAWyRFkKx1cHZGflD2H^pw_ zHluq+Q|w!sV!zWA+mdKTcUe>H*-f#ZX^QO6uWh*8Qr~`VsC1SeW@w-gmg2ymo&xR-4vV7G@~%k6njEb?6pm?cQ?iUyD7HZ z+Kh)&nqseMihZmpwzaJp-QAmFYfZ5qZ;E}sDK_8UEVuEd*q=1TZr#z0LbWOOXHBvF zbDB}uyD4_EDfY8Xu|I2y&2~1+?eM19_cz5p(iHnrQ*61bS#Fm##r~lww!ga>g@c=7 zZ)=MEVN>kCn_{=`X_i}UIu--mzc4(>-owig@CpH}h@Q%EjN23fVBF-mjim+oGj`r- zh+{we1&*65FtAlWi=XgJL1MtwVN#K61i9OEAv}+MUB7k0Q#A1UDDZUp z?HZlxt<2{PK*$AlO~OiGnmu1^Ke80F{cQgsl&1t!lJs(BKhv&}$@Q>WT>l3Mw|!VG zSc74l;5HENZF~AI*a^*2`9DO|^I7Khv{0Dq-;NaJAzd*F5nA~M!iE^i9TBr@6tb{4N$H0tOFaG#VN!~C zOQev34i?qnNr=HN9c$MZ5PYr0@+P+=W-FdZQS>^h5k2A- z6N+d@St$PisgaC&pkmz(83%v1Sr?56F;5#ZC)~O>(>PX>D;@N^w3Y1TSjFGLTR84n8E#d;B zymSsS&)W1a6%*$QcS1&k&D+%X!Dm}kj?`f1#46FP*&J$-hODhn@ft@}VRliCJQ2|@ z^~5~+;B6>Uae)z~gm=X}8jgZC1QliRy0WOT<(2ovezP_~@rTj`rFo^yN&rQR^A&eO zhjI%7EC=Ht!)#pfbj8{=QdofU?p%+Vnw>aKT$9X>Gb7WK@@CiA1LUz(B|U-kT{9{) zuK(Ae9&eha|E_gC{6o#^Rx8G|KC0swCRke5;4T#B=`~0>^7JYA)u^caaV%3XiYbwF zWbN9Y^_Y$-DlEIS@*WVl^lhn7y0v)XCUTAPkBg_cYb0w@cx^$?5+akNOT$VbJ-woE z=pt6l#d)^qL~68^v&g82=yFA2u-d+*66uPwke)_iK&0@O0qaH9foQT(|8^$(mMZc12-{Ff`iV^oqP}Bt zH#AAb#TG%)X=tC3w)Q$$vtB+pRecVV@L@Z=5Nlc33)Fpjuwn+%_}C{EtsD zp=NmMO*1^}v>Bc)B#ti}W-su+i>kD1=OHNPe;$G>+=x|z?+KE6Y=WGC3xCd{c-6D7 zWVv94$e*$snH5sL*@Ofw!~~L!V99;`C6Lo_IX|-gVgOU#?;yP@EQ`$W28Q@atPFDR zR&B4HkRz%YV-`8b9+tQp*Eox|b}|@EU`8ER>QvyE{3=1L&e&eVw$lB|57l|6FiR)e zHEE3Imx3JY!f`TfqHu}9`m9QZQMI`lF~;SnNrX^2MG~>3a>8uLx*h|;lC1V%LzWNU zYDKOpsH;3;?MnXa8m&CYmwgY`@#u4TB*z$QiV@oJT8_A-v6zd+StFgd$kVkBK@M9| zp3-5VODAzpa+;RjTO)Pnt(m3?8r{^q;f$L-Ug0`5VV!cDUA+fv`_B*yTVNC1;NCih z>rp#`hlRoeM3srfx1H((h#pqKlU?I)@HO~xngcy633>V8J|v-~em+9QQWxOu8hyCz zj1)b`e-Lps1#AjQvD|pE+WSSNP<;xKu=nU#Zvj8(Yp{;{B?N_E7N&ju}Lg%BV~eFCD{e1y`$esk>cfI~1ivG4CT%I`vCexT&!&;Pt>96_E_Eo~Udb%aV^;Mw%xURe z$pWb!W2#m!_$K&FjM>~liHgN4L3-BlUdVqK`B#4goZ%t(G2qtXykzh=fVOVi{|Vf7 zRLi5Fl@IQRFRAtQl$aVxtuJnd=s18C;vKcVF4&Cnm?Je(hLuL9cC`rA3qxwTPW*-} zYlRiA6~s@G>w?u`jUK`K|DZP8H3s|tq|&0M7+mD~m2kU0MiS?OcRH1b`gJ|FD|rx16?DzYQ1 z$X@kn<|H4*n zxkj-DCB!NB*v|Sqe6qy_F?l(F8cm?w@cbR@?p`!Q8}Z|L<_*?9dXFas>4NZF&ZR3O8aH?6$JuWpKS3 zeY$7XhU&#GFcJQ9hzQcXdeZVfqeuSFf%Y+AdQQ3B?v*ai?}V2~4tI6#$60MF;_w+Ws7n5;`p1+oMncfOtoQ5CG9T82#521`d4C;{;fcXY-NvunpX; zQEt2TPNd9utx3oK1qyJ!i#FS4uOl{<^xIMFjF%jH=C#uO>c2{NVblDGeeL`j>Eijl ze!7dA=11&n=hsLV&u><`y-dxZnL*yv4AjQEKwXqi0QTuUkT;Bvy1Yv%4{Gr|<4b)s z!nK^64_Cfo;YZp2Z$JkYWe(MhGrN6o$i>AG7XkorNrVsph<8T_0f2ZdFL4j+LX8E$0M%sk}mZ%Ga?5)c(!hd{FP-iVX{kO$Y%-V7JI z2%Cs$g5RPbz5d^zsJ*_214zLOKm@s&&JTTnuAc_wvOP6-lO^XTz=E}Kp>@P5h>LYQGVKH( zCD*82q5c=r+!H@I?pT)qOqaR@{85%T)5pS>P2oQTI{u|3vz@(;9>>3oKFH-t27TBB z(c}16(FZAA1)r#n06<(FAq3dVu6>w^??v?UPXxmxPK@Kr@S5C97INhTJBJKZQ8F-GAaQ|i}YB3;Ut>;*5PK)rD(|D!JD z(WX+)Piv|17K$u8l{nhysF9%*A^4P$p=5bzU54y$Pe2lkS?E`y4lCUoHCKn0T&C1n z=?AJJc=X<|p5!nok0`tZ??CV`{FbxRv2vidvjv^)xYWo1YlN%RY`dR{BqsorngP|9 zK_++wKlP|`g4@4{sdO*o5<}q5h=2gs**=z9&{N@Xwm^XmZ|{@`_B@*4p8szpTRolx zxL>j_%3Vacd9LvNV#_$;<>I>G72@jIp!W%!4c`mbtI?-+PKVk#M3~cVYA;*@x+Tgp z_&u`9cmv~d&1*lPZTuf$wkO$>3*c>aCec;eK@WP_DyGifa57j3CwK#yl(s)*~+n=4)_*Kj6pT z25OY_&jy(E&%H;Kn|RLABgfSV!irg)$vco?{L0~ z29OE<1Q^>_-05)q)9_2%=S;X*1M)c)Ew=Qvddcd|0Eg}1yKsVs@KgA;QWNRS8{0-n zh;LwQK(%(b?2hyn6F!yKUxP%r4#9~q=do+R(_->eI@t~!a^m8re54&KD zF*?`XXapiP=)VyR8bQd$k07KUSOs1&w=wN?-q=EIn;B(o{K zAB;P=f9S73X!t?)ptiq~@RfkqBf0BMd4ETwYCELHTa3jLI`Q?N)sPowg?Kfl)L{t` z^EgLe+``u;B*JkC*TZedJ2(K5&OV@%1RbZ01sh^}u`H}mX^FaO zwV+XC{PU68nc>fPdI3cn5YLf9uZ5=VFNd(q4ZU)Q=kE@08K<2wY;c0gwze zKxb%lp>6Dln{i~+QOhD|m~KN&dn3Qf(yE~kdTK{xtsdVRVo%0%gcxY#&z4cPi4{Wj z?VuZSDizfYdf*WQaID{8dV#4_p;msD5v9wh*mB2nu9y*W4^jMjBMAEBT2Gt22XmKw z0qhLtDjx-j8;0|ho5by_+$L^+FYaKv@)rd% zm6sK0tt4_JJ=j*6qdsd9s2o*6QQh@o&HGUgg+DfIv9}>yCy#Yo>sp@m}+)NYetVnKxpO%}exvh3^?%2UqBxLRH0;LpQ3K_jgM1ElGeV(P`0+Rqh zpbixw01)>?2m!u}OGikGwISR_0ubKKV0a{#L!jYhr?-fnq!G9sRvsBkvp-&gije^ z)Fa!QWlf3k5`xwoy8!*k|AAcmucEL{jk1$HkAy#u0x@gy ze}P2&A4&|CFn%(~seOqB;*ag9DCb9_jc=zn7ju-OJyP%&AX#)iylQQIwb}+yxi5mY zjLjG#t?k%_^#;flP(j#9z>7E@ED1pwmP5ki1yez861a(?j< zj9I+5be*_vc&)fPzqm%=Y?-pJpexZ zK@__Dd)X3_s~2AdG8m%hd%2?m?WErF#sJ-53k?xnmdauXD~+}f(}?mr{^O`CweK*m zuyz0s)mL7~}TGapQJVp>41;C1pq%_BD^Kkq7#b+BZ>8y@79d_GwV|TZ{HlJ?CxneU7j? zPsX5W173A1uVGl$SL_-UB|kB4`|m~06H9QKLN$YZUa$>`r{}cz1puXA7G5yAgpKWn zF6FC5gsMXIhW8_#T`dtqmbk^tEOb1Axx)QaX$zl&)Yum86xR*!5;qZkUR8|)^ysAElTX0py}>C<`~zU5{}BL)A4UiPfOt4U z2mpS`_ik{(dsp>(vTY0Zu%MIJRJ<4>MH?me0kZ{M=RTl-HsN^_%zQ6FJh^D4?PHF$ z^>)fX?X;&rA9gj~tuRBP&Q1Ep4sc~Q(>J!ePOAb`v**eTOTf&qEG2mIixWMcME9U) z{yZNI$ip!}EMys!673&5Q;GJEouKnCnS!^vG8Yp#dPiX?sx%d#pU4CR2jo;}X&dv( z!dN4epb3pH0mU>mNvhVqyhke?m!U&0P%E$5CDix5kdeUo{10w0P$>u5CDkh zB7^{HvtseyS|PekTRYYtyL);F8pr=Z{I|`2EKOK@Kb?*nA?|0>aoxl{F%5?o!hQ`zyu){b-vSdnhMz{?fARaZ@7&M!p~x_f zV6tLi4j}Cco9oE(X9rIsow1>}1BZ@W_1}cIUt$5&lz_<`{h`owIeR-(sILt z8wkfTI>t{*DLWDTiE|R;%})e>obLU@bgx7{y*`Ap_p@aj@qYub@Yg6Lcn)6w=L~j& zUl9JK!q3AAK1~D@AdsT>DJQna-$vCc09vDni`@j9rg*5njQTA56&37A4?3Q6(3;VA$}UT<;Ic6mdnVyGidu$^b7xbw-jSP=5%iY){!;#3~p6>Zh#y9UI4QV9sWN6 zPM!!;5lh0d1>x}u{4%P6W`PDYEeqI`T;Gh-|J?r%eP;%JH%@=|82`H?mpK1>H~2r@ z@P8;#Gx+yr&`-{$ul)Zn>8EGV@1$Qv*E%Dpjeh8sC+Fw(kg^>qvcu%f%M80^Cs#!E ztUK%4lpC?>)Ftm{UjgJR7X^% z)vIQqh;43ZA5>XgNdecD6!3AN5%f=2*!DD@=m0)e#c89#DN*5Fm~o7e`ScsTJp=Ck z!i#8Zofj-)k(b?Ee{aOz97m?dqsmU_LMk9_bU4NZ&e`EL0e_Gj?8TmzEsTBbP@Sg) z*OI8`4Sl29wI)h^ULrUY@kGayiQw=EMpNx@I}-j*Bx17IlJK-F77{~SlJpOZ(`R*W zj=t1+6Z*rm=#RwdA0+gR9?j&RG+&Q@9Jijq|2A>@2gm8ppG|ZN4PiOAZ`Mk{0v8E^9pxBeVZa9;??U zVMmGe?N1^Lo9{-7{^neN1rS)x*p*qM_GVyCMmNBrx+R~GnCucHDtOeltBwMXTm$}^ z%-5apL2FWw4!fy%S?~0x!d_drAct2dPMxV~|dvumhgufCIS-+a! z(I&s|NlGXDzPN7qu(*lvhvFi?A1IIr9}z(Fdr07H_+7YOjXuqW|g|V*ahQAP3*GQffI2%3#*Q?Q|L~}}%h}as5%RPG9V?6)Q6|CJ*=dH=| zTzKS&L?%(nCIW0NW2yF8Xh<=coaBmYh657q8`yEyG0oE-i&V|hFO>9R$eW#|;C;+M z>}rf7<~~BAw5R3_UINT~u~t(WvnRJf>T=2v7i(lUus@oMpS7OM=WTya6v2}d501ix z3)ZKg?6!tWh}==IgGV?)VL2RYi+aAzBb#dwBRUS-*6oOYEXu93qQ0?(y2_Wa%^3== z_QhT)#Y8kZL($K;$j)xH#YxJ-UE}FkJwu^%aW+E_BDLuejTHAMyx7@{kp^9y&Cqj0 z?RrEbJ@ae^8VzNv_k4~c?~})~DjacIz0%gn(pFxu4qaAKe#db5WUcu4YgP$m|N0^v zI)a!>eYSMd@|-RPpO3RLE`m_k7M`fS0}*h-<~MMHixmDX;foc1f$+N({vF{<@l&|G zis`Difs;H@km`BBZeU*}cYrpqA~_+>(B*EF06^fliXsF6A{`+FSZ)t43JKZ%YUYCo zZBYaPfM|~p0z~sy1aw3J0sw*bpqU8}i`f+g2!NP48=x@-00Ji~6d{1HMX146PZU7_ zr09(h0>m=I4zH3D05NgCz%88Yl-m7oVArPXRd+)-$=fCpfRs_u^HE9xB9g~9Hha%n zI3|C8+jaFCh`HBiHHhwf0(#FsvAHwhTu`#Bd$8ZeZX3Wo2|`H$a{3<*6EvF;!)0$o z>Nng%BJ9Pu{RHhAohnR+OxULgM&a2GY^w?QB6SP;>V*p#p}G&_V%~>+mvFu~)qRP= zx-BwXPkyJrb>*)E?ls@Kf(V%vm4k($%e=5&l$XS2JxTVAcZLkWjl9SHj>d{cjpdE4 z#@T*|T+xI1Z-zVLX#m|%$XoqpKP2ksPXJwxpJ*YB&$-x1bP1|pBMm8;VaO!7&;&8uX0A=ve zvt&l*II~_dILL5K(F=6+@(ShiQoDc#Yb|5W0a05e@7W zHQm(Nc&Sl&pj@=xd##V$u4|!(*~)lpEGh>g#w?(Xz zL>6p*4r&u?7>%0SIv)2y#61~to%LAj)a$)i<;3;g{sd?rg{Z?D7~-Rniq)gxhxQiN z;bC}?_IR{36O7}BD;%rg_9VI!{xJaL;l@Mkb*wKRLw%;vdo0e|Y5#5Dop&*j?l^?z z@v`HVCie00j~JOzR}6RpK%5G_MRUa)aD%7rdOjXnP3G|YGtXJFeQb;JoPzSOef$-C zb6@o@;_5!?p9Ri_e}e1P=+k!5kK(CL>OJsNg@$>k@DOxB(vyi+7!5cP?D%h?@~B48 z4_ewFcp;rB{0)duPNP*q=Q8r*;fDb*!%^3U)h;70Iyoqe z4kQ8q;YSDofY>HN2mnMOLI?mvF+vCcL@7cD00b-|%|!qpMk9m(KrD(70syf%LI?oF zk_aIH5KAM30Ff9GFct*}0K^+2gaH3?aA45K;S>+8SKQ!a)C)$sk5V}Py$tEI{p;(# z0Ii5e&OQbV>kE?_F(bAm-3bh`1ne3XM|4_c_XekcA_tM}qO1h~V*3ao01!Jw2mye= zdb$cr03ddZ5CQ;!)pU&^fY`7wjj226Ysp3I-rfaVqO{i$i+gRbmS^AFo0;xcP_^?n zmoAbsL`X59@Vk&3aJ4+*N&uDe7Z8O~rW;B5ZYGPQTw`kWMN+;G;iQKdp_WnrAXY>O z0f1N;Ap`(ow+JBs_ku7FMP?9fV^^YLY!cVUWE2JPzfC9Mf7j#-Ge+|j095yi5CQ-J zTSa3Cu-vZg4utJvj_ctx>|XXd7)5SA$HVCvKAW(ky^b;DP&&GDS>Ee#dviG-(^H-M z+$F7^?S2RLA$X;fB=P1mokWNs8_k@oZsCO=}|*Ls4*kc6b26$*X1L^U&Ct>84S{mR88V+g8Hcz zl#Y&R1L@-po4R)7uEyKELZ8x&(MMV8k(xvyd07X*{M5o)H@+DKb7a8w@IJJ&#C2MW zD;@EScedaie*`+EMV^hfou4XhEdj~#VOM0?25&MYg>o0;g$hP?Q{$aBUW1kt5926+ zlr^R}YXU4DMFqt3w&XRYpc-7@<1+JLKjB~;b`Z^(2iy8UBzK3mLo&`XOod^kvPNkm ziuUU$BTZ51GDKu#LI~UbW8eZG!w~lH_E}AOf=0!dZc=*&VX_gaF5V~-5qt*(OFbSB zsliy3!)h@8#D&o(E^IwFb~*yH4o~A^BcHIucLK~pyin3O0VnREq(hImn&~+w7XS#D ziHZ91~uHj$~G zjkLq-VdT5ja{vYb{a$dcpkd@2^m+7~TU!;th5h7i_i#@4#RR2mb3C}xB%i7fY~*u3 z{a!FB=te#l&~Ng26JX@?cZ$K}BPizMS}=e47PNdb>PVW;%h5Bh)s?u`WZ$@)tVw{G zH{$<8=0ApN>l*yu;hXre&&Qz~Th90CH>=)^4A;K}KXO8%oRlKs3fcdFgUk->sO|GH zt+jPs?=Q$NcayWl(4L)y1w<|{GMD0!_W47M4=W2B>8~GO4`@}+fCMTO zg9<>;o#9xMdBjBaS2n8y>yS-c2SWNi-Y^8ZQ8#a;KVRJdhcD~NntqGi??W-U4vfE{ zOZ9HT2G+Eq?yndWDJjZYZcrySP$`3=dg|OSA@%~QuglKhtnb^AWoem>Ph;4ACzd$% z{p}Y}W(2+iftR8>^%d@R4O`G}otsRj)?irU`}-Y+QrDryHixI$3;RTLIzKPV{vDhem8J|rmq3M#te7$ASx zG_$_Zb|F}F0{-f`AP-QcxY%5Fbj)o>(7gx&xT4m+sbFq9rp%c@;-Z_5-;N&!&ll3s z*|A}3=aZto$F^327wpT+I>407`JM1padmy{-vVdDSKxXz`g9#&K-b5JsIQOFW_qiU zZS`7|8d7nXi;CgOcD#3e*r9z(pFh!4aN?;+yK7~)bQKCFlY;j0PfgO9*r zJOA)SE$CfzXK{M|?Aqh`Uk(4X{D}zI!z2G|2rnlb(dIhZ zxuETqZ3l-CKY}onunjGXj0D#<;(8YLzpe8Sw|X70!`d0_fX+Zyz5a@px*k&oR~}yq zK1xcsHHa(xcJL~~g6n~?gMR}Qxey3G)}XI<8j%GCcfCBH0c_)cH~ts#z-#pe#Kys& z>c@@y3A%ce_I;q{UJA=0{=opG>sj2wcMhxy_~v&I_W{3VOq)CzvGLu#G@kK6)nVnz z4n7Hrrccv#HuN{R&y1U--3ZaoF%ptHjv0sdP&<;T58z!cezH+6ohH$<{hm*QN!{%Q z7wf{cDZ7JSFfMg_sJl!^!S>$-7r*Ri>Z_@s5v*l(RHs!ueSX2ZDf#CKSLdtzd3?b#dGlmeZJ{Lm>H+Km_I)>LM zH^X16+{#ovheo+Ipq|sLa8sVC+M?qz6kfgRk(Ak6ORPD0yS@b+jjC1mk*-4}r!!DgsrU{0X&Qq-4#$K3DB zbe!-jaAYlF9K60sbn~k~@vV^i;bOAl1VjW6;76WUP~6vudr)v+$M3ZGLIscGBW$}z`O&3F_xbH z9l*IM7gyzTg~|{wX5djxkXFn5y9gEejq{bK3E|5hRQ9)^lkgY9A(xo*Xek5$0`nh5 z2ml0TLW&ST`$|j#_}&%HTknaSp(cFT#M3874n|%0|3ae%dEF332w}?Zu8+Bs&ezFau)!-ucGmq1#eH{kqdX&4WTG*fr$>)(1M1Rh(?A+ zxppuNVZx>i3GjARjJy^oH#l@{@Gz_W*uh1?BLM0e!uEP8>L!W0F>BqCuJD#4b*0EN z5gR~$J!WTE(>LT@3btaK8EPwTY-T6^l9jh z1S+XZDRa4~6pscGk}CSkg!Jue$)6S~pjMgB+Ty#SGm6NiR@NqaeO2EdA@9~~ax5c# zU^~9%o%M3CA*4@h=jLPZV?@DoLTplUOSUJ4H(&XDi+np;+EkmJP6aE3F!o$)EQ@I% zyhBp&bGZglBd@_Oh+Eo4T`av6aYgWoHU~4vm)J}xgbGzY)lm81Cm__>BIXU&?w9_+ zDO@+$VRUlmNGGd5MXU|1ipmD0-#{_5H99%To?MTGREud$Zh#K!k02F6uizez?kIv9_G^!NbkueRnzqJnK*6fe+e+DLn z)69BI*j*Zd3zDfT+6RwKk9O$`t(kHPz!Qi#Qa1{p@`5LUkTP!|*WP;m22TN5Y}L9J zyr2u0`%fca19R~A1D6t1xeLXpZejp=W&h(@OR#1Wfl|RDM*<$E8{^7{hczTUerfvP!GK^*U z1aHQX$4XjV?N|qs>gJRFVMyHLp~sT^L=8J_JWa9-2Eevd%8bPFnc8-FSS&r-DPO5g zkEUekO^>yugd=HrFq5$qD zJiZO@f#9z2C_11sv;%^K**)z;#|;mlgAabv!5PLQ#7%?;!xbCcvF?XXtcT32CrWxB zb8#;?hVak^1O>+t>h_3$%={CrU(29uEaS$;tPlyWs7q zj3~1RSV(9{TPpY^Da=dp5>2XKm(b zU7+FcDyf7%#R|dJtGCv?8I|DqA+9@g*->97s-QhOKNn5OVJ<<*$%jA3JP{IvDWd2~ z#zeulqIx#XETcXY#q%co>gTrmH_A2&463tBziCa|liioG3Gm{2WGzZ(N@mdcu`}eD zza7$UVA^^l%oH;j;ocjaFN*AqW|cJO$`dd>8Q8aJ_`Vh;}hu8k|RPuooZ4?Q^N$c6bt7h7+DB4dee` zE{&o81j8kkj+9FQcGFRE_E3*HN${Stj8E&ayu<@&IxN|*KP*{|VaYCR)Na0WW>)I= zPgcg%25n+hG4HwsLS4~sM^0aFU5-N(zd>cS${oi{n+}=(#iA<&#iNB7z|Jv(x;zq; z0NCncxRYDdS!o%-BKH3H(Ko%Ye)0mc4u6LqnzVEs9}5gc-VT>qH84A712Y({~y)ulx35;T*^A^J|*2%PD1%RSm z86gA!0*hrDLjWMKBBclcqIrPIxD5^IZEQ<=dlN8_c3dc4M)2L9WT zws^|4z%7tewkrI0GH|bHfr}aV59H-v#K3KoIUJ?(DsN@YeT+Z%lFd6%qj5HII__gg z!aFXR-fXt|cevqIEU$}^kKfc@}nfwSRRaJ?FRx+c8<62+NK zBK+qN5vNB6@Xh$^z!i=$NHL@>eGGK5M$uJ$5rxIVr+MRz>x_2gNl0lR!16<;l!gLo zcZiYY3+QL@de}1vz9COpXK1q>nM_^Xp04~t60z^4d7N7`2On(zCw#rZOZY7o(>d50 z-)3+k-Q^mCy2r!pOrmvp;z;DWsrN~wV7zN$AJtOc)Ka7VVSh>e zSESB$PvSg*v*EdLy&8R5|7cdMeKF?PL4hU~9PCHqvcRWno4Rq>358 z2e|6L@sp9qg#Z-mRv5^$%=erDlSZ1i7DaNP?7~h13 zi*G{XSNR)K{)m{y-%7~vVnYW5sGP-otGKG~xTq`iaH9b9=u>*=5?Ed$RNp}-;tT72 zBDZ%)T9q4m6`}JsxL%DurL(2dAtJ_C!rH#Yvfd3k&N2s(Ba48`UPLDATOb4V2fdJu znEuOPnV}c@DC$125sr0g+-~;*2k_v$eBi>h{i_ii`C3^ASb!U_eXt}SL7^*i%3`KF zp@ChAb|n%dK*4_xVpN_-d+T-s4~WuMu+k4fb1e@5Kr_hKI}cFE-n`NYhAoc;B1Kg8g)UR*2O}t3nF55q5E`LhmbmbucURtjp8ajG)t*l zblRXtpVHe(=@Aj5=U7-&u+Z#Lw+{hwf(*(@>$Mf`GTBeBVIRjWpQ=G^PSA#scGy9T z(d~$HLb26!5p z1#sv)@K`kAM!&Mr=->w-Z&b^B5gL9#;B0sWT(3r->fW&G9uca0u;`)=p7X-bp^PA) zZ$6>JgJ~xggBU{LCr}i-#$SEsX}Znz5_*7{HkTKi3U=^emJKv~8n&1#W|&aLR^84? zJy&u%;+j{ZI{i;hPoYtoJRpS!{XPkfXwK4=!zr=`w?E2quGE)sTx3U}%wuK6^Bt5f zqiG`i81OmYX0b*6jX>X9#?S%K6c5{`q6~7-5!w(Cb4L=0etI?Z8<6^ipo z(dfgHC{4YU^uAs~;ny?-^pW1{C5Y^8&WElr_5TT}Yt^HV3!Dvafa}%h(|SjfrF}@m zEIq;*NztQENm?hw%&gv@-z0E0yb-QfqfhB=qx6VSJ^FQhR?M%}d;v@rkmw!E8!n*?opFj(HyeU;O)zBxhIe!dg5Ino1cy zL%6yCx)*#Fp#Mc_v9n}rV-$S`{QD0eJp437LJUjme~lO%)4(|KAVAx{kH1siH{etU zN%&3>=3M_XlqBc+0swJKgb+acqZ3dLtTDhwVJ^V{FUz(Y&wP4dwbVoKiNhMR4kQF7 zl6aVgArg%tMVBukWNiOS;0fyCozSqOu}v=eagXSP>c`yzXTvYR^=kB~eiT(dh=}wf z?|&IIjeh(Syk7-+`XVHz(=HHw_@BUkB(^?<|2tsPk0sk5P)geLtL@+sO@9_D_Bds0 za`Fa@bT}z7E!y9hc~St-*)kB+>&svjQ#O~uP8!rq28$T<-^t+MMv~W(fu4&)C1XB76`X{=f ziLt`Q6Al_O!4O={pxREJO%H4wrpX6G$V>wihKh*|kFy^Z<{PkY{bx`oPHBy%Ft71# zQ%@F0NSh39K|2hF*dn*U54QI3H3|A20N$L6`a}GDr#59xwh$4`8KB*){CITM)3JUH zey)-BS}(*hD3yhg*80(6{Gi#fM+iQFT+Z^&I>z4$q}H@1hcJh;R=4RHy+1>zQcH#! zp0?Ckn6>inkd;xAA_iHuk)R4vsQ{X0dK;mgnpjlK$Mc$*-XBKB^?WsED!2)>6ix=8 z28?z{c8ADaEHJNu?4w)@Es=e0w5EF-D$FeJ-XY)~FnPl}3F>0^Ym8&4#vdX(tUo_O z#}x2yDww6(!&Av0Axx*HBPc`oIg*~^Gzqy&@-K1u}8 zXy45{+`p*H6;mQilX)SL5;7MO_fiI=CS(WO$a6atCwg%a%+rw4?8h*ni!(#9_9Y*# z)jQ^xi!ZS9Bz1gT!dy+&yEC}Csw92|6t3urM^|8R7jNC|kd3*+$W0G^4hgI~!Pac5 z>d}|Du}ik@vxqD=!K1Z+9gy#J(r&4~@ihRAdpvl>Cqzv3;mN(G?<1tGg{8(hNX{ji z)8v9J)xa?Fdc;9TWt6r`W{rV*yc+lg;Mpl1Wv^o+@O_k3HkK`W9d$pBsIf7|3ntnW zJsv>KiZ5yi71VFb8<2_RSnZwqZh~d?TJ2jXY~xE!^Y+v7^2@kOj#515QHLVcM~yzh zNP-SJAxtBr$<>X0l$P5V zQ|I-y(2p6ppv!|?R32yxfV1I4aJ?FRDvw1f4Y)PnxxkLX-@kx}Z96NKR7_%W5t!F>@nS))2DoQ_XgP?mGl4T_-5iCLacltV-Q z!Cp3|A*vNH8tm`^q=T-|(dqfuSOJmTV9Sa8e8Smt&8 z_=~{V@Xv6)8huJ{Tct-tj6c`f4RrbU8j>2Mq#jgB(TTU8N$6-x_;pH6`QtnoQxD+} zg0J)SqQKek?{K{ueaaWcHluGT9K`bxWcRp`;D^e}djKO&UB$3;@JdYx~neCX)x70hBQ1xku@ znXxwg8N)*^mUq_V-3!;N(WiMsmdu+7&09Jp(qpG|dOy1;913?w+vY}~s6DKkN0=$? z9|5N7{mvWky%q$q-=Q1zJB01pcT5P~D1>mNd#u}A4F3>7y>9yj&W3$(y&8SW|BlK( z5!33HbUth7EReKX2be!g9n6F4)#y_?J1HF^X3@FT(Ai4TDxHM_XTvSwdNul#4vs8P zol%Gd4QG`hg72~Di_qRo4(+k$KaC_ z@Ms>v8$c6hw!Pw!T?U0ij@tq`me&~YZU-;UAj(HIit}c~TeO9LJvgjxk4Sj4kNFCH z9N`ApE-$y}Mtp3D)xk2y3ib!oLiKKJpy5L~g3d|4!JRiv%L%3 z&;ZWq{sU@x2XsC=fsF@d9_$1vm+pg5oM*&PlflJ+T#uVthC?|x!--?jICQeZd&MKc zU5ViHD6YQ(43+UURukiF#7HgU5`jVStEu&f%f63*DCJ6|4DM5rMUgNL7K3|$TLEjy zs(uyF@U-|03+@%Pp({y9Cio)J`QXcNP?^e~ailZJj|aP=944=vdQ7xru!2De=#J2$ zg5m;$`cS7*lSs)bHrSos)+kJ{k^)K<59v<%yAe!#U1=!@w0*SSrdl)*xo)T1^*x%* z1_?(bQ4cVP4Cw6+dgYrob#$kua{Hlz^rNGZ#8W%Iaq87q<5n4RTr^*Dj42S1ja;KU zya%@&cS}nLN+D|;Xgb!N><1g|J=5Xt&2LDu2h_@NRQRq6J0Zdz;>yWH@D+$A*aOTK zG%CLDAQh#NTIEK*Hn5Jwe$v=Yrx|%;9qPm?FdSoFI*#^~y9+iPtn5TmL_0PwnUY6E zGm=p9tIrK`yQM8r~OHs2qXKihYyO?@zQXo|!}P<*@z zh_N0!uN?&~3ENL0Hs24b545qsy0!FnwM7D%BXrAo2qDe`SZYqy=VRD|7aMVjjJ-Mz zW7$l`VXV7i9Hvjl;oZ^3F%A=<-LSdMPR?! zTVj?m?u@zOU52+Eg&*Z@nZVg_2e@91KILr><&6mC?bf=@He~y-tgu4+B(k98Mwjoz z;u*4#aAcp*uKK*mbGhWBdF~=`HryGmSEEn!+*9);B4(H9dKY#MM6SC_TBWm_z}avm zT(3r-(%DPt5HXDo`dRC4LuX$}>xBD>tMv8}I2-N_*Q?Q|^!8SIM8xPNtY3lNJ)md% zu=czF(^(@FC-@?UD)bQe%{jqW;RJ_4K72CChZTs&K!B=#9zVkxH~5mm67?$zGj(tu zelqqt*0>UykOya4anhtdCQh}uC*nIO>wbnv`3Zk7^gJVO$VV>~YZO%QNpLUc$=E!M ze(rDNuiAPze6U+Zk0qtPui)t`1UY&1Ah-i$3LEi(Dp27H$)j|k?{v+BaUtQt4Vp)+ zZdE0wJnDq3UIzytN8ZsqhuZ><52K$e-@|kgzE25bn)DQ@ahfCm5LjPTgaG&1{vcwO zwu)73Zej@z*VT1lNQR)r@-QXRZ;H|j00ee2m7oAijq2V9HktpkQK$f162>GUS`wB| z-iW4SQH38&6Sa4OC+Oq;7y2{nUTF`)4mHV#A%&xdmcK7lskB8e4%gSi3|4flyCv9< z%4Tp}bJFjrgQTtn%$(uIPB#4FlRDBPQGgLdaKaayw(ex4MVtIjXurmAkB-2X*_dn{C-2{ zLP_g{7mMqL7m1q)-zBc@;k;AeZ1@hiUX4Dbf3VUgLicbch&7`Z7zf|w&f&4=@hCyiR8y{u(jTlcs{sT-YW|18^dOf1hNs8Ml2++l zEpRrx3a(e9Pw8OzCmkZD(P3MA(9pR-(mLVC#Z`JA6F3`Q57(>Fr}Qv@kscA#=)rE2 zKU0s}q8{}GHfA$Y!9GrAU?~K6yLtfnukbezkL@2o4PqxL)$H#NZ{czyU(UPnB{#$y zgAoCX2^KT27%(cwY`zhPwr_nM<)~t#%4_ux1m&121qZ<&9E_i~WGa{1xF$FT(UQTj z9EN3!C8?7+ukr+s#=(Na3bXEmdDbGc4;IzmH;lY)7TKtrJ}q!I{1jZTMxV+FW+~-F z#56gv{=RAG+%9RA&TRr`!&~8cHTske>>kn~Viuim89Mh!TBUQhz&J+(7w2g3t8|W1 zIz&vPLp}Jmq4QNq>xB1-Kqt&qE&N5i8{6(i5c*n2JPWlHyO-A$%-_k$p zx2mDD)^|`we5GDmIFn5rvqta9W7CbD6jobOI1PU>t)v=N6Hf>Rhd^;kiDZwvsdrN* zUGh@;?OS{XmAMqUpoOX{gVx~kXiwI$PC$O&MSgQyDu1L_!Q{>Ohk{lnuAgioo@ksX zC?5sE9l++yILY8Jq>nR^jPl;u${((I^I+uUHqWVWw3FQey<+$$6bYRy9o^yi zGaw$oq-zd`v;Ri>5F41UY|k6)(bGCutoQs1e_$eK^fa6UviNJk2V2V;tA+^9S^mqA z?m`K(&fQIXa_=ZJ*SuWR*w=f==-szP$5h|GB{23>;bKn}zp8H-SJ)1SP<_M9fO$w7NEKZMBcV6I{xI}2 zhQLm8#_aFSs(36D;!$|5cse?|-asSuZ>IL?>fv|r$@{6t!Q~u?^*=BWtNtryRR54= z<5I(%H}*`U{^ zY>0@-*pWBAwjs~*iWfeMGboEgnfMX#HaPL_Ua!@u9l-h@tmuN$Z5qi>vg0C2%(UC0wsYpVB*C=@BuF9(CtYL+^Kz zR_VMTa5nrcT(3r-(m}sNzKE#nj#RKCx^uJWP7EP-=RpngjKlChsTewQcoCp6WeDob zfo%?!ll-w;XZ-xw?#9+yCes$iZenZcghc|ITTqx4O8?BxUgzXGw|LCR;3X-y%HW>@ zXTyKM^=kB~3{F%T5TP=dcGdu^?lP068|~~7ZuCh%GI{-5=xbiD2%HUHhU?Yn)4Wd7 zyoi`pZ$CD4>_lUKutnf(h_k7nL!Z()S?LfljSlP$_ODoDkj@-~qb^SxG0{94#llY0 zKpEqX!=stkqcQ5{QY_ibMB~jy)OaNB>d3ClDqIKb!2En3M;ZSd4uiI*YnK$HjN+`~ zC`w(YP?pG!dfdpy6M3kN69Q*L7p_;MPi2GoGIg4WX|iG4{fVK|E@_>xLtLfTCU7=v zh3nPmQ+lT=JtAWC^m{Nr1-g(Rnr+2by>$QNr(Jm}6P<6QN6(nNmI-~$YX^a|;r4L7 z8hx7A8#ON?V)dV}u7@n11sxS*Ow=njAOv69tGx_%f_>3bm2d!6Jeb#cr2~!UaCo8> zyxUP9@k? z;YH1kORd6#*;*iM*Zz%PF2=q>7cuBYi?M`bGJDR*Y`MruWwwjJ*n5DBy$AfN%+6Ao z5uq}}nyzHnSg+sAnr{5f3)@O#p!hjuY}ar@TGqws@*A_6VoPs``_Huhr-dECFnp^= z?`L~qrb(P5O?uq(ot6Hm8R^@a#5r2ywCL^PWQfbdv*@gv5eN5;XT=$x5eN5(XT|w2 zRF`G#M3~wSuDp*5CBwY{NFrIvDQJETYV zEwz*__pzwdQu^+L83-k4s7KE)jh#YH*10P0U`_a@Ov=Ri)$_7#(ZMiKFEnO#z+A zI>Qrtl4}JmjXe*CSs;C#gjp@dV&G*Ab7#?y951nn)Obm*omlMnWiN~`l{R}iRR70!FIRmV|GF@X3FGR$6y2su=T~Ye zmv#d4C>5&g*eRr{P^IfWs8A)~f(?{f!sJeEKD}foJ-1azSJYA}jCOK!1`t*|);|LX zbMj2GmjQ%5c`9Yf07}75f>tdGxh$LJI@vpiy#JUw=-GZ6N+5^*Wr1uWXVp&`;bR-L zvliqg=m^I9Y%7D_oqqK1_zks}D4CO~F$+x0v!pZWei1~xl{{&$fm}1yNXW6}K*wWpTNy9&VhoLz?^s|} zqrGI+sF+i$@r{C(#<1n88ufM3s!L}`ug9feWo3TD*O}#vI7vO_xpvxmD67^2r1Cn#Yz1W~J6W$d zCCt;h!m$2uN|^Iqm|S+UtZzz~8=y#-pMwcARdy`YF2mU9m>d{`p-O%_>+&)HkLKiyr9(gnuIMF<^ zJ3h~nPqj35y?oTiVv?`08qmcZuozsTU{DK`eb^j^=B|E5e&c6Q$gzY+ecOrRxCD+J zIo-Wq09Yqg9m7dg3txy?i1T|7q3m{k?{M-=ya)QOKX1X>y(@h~HzeEm9v$u*zJYaa zW4yDb6)=lXFXSUXo9cbG1xLmf*|8(GMm>3Z)PsPv^Bz|M`ML6imA?`{9ZgjPY@S+I z_m09@TEI;qQOvXf7WY-F5Uelt0Ig28LBJBHrbFn{sefq z4It&@%<`=9zmoVw-^!t_v&J9f)voXzN#c(Zh@(Kyhdfrsk){6QQW6;%3_k3X%B`oY zs%?929(bg-?G^dQ67Qp!9qCU*;Q0%SI*>iTQ=v_2C7RWE5A@}UT1T>9@;c#d5k(J@qr&qb3PprWt z4L96SrU9llTDYT!mxfl<+lo@^Yd=y>>u8>HnHquFn&W?h)ZFp~2rWp?Zd5`M-+)9Oyd>H~Y=zg^`u0(tFMA5ITULK7X^>QN4tjfaxYd$NwkN+R}bA=fmocF!yO1`MDllXMN zp&Lr+$@cXadp?$DOrKjZqNys4X09rg3RU?yIj!S)sw$tUs(dBIDW&qDD&+)3Q!MZp z(Z)|9AQ`Y^a*naOF_t;P>c-NcZXQoepAdD!oKSOowIw7ERgc_&X)L9(XPO0vtc8T# ze4~;Z->}602|_>A-i*_Hydy^`6_ESx997oLrrQ*GT%bqzudc9L+D1VacX)G%*TqI` z8{VuQ*1d#ew}5s%#&S;0v+4BZ9KK}8>JLpof z60zx_?f6blPB`cw)20Vl>+BNhYHd|DD=UVvVWS$fwgT*1TNGvOZ64HSZ%*_Rn5etG zJpk-?{Dbx;4iDN}Z*&52=^v1TjIY(+7*20!9B5Z0+v=R@MLmudpAFyhJS|~Wb_UfFf!(OrahIb++iWAb7xt{o1kW9=9q~XLuCl3v! z;X)o>r%;2cxB?u%5a6o3ek2cH&woC2?yeuz-QN6z`VkR(;_D5C$-`L)zF%AYFz{0S zpf_jokRC@i{KygeTs$NXUjPJggfa}d1e82{nth#b&!_W@k^dD(Jkd5v?st2f28W(iyaL zD+eXVPH@7&laBl`*CKpAWH8TC_#R9G01VRt! z3cjUn#B|XS0fu_WVmSmG%8F~)T~uxpy>9()sTL5bLV}c)p)GBcO^HQwQdN=@i(|ZH zVljxv%^3=x%G;6Gnt~}RVYef>xC8ROUl~ewPTnwI5`QW$ZK2WIRrZqQ++}M^+p(IS z5`jh|EBp25ZTbr$u)A$l)QBvz#%r8bc^xd|+ExMXYFm3i=MV7z3XIa-w!RE(f`8Dq z#Kb|{>WSV41%6{~3#DFd3k6)V@3<-8f@*wC##$*y~VA zF)x?KW1A?Ke%^>vZZm*j6=56gTn_D5Izmg1JK?#l*LiIuGLRQh$~HP?+3pZUMRn&F zlu|`sb7U!1=-`Zk9`CaU94yrSd&_2*kW02>JHA`rbFWgR5SJC4gdFE1s< zzTwRSeLZWh?JRDya@iS-qgIR#ue|JZUM4F?X=e6iL|Ac!d}0RYP2Eh;49owLw-)8s ze4*-2ho3#bxXs@QXJqV|8)>$wK62QUy2NOwI<(5dK5N|P>&5X-m{EoYp7#4j&6A6? zp9}o=KJDM-Y4_; z%xEtF%;W4VaGQ|@-QX)AT>EMTm5Bj;peI_7O#6fJnu5?Co`ZwT>Z=SN(vKf!_|A8+ ztLf7aUG3)z(@+~_sXVX0nqucJYhPp^Lq|0z7mAZwhAqgr>XX`B9>AGTD?5Ji2%+r8+xpp6?jC|YI+`sPBJ5#XZ#MxB&JFImz`{=}L$r{|H-KdQ2T}{u= ziOja1f_}axnozh1(LqRt9#*Xrvl`qz-siZmHZn{f#0Xt_j(B4@=Y&+1zhUy<|M}0* zsv{)O`KkA3Jy^6m^({tKUxE`ok>`9|CSP(mY!z+dZ(G6n$og8?R_SGT)n}hJ_x%vU zGfqdID=$kX*@lsdlZ~g>&4MG1#p}(%p)uBuX~~GOa$Ec?i*(G&uga>`W30xiT=9G* zlbQ5~dWP7ev3l&4w2mw8g@l4Eqay;2aJ*SsO z!!B3jSAoIVGYV)Wel<`#H;kxJxt#a2iqjL{AYZk`ve_a2Y-L09 zT&sH?DieG4FKNWriuc@AF$4b7-yBn|#%cyGMm2s4@A3IO+V3WPG-$dD6g@MuDyWobxq%j6{igB9nCqzc!&2j(HzG|v!f5)8!hzui8AB$ldK9imQp%}a?fJjx>;u$CPmcc zpINBmxVHi@msRkTNxZ_L)*eJ9Wgbjh>%Q}zXdS%y7po5{N%iqsoLQCOgHNn1IOGZ# zdhD+-Q$GSh9&O>~{dIa*3cSBw??PRTG4T5uu{uOOdINCy_C_2mmZu|dKL80zwaLog z02He~+BXpbD9h~v=yY~OWfSAm&2m~$!i-NTbvFJqa?8aMfEc3632IHT7_+I?xQv32 zZq%{`&Wu_uepgV>vvN%In^t0l=Psm__Ey#|JFc_kG1yC&3DN4KN0c<&uv8np?OVu| zFHtWR1C{92qE#vn1`jQ{lk*=-J2E4r6{$Cd!t7g2MQFQTZMae1E+*onvPSvR7|PcZ z3d|I#<)@n7MQ%nA*K#kd#yW>=XlwEyVia4fVviJGzGjS`azTA42 zHnd{Bo&fQ!1Z2Cg&AOnszlF5CPH-EqTAN>rjs!p1Le9#&URm<5Ef1>#lZ*y#vRv|9 ze|-zSDw<$TBr7W`_eVNduSajvUG|`gI4`VpfR-@peSK8g=-$=7(42HurcaBt_HQG} z{_4ZZgjEFcZg!3%2{%+9KN$yQMER=4t0CP+L?G=Y{gimr?-xiST zMpJz!pTviiA#dm1j$>(|0`jVI8l=@7GXunnQhb{VWef)k(nPKy|mVj&Y z&920-j_|L4sb$5om3*4KCHp8V?-Hsd|8iNuPN45(DLyoUA}>4%{#YNZ*3yrGWw16h*w?7d?K7Q^`!Hww>{f;?yET-T zXEFOfc0P~xM~N}f-{?cd^*c6*G3e^h4h^i*mhMq^X7n=UxXRW?+yry$XP-%=_9A0enni%%1v;G&D3x?|AQ`Y@f?ne_o z0)e96*^qP&?snV??$aHM=kOFbG*+A54PJ~s$TzBA^iy2vJlSs_JnMXn;;zJ%$PrKL zhe^Qx)*$$PhR>E`Egd;$?8*X~`l`ZDRVhE?AM-;wQuzX1$v#b2Itsjh&)b#LmDIuu zT}d=4nXdF7Iu+?kYI>D4~SYqj+WYCc}c-0@1lk8q(%>HG03r61s_YY(0Nk()rAwNMG5ett+!>peVW z0=Z0b|8o?MQ!)Wz1(6fQ8(pIlDvOn0obrXsj#XOxo*=MZB8HF0Aoe4y!XXW)El1) zXiP;j&vh2%;dc=KXYzj&fANm`3GtZVl7sK%|0w?Y2@VrP59otBSs>T{)UONzTgHEw zcds*vggr6r<8;j)?iMmTFS7T;cu|*k;Gk<>Pn>G{RndX%(3M52X9r)y>w3rU12NmW zq+se!vP`GZ>lg;;O8es=Dy4eH2SUAs*<}VtImX57R{Jlu;QBp@bLesvU_s2(L!~+3 zKNs4kwJ?2pz&)U934ziZUuMWeaT+D_vsX&%97dZVxPjWr7$hV zxrCowgsN`n-eX_tGN!{$e?A1gz1=2-BgE7htErWaGM9DAsNK z9}V%IB;IiB7iI9nlGneMgKBcau;6pin|-9 zl-|u(Dg7kRp;CGePJD!xtbE46dL}QVusS0;|0t!OQn-f`ZWMlYK?O>#Cuk|Xmsd`R z@*et1&Jpu`(R^KSrNl8mJmbTsFqX5*DxWacXXUg$!BdQN1&lRuI>*BB4OhttxJpqx zSNZ%(ql}Lwg;`!o7*<2q7t=`n@UehaV(pNeD6gFC`9~@JvQTAY zcku=CWOo21$FYA3ITK-(SqS?zIjzt06k)IQgcTIR$_WUoC^=y*M^gxESPflB*aGSa zo6+^}(QcXjTUqF!t9ak>>eumtt`m-~-{h;5e#@TU<~hn8OuKR1(RX-vBpx?EJ#+fy zAEorW3YXE(1r^BC?|Z!Js43^6FCC4Mv26f7zN@;NmomXYB0Og#yh;P%C*-ug!Bd2P zwkN!x5ME9|ctyzxuY}AB)xpt*)zF26FQ6GmGv~aAc-rauT7%TpXDLTPJ@iET5$4|} zGro@(`wFFa{E*l7k9i;!Hn~q75XOxOOXkE_rTiX8js+pi2x^lenDmyg(1-J~kpMW3 zb->H2>>=Qo2nEiS6oypcbhUC(s3yWp%QoEzMdmyHh~@C={VAyC}PeFZjG&WXSt) zbnkekGE}3#PUiANB?x46IhugplSc2K;)Raz3mkNWTU9#l6y=M(**ue9ASV*cc^E@% zWev(jq{=;*KSMD3CI#al0G?wX)|fz%n`=9L;^*f+3p#zq-kteW)1}(zfnciJIIfy5 zu!<7Cz%N0&WL4D2kz9j{Pr_NpmBP%RDeBh~z%Rd2=`fo-D5v!^o?5eWwd(QvDrqVY z%qDUI8-rqj=MCUlIdO@%E0k9bHAiG?*nS4IAKjCeGkF0?JwgYD<;Py!$aOwVa2lYbeJj%aK#1s;*%LjD|C9MR9CtacYEtl@@_z&0)(!ElpZfY+fT5p+eZ45?`Dpdn0!9y4{2EAZ zRDCu^)l;Pyet^u5?4Ety&X-O{9&%%iuYmhM#(TddGQ9T(9L5@@p?+dv;QKw_3D=NR z5_E1`sDXN~g&JB=r#RH;ALX=u$5S=>97(pzOR1n#r<}?8PsmJ0ib8cVqF~+H9<DAC`u(+$ei&Nm$CuM)Ava_ENtdQ2#zan`@LN_4>=b^=7iK|cm?0`MRpemkX`jwM^$=wz&yO2> zD#OLt(=uUWPc|mn*i%_<>tW-~y*1u^MrNf#Tu>wJf8bl{ZT}soxVG3q%MQA&lq!&p zFspA*$ppLG_#Rtf!&h4;e;j!$kvGjNLYUxErA7Id!_vcXj^Lq-SzPMTnQYw3`7xf! z$9cr;6@(EhOkZA>1-Faqb-GtJ&<_ezf!KeSZ5~ z+)Ao1XTN(cOpEy$W$r) z4}ka+DniO5@5o$p5ehmoj{K*&{F@JTWY1G`VZni*^kQ;?UQAK4Ud(k#hQwlrT~Yyc z(k9clE_+Vi?h3t#iN`QpL*uXaC5!>;n1qfYl42(#3Xd+YE3<{w8i=8H z{tV<05`!9%2?0{uW9Y4o-of3ht6Uq8A|?Wljv8)kbWt?>>S$2!G$0|*8qiwzdEFBc zMYjI^D9YHIm(jH$5us>9mX~_7Iy8nt3!8FeEpD4ZkKVtacV*1l6MBDW_3cw7JHoOS z%=Q?FuH;L70CGeDu>1adb-A)&UEK`2Y&MlaS9PbGR7!)H4YwYx?V&HSyeb|V%WNEM zxPUFtGeJtrk^Pncvfo+;(td(j2VSbhmmkFb+EEzcPyW-*B^T z2D6H`*oM_ndrCvJ7we17Z1^Q#Rt^}A)!W00ft6fQ*6*VrsXz&%DU!|0w|!6eLMK6Q zpf`?c@d6Saosa$F1m&s5X}r&dY#SfIvy_UYqfhW;UrI>AF*>O)irJmO5x|YUq5Zj9 z!ARd+-sl@$>cj5s!U|`+n0NMWxKIw~hN~>?R+hGKI*Ko{3BTr`PbdRk45E>fN*>Cn zSM_OplrWO4H|W1rJKi5hDUa<5{xRU}yv392zYeafd6JL=}3{tM9)!r^YV1&xukN0sutC(d`b(lP?@0|I+Hwo zi9hXu>3g*f%XA92IXP5|#a<(4mzcIS;6Z$9WkbD=zk z4I3@*Rl-fHa>y;9xMlQnrC4QxRRn9ESE@O&=hHf{E3JPSf@U0~h18*)TWSk@Y7?WH zTk1~g^QBls^GP|D+axO5njek1Gv3mAVf{niDzJ&StN_Manv0mp4@OhI0=~1)obPD- z@SS2iz7vlWd}mmV?+z!I;yYDcTMypp2g+^Lhw4kcnYTgS8V%nO9qIKLVGruvKCRvnsL`yv4qUyfj*5CW!dtyR!q>a1sjUa~ zzC!QH7w`M%T{JQtIH8jV_66>F06Ce<9=a{B&nSTDGnLAMEyD*njpnf+ky!CM%^(6H z(`hOZ=L%_W5j?B7G=o(*!MyZC(L&yVOdcQ{^5jc6v<}Nit-G$iNv+0A^w-;v7OAbL zJDLDNqK|Ei;4WC4pf}V8vB;|l+}hn&oC7Xk6OR5zdVQ9j11(gu|US4 zD^Z8^V!S!*HYyG++5dIPcZ5^X*8hRBz#@vf{-=5`rAj5i7+G(x*b`%599e%d1U=1)8{G{ zM^6sB;LgWEZ}4#x0;$ZhT)mm9*5t)B&3UL>YI!W=u;PTenzGU0X5&<$6O66(4S7{?C-snxd(#t|iuJiOhWmEwL9Jtyel)Z#xDxc^99kr;sY^xCS1&Mqi90 z#zk_Y2_F;6#`gu;pr~{!io5>xh^|s9Q1S!ik>#a%85@1u&w;5oyaLuPrAAew<7uT- zv^|YQeW@t#!zJRL^|Eh!0JH1$u4+bmQneM@Qz=#bEOt8Gtj4UN!)YvHAgeuxzHXTD zJM4GLiD#}K^G-rbmBVl6IUJ>hsjfFLO_g~M_BZ-%YkiWl+u%TBfV`+d6nPn(?c$EC zE;VL1`Wv$YF=q5$kkQ*_|2zqsPc~FLDAt_DoT0VreZF~LGcp7Ig&F?Os5~COuN~79 zPc}VK@&?AXdQ4Tn8&5+YbTwqkt~FevU4k{ZK6JqT&U2LO5Ue4L`ph(!yVmLI(b}ld z+JC#q_mh@2+<9$la`W0@bITf-HF8DRSpQe1oSrPfNI$CmVETQPs?}=+20a2d)J^|@ z;L|_UA501wb4q_OCe3tH)kn}**k`UI4CM0G^%aukMPFf9t*UPg4rH2u)lpfAAeJGD12{R6HcXHv` zB8~--g|Xf<28k+{9_K*YezP#TU{}HymXD*Am=(SKa9-)8G(Io-Gx_`eY;ZVD z{kY=w@fOSg=_7bgm^M+T^aR1#J?fk-7V42ak%w$*<|XToF53>}e3zt1>*pvd!xnRW zkKV`5P<~D{6z-{9wN)qV>9wcQPnaXA$0tjRag}yFKxb#LP_CYiqJ~D7*cSE;Z|nto z;0LbCh8F?sfF4bZl@qI1j$ee&%JB<$_J`H4927iIb3DL)Q^2G1*|Lf2x-b!8)0vX? z^V+BI?!yd15TjPA05>=e zS^rlV!}4EWF<5RZ2sY~HW8h2HLiqNn03^Fq^Xp$DVV(-4KQ6N|IXl(eyBSc9Rv zv=+lsucag{D@XD~;w{cEo%F4lU1TCgy${#`jaT+ zCQRAUyg|l6qQD?x*(kBBgX82a)*I|EHTqGXTw^tY9|?FW|FQTq=RbwW`0pqS-OYbz zD|E(x3KH_);K2G%Qqhe8$8dD%0mIG77;d&>xH&n)%?=rEc3d#roRHymcg@roZnk5% z-95w2+3+aGaC0(-+r+s>oD*$zx9yjRZadL#qXvr^^ba{y%sDjJaQS1XUT~*FVBFc@ z_Rq&q-uMKymPT`UsfOPm6N}sXQ&#s34>lT&4R^wMjaei6mQp8Ar^RQYb^Xh7zFzP1 z)xgLmULI);tA=-mq4~IwUFYUV8gm`14mJjd)~?wlRD@h3om@;s6&ho%fiYR}Ilzj~ z0Y80hSxT52M7LSugG-ljy@v8@vfFhXVPNSpB83a;Fg*0Zzh?>y6DCqvjyROs;I}^x zYv-aPap^ZAC}kcQoVhQ9zq|`Bo59|Mmwtm2J&ZO3M@5(7()uD4>JE6@!(Z72zrw>a z{289BfP*{7e>+?t{G21)fj@))#=|rG8T|Jip5f2ne*&K2C#i@F2BL40;|m}{Ki~QR zvftN$=^yHC*6Ewnm)>U5KhxVJUjx0(K22|9oTqa+7$+;X)7zx76ndLswRwtjs3z%c z$Kl_Wj==k|dY4+k`=j(Om4J7;?{Zs`i}%OsT@8qLnozkd(O`PsGr$BOi_`{STCSq9Rl5X|%q zXWw%}eQ)e*_L@34;7pBfwGd{#dF?ZZ#OSnC#0Ge#FsV;rv0E*Do`&$7F(k!@sLzvU zbEpG;iF$Iu=~OH(8FB$Vps$ubUnVQ&MdT)sN%JBN%n2{x+ow)NR4hXi>p~+`kb}ON ztWIvMyQjvwPf|XHjVAQTDE9@0RM-tRD&!0X-kl0^mLkw?i;C+%K;@NEfviUe=t9qm zy-LMfoS2b+ext^qP=H`iNT4xtP|+H71Dl{-GfLQ{%wR>yXE4ZYJCsRZM(bG!;9HV! z;Gw&UnA#{cYC)mt!=-FA`o<7g6<59mzI+o0WI6YlHW_$`mZ8UDF)CAKai-X3isz75 zetdNgMP1MTU;Nkcm;A}v=?P>>|FE4pE)zPnQzKE&@W@A-J5Ks*BnJFD`4Hh(sG+L}bT zE7BHt3>W2rzK0=sSa}~s=kotN|0dqg_5bx(Dr|f`G`5NAVq4k~wy;A9$*P&iZ9Sc* zwxzuQB;zk4Cg%?TqD{5r2GiAw=Xa*9XC((oylA>4w9{z^NsR7l5_eFnYW$MvlF+uM z9VGENV(v;Qnx|IdmrccgSZU!7@lQN`SCB8xYHRhtqU?2YH`X@xXRC;<1V(?fcuZM- z-D&}@xowa68b7TS;;OOe*ZhNZ!K%Sv4`fetGXAVzho>&U3!d7B!@8e=>QI|$O*Ybf zhf*UH*H`1$WaaN#0YaEl)dL~b;YrIB0@>ip-JXqQ&Ctwl9@=F^h9uq9*iU<0( zpFyh}UEH_*Ox%&(xtbI)VZg4XTrT8_(f*Y|nE3yYPgZlsUsir0LM3^S$AWbW0?>A3 z24}Rd#iKbC!j~ER1mIPj-L5uN9X3*A3y-Y0R!)@a>r@wZgiHa>*LfjxAg}FVISp50 zR(6HU`Rk`T8YY0$-Jp&{!C+lrPqdbH&%6I`61bQcR*A`Lvr5#WycW6li}Hk;>9tGbw6^oq60U1iiMIs9 zS?XZ>U2eqHPdv!c{ZTJG7Vw}LAmG7r^bW$zHy&)^1rJ_^!`f7JCXUruOvnO~%K>X$ zuw1Kf+X%W8>pDGGeS{sM_L3lT>PufnNmva;P zSPc3we5%Rw#7laOf2cPt?i#Gjt+2Ku~5xT5^Mi zq)4DqL#hsKjlT`@s&0e|=q z)E}~Xz7j9$`6?XxgQ^!U2$7@Nj-={oUyWBad7bFMN@ZIU%7WuepeQ~9!rTJ~Uu`yYOV;01U)A^rx@ob}O0b5{FiG#4IdevO zKce}1@Rd?|Kyx{h^U((#%@qrp|Hf!uvt%Y(|9{Y#R%B9Ov407q0NVs#MWLFi0i8Og zvc@l0F}s_XbVe&DP3&4i`GV5KUZf_*X$gX=iOCI`m=)7CF~q1fB*SBbq9GMsc>&I< z*5+p*q3ykrA}vejk^Hd>*iY^2Yyw=!KWJa7gP_hU(dY4BV0C^SUer0tisYzk6X@aP z(dEv9h62U*w?f`L2cgryWLC{xKNiTZQmSZ4AJykBgcw*-*CJQH6N9Z==Kov#H)*{L z)D<9p1=Ov^ueRrBc#e!!W4Q_IJz1E;sTTQHa--m?i7u@{g@EB+B&YR4o@(ST7Q_97 zluD^QU^qEJO(>Sv8mjRtLA{<4MTGe@&*-{&ow+pLIL8s@YKpe#g&3W7TY;#Tgf@YE z^NQhsTsN->%dL)oa_BWg@j*EU&C>cEMY=iuE~FhS@6{+f+Gd@s70yc4(eMkf=MJs$ z(N8>}Q4umbm>)5B)Sp+pJM{*8{}{T;;|U-Ukt}jI=6j(O-u%6qf)t z(EPtD(#{iGSsT<@5vDM@p`r35(*tZo-M@_IT$HDmsP4%$buSMoPjZ9GS3EGOr(1t_ zXJ$=LU%2V*ozU&ez{ZyNO7d{BhlB0Vm4c&wj7MEDGzoB=La;U`K_{jpWt9ZcVkOyQ zYDwI=yEB(W(q!kwfM5EwBf;<(B^u!wa0Pf8evt}vGygzlh?IfM=+!+sI(L_Tg0><) zpv|hE-~{3~YIu^~%F}9i*ecfpipmVA)LpB2dv+_+l>qITMn#>{=&U`zRC4vnrBqNF zvz(wl6(wuTmY;;JBP`eU+cXTLp<=Ye9uPlrEx@&y9SYh~>DN2Wj&6EazBfZz=+P>Y zY|rI7^wh;h3r3@&1?mU1z(~poQ2ddtktR3TQX$&J5ggE_yJWq+%Umyt=h$CB*hZ$& z0?|65pu#5Kp;;NLca3kA664#O$jBn)xbWyB)>z;BDtZ%SSN4AYuT{tfj;_-Tnd+i%oH@5zE4@p(6=ec)#gob{z3cx)ZvQqVw};w@XvW-X zE5uF->o@fp604c8-4)Pj+TA~>xf;AQOsO zH;HQ`l(KebfI{?4ZFjj0>S}jNfOhvrIjviGsvkwSuy!XX?M_a>Uy72qJLM-~|4q^E z45OjyXmfbySE9NzLlr< znyK9>CEDHF<+R?+Q|*q4p{(7>gLWq;po?PV?M^vxsaTG}cK5$lA-kTYZFe*0*0sA` z$gL<7kSlC=|7&jlIVHEQ-OZR=wY!~W)werCVl@-Cy8^mv?M^itw7Z_@)3nLGjMv_a z7rgd<9NOKZF~lKp%hkyW5O+40>(4X;H~6G@8hX<^-8s?b2$-(Z`zfd zfPWMvZ&ylg!RlGnR4)s2n=Df&lWoIoNNHikD7*k?qj0weYj$+)tMh(MS?L&ee+PNA z#L9d-UX=MmIKF*70eXCsKUNGR@LS1=-RwTP&428vQQ=el$0#4uY3f1?B|a>t^+BGZ z1jB*mxb#SlB>@C6x`ue%1JX;E?BGMYCWG z`8|MB?4R1UE3{JKKQ6a*2T!T+uNG6h&1yv+QsLzW_D{t_h5rzZZeU_)up))~2PDEt z$PCJrlL=O8l>0{N)p!ED5d71F#Ugs`@#kMX&L93Dqb|eY6p} zWzn+MVd^Ttp1iWXM9~3J@`h+g{kcYCKmSYK-c+`Lw&m!Bgji;@y%R5J`w1MzR;J}R z>*EjU*rf@+f}U$5LqxdrZUSxiIIpf}AKBfxNr|BBaf2@g`bM7>06AKPC~R}&nJ~up z^`N;iZ--VrC<~fp`;^?)T|70*c7y8S=a#NKG|MJ8s0YOZlj=d%*S-;!d&x34G)9K% z$phr7x!i$<0}zx{r~u>#jK3g4@--f=q$8U=Jfj3!Ykjoo?sI3LM=+Hx-p^iDM0>UA z>ak@2FQpdk5F9I@6%0#TVP`48zNhGHBPUZwr|}Qkh-lN%SKI-8_O^Pw7cc4&n}yoQ zDZYlb`^qqz#<{@(G?WMLrx$o6(yU{a%X}Y z5{n)7j|J41I_n>v{i1x2u2SqMC${&9U4!UfpT~=Gei4VWF<0uOuVb(Vz%5bL^$Sm` z#=oF`ryI&BGR69moYoh3s#vcTqkYgAO&*j?PEaz%@+E6-uExKdg4|u#FeCDbCvgtW z&MBr4K6`)EpSAz{f0@%$MGffL8*wkP&Rc+< z_u&OSzk=iY+Y=zg7x|Adv0iO4vsNA&j?bb+jrNYSKqQi0=I*Rum$zBOqMqCYD|Ga; zUzO9MnOQ&kI#HOL1`#3hpr4g9IsZl^m6^R2i+&cZ8Ijqfi>am`Cf(#WG{(W+VWt>* zWtQPAK31wHNn(daiE4P*Gg`xDr|%G~2$&F0ffl?_&D^Q%!Bm`!CXruPo51k0s6 z$mnMVm1?}NzGVRN*L3u80O1Q%cI`uD3q>}MW@T=0q!6X>g|3z2*Q?NPVqjiM<-rP% zmfYaB2`hCiz7|XqmvX#YS*9BkV|&^hk&ZE zn+6sC$d_ZPtvup`!dH?$c^AWemuh!zboyt9m)Tj8_vBC=@K-6aIeOTX+++5rjO;rt z*e+V{q+h&@a*Zy<-q%G0p&9F;Wwh^rtE;J=EM71-X;KO<{_M{E6eOyzE$4gio5=b3 zr^d^Pd*0^$+UQ=nRI0jb-|bscVf=Q4MAfo3azvz6CfNr}^~?zoA(43DG@>7N$C*YjE|Gef!G@ zu?hY`pDZEQAzSaouCl^p>(}u@wtf=_-RidzRjf-Al}6`vOIEGqtQNOE``UPm_~`GLkTgo71OntVdF8v7XJomHOduis`mtQZ+&3>-^nIBJ*(+Q1+xap=$Uo#L+q=s z%&q!!^9x_`kn!BoD~NjN)jYz;;tn{f2rq!o-mPSB|Hp@(Le`fcZ#kMjj}p9^a0pm! zD;=uwv`}f)Og*_36vOOFwbQB^RTlMDwB)LOKj-!@$+<6}RV_IK3XLBIMfw742lVzK zANH6MFut)6X7R5f;Mgssy`rYGTq-MulDp*e=@^#EiZG`E>b@fivsPfo?<)i zI^P+6U)t=qsCC--QMzd1SERCoCLtwQyuup5_P6D>zQJ=YoyZ%ca;2qIQ1u{kgC0bY z=!>ie@#lmpS*_KRn;+$+kBMbfD=p2UuJOAiXbCmyL9-~pnR21?nqa+1_S$#yKLR@M zj;o*GWgh3_UVytmK>t&FA!pI6`3LPqMGM+XEh2N#N^39Q!Hf37fGyKS)c!6fJ?slb z+j;U1H4q^|17Y9=9T`rU26Cf1V^$W?8Os9=L{6ZAC|0h4m?EHI??~_Xeu@-|P<36t z(~z1m980-qGrD7(!}znDd>9tcO;&#*?+z4r4Bf!`Q497lf{mT6KK2c~xfHzD>jC)J zI}~a*Nd~dDdVtalx-U0#RgI@rV=A;r&w*O6VQP$Kv;sB82*+^v`znf~9K+$8M7f7R z{!%Ir4Tt3hOlYL*H6~oYg}N#&jiOCa`v*c3l%oB^0HDIR9}r-u{UZmr@Tp*$MXR@e zEO0?l4#xu^>dC_h$NZO9<~Y+%Ku0I}|F0x+Q+?9!TF~4d3-1V1YySkqo-j1cn?)Gx zbPz@!YMpX}af1=2W>bAG_so+uv{~4f*a%|9*}6HSj?u(mTO56iB0~@T9$Op&IWzVF z2*_G8<0SEj6ITI~IMEak(8OE67h-QGN==7O@jQl-vVu&g=2;-$r_aiJ{wC2Lgv&bx zh>^wkq(gud;H+N_=7(QPYr2hpAP>|;19`yM1ZLaU24AZiFKH1PUpCzme0vRJxn?K{JLEtT_P0dDf>>wZpfpUV%R4hLT^ci3`k5_?D z^HlB9`sjM5QP<+bNUBr4vjTann!?rTo%N(jlT9AYXY<44L755d0D!ETaF9$N#)w^5ytp2~44MGGh=?_s667a{ij zKE4C5EyG(koA)j=V4q4`=V8mrXYqnSQD3h-Nk#ar+!o4#8N6;43%<`f4SC4mC3kW@ z6T5DulHy_T8W7&uJO-K@`jRoE}*ciS{Bj5=7PvwI8%UY@gUGuWIMal^ZUH3-(F4~ zNC(J%dLIRL2>+n&RQ#TJodws<8_SC4Iav{SayJF? zulMlkE6}{|<=b@xyIf`SMXD6?jbK4&;_=3E(0-d}`th7*hA3@7$l7*1#=jD;{$d(69JGjTm>*P(qN>^yp171Y`n~1IirSxCC zha%d(oruo8auMAZ5NwBP@sQg4Fb^{dE#SqAXk}fTIw`mH51!&wY-Y{z4^a-zy#ypq zl{-2A8JUPyJUDfs@GcVGa&se#yBF&fIi(VLAzexKP#`CyE6JYv=oZq%WQRk2^kaT7 z%xyt{v;*sYhbx~bviw>;ncgVmbOD|!r>oS{F_eY%WchfGPm|fwFr5J8IKr-C!(#jsfP4&|i)yY`dG^Pl`NpN~_LzRhqj zNS!Y`I>cT8%*p`v0-!$w*h{vI5)aOVa#8IC!0ZfQF97Cb0DC!Q$>i9vOp&fAwG+;G zUD4BKgJ5x3GU0bu_;+$&lU_KD_Cs`{@u$?u_9P#{aS*k%^WsnQt+P)WSsL~NU~UGm z7XX79z+SQf&}a_miCzgG!2$5mJVL=oLpZZ43pBU$FvbeeX8vk)ES@$az`Y1MfAV)P z;HUDxoBw)E5>;awOdW6HnO%%$i$T$ZiS|j=3eTdmB!pLi37Pc!s`(77GN30a{GI{ z-3ME<+qtK@uEq#4OiQ2VJw6;djLxaXRe_wTe4-iJ%vA~ShRs+TC5?m~Gu8z-;0;I{ zjqraa|F7{sia#@c_LI*4A_Bagf5026n}9dU(JAN@sC3AHJ@A4zSZAWXM0*Ci*<&xl zPMrz4g+8SHB^A2$ITaUERJ*-u7 z+Dmz`{$B4161b8qA;e%6)A>?fyn>*7a^hdJ8qj%zEt zrM`^R`ru@Z8a*19nAcr`z$-d&c|7zLs8==JlTqJz9Q)KK<}&6Sm|L41Iu5cpeI`uB z6}Hc)QcXXj3S328R>{P@;$GunSk-PswTiF`Xv_*s2nE=)YCb+i&x}3>?S76s7dQKf zSC_zBqx=J2Rn-Q(T8r+WPddPO6|=v173-6D6>HiQUcH>K3pMGZ=E!wc3E$Q9i+ohm zFQ{DmQ?5hT8&u!UFWDRJ$V_#bkQ=C3?e=XwwQuVw5-WXE=S>ECIWEbCYjDvy(;3uf zqj&%Hf!VN{-bW%?pe^UQK-7-|Z8>l3OQbefS^qO=6UK9ftb8^~Cp3@Fs>W!1mGRe5 zZilFvssSGUO9(kUNYneYN(ib-@@5``eM9hO-`u*Nfhv4EXQ0;h4h`0t+r#K;+};Le zQ%;*hPsI+u71+-}rO&9@7o$=v%!XzYtYrtgL>SE0q?V;@DK=&Y!k_?W{nn$%23a|X3cLyT zo4Dbe76+F{>>-PuLd)!))4BrK_51@Fp(5t`yj^&@sH#z9)B6%u z=`k3m8~Z%qktg!<1-(2bXhLpM1s^Um@DnP0d`cf5=dps1&+0?-#JWx1jQg5N@lmk5 z+FXh^tzO%0T7^l??qb9;Ds|Xh3b13+%$|BM6ug9beiyF#sO+cr_W)x(LCA}ue$Zd_ z=q#xSGZVVi{&>MVYjDuJ52_}8SqttmcPb#&xmHe#Bd)DF-$ixG+$kt^DJQ5)Mai^i zw|LEvSnSZ;SwORXIU658>1nyWQ%QD|LAHhitqkk&q6`~xD8rd7{j+5#bg{Hy4GUSF zVduRdrX!g{_4h+JMx$M$D|h{;a56MJL{4i1PYn&Pb{omeeE+iA+B!Llr2AHuW!RrRVv?XSs6 z^^sgfTi=MeGm2TvQjZa;m2F3J{F0r=H}+g$EJ@3g*uGr&bp2HebR!4)m*6C)WeyLE zF;J*1lwlgIE~IDQ6X>OYFC#KXSbY*U7@6(A?er{LAii*Tcw znpKda92T{mjTyU*F6V`vPn`e4%ggjKmzOW`GO~^r8sToEt6Y9q6r=noVUCqT4XV4N zvicS_IEl*L*EP8aJx+qklV&4%a7N(WS2~aRTirL|7^+k@{*LzIsq-@xNk=rBg2vv% zdX*0wX?+_ydk;6Ec?!CN2P#13_g?s5ix-vBWVf0|w56?}MGV7#Aoz#Fu%~SG;S6!t zT0fr=MmqcYqOnG?KDx+}hOTF7l?SD=61jzQ-*7oGE^>@*50Ypw>GkkLRV99jxDm(?aua5)~LRB{bTTE zwOu#A1&i!v8v+wSIk)91h4^Y{>)NGZe6^{7?GF7SL=XMntfty=O?nU-WP65zyO44B zT)_Bhi%6ATisDB@!A46A;)RA&rq>xZf>_+0YA@!^1wA95z= zpO6{z6bn4h22a06R_X>8FtYkQMR19)&@FwH+Gbl-S{ubiXqg_4F^^ZqZ^^@1upsOE zpXoyeY@@Xw0oz!XSw-?FGU4;gwkbBU*cH)&Y6*$lfNd0{7dqYsP10{BBIL)BI~p!th|qm_#Qw z&WK!NlAU7C#w3QtXxlL+DZq|XLO%HbwD~0efKOC6o==K-!R+ozgn-#jE;W0Jvz=UG z@AKQw!mXtGa<-EXQ@Pkq1PE*=z0uXksg1^Wr;rqU_e31z%$+b3a)uQMs2x9n*@__# z7WS~WSw_gOAHZYHp-#O-H41y<^W%Tg$m0a)K7_*Pe(aGB#4xDdzsMh2#KB>hiYv)y znWJF|PWwsZBLHnY0m6*^5Yxv%U$wmjPnIz}U^<36fA?yua(Y0}-b?_78jtLotUNH2 zm8SbVQxQN5&z>x|bt+Hov}A;wZG)DFq=wv}StuUDN6msw=szV-<2O^xjy+2Zpthf( z(aD~?oT>3jgU=^M;OovnfS5slz)21dnN=q@~1G9!uP{j4UGgCx|-|UNlJJBVfKK@DJLEYATSWWt+QT9UXe~ zQ}BYPPsc%zW?UPQW{g**XwM2VV*VF7a>-1c> zn(+;FJa!umi-QVHt<0C*a?q2s*O3wDx`F8u_mSA})x8fT2T?=qA5&PCHrL#UR$tXr zPi8hWNvQs(d3?}7M+aS=*$;QQ^00`+{mZbn{-08f>n?||5M@DKPyl`*3XJ=Dw4%S>)M8QQk@`Rx{NCDoUcp&xZJRDeK+_C$!C zhE3q1oU__F+`Fa-z;X#(q!L^wEAn48Ie;z^cB>2Y;GyNyBzcIXlyS@93Z>*zu}S zR+_9IKg{#svyJZ@4_;~S^V?V8R#JUA9{jlDK>-3DEJt^vC?0M+cmc^%;B7eU0YCVH zv0r%(6r?R;b#vfF#I4P1E8kvd$ZqeNd#z=~IS!F9Iy-Nm<5(u5S}Ly%d-BTR_j+${ z=fRad@1{YZJRIMH&)9<`-@XtJjwt3?Yl~>^-6hc$@g2ZblcgvEZrE%Xej^NH7RWt? zr=9S?iXa9prGlq|bYWoc$jkx!UZi!5m8OY5EztHa**2wVVpyfST}vF`P-#APS`^a) z9p34^M2Rs7QAvc=g_$BRbZ7Gz3q|VfXFvsyD0ns6h|snMJXsE_qcBkOy7S;-9D0W1 zU9`!{Z+B75h}94?&yv%6CQpeOG{@%n!F17_y9@|1BPS3uisi-3xR%0nC`wF1Wr|Wc zQ

t1KI~RMJWhn_G(j<4qf_Mco9`A*Ou1pmwnBnQ@v~jgosh3>mv;gls0;>uvG+c z$BlBJHt*8B>}Dbch0|5M8)X+hj-!ijlM^{xZ;hFD@TYxf;SANPg)^SsoKQQR5>&rXrTnKdq3f1uK#zBSxR; za7|YJI8*b^Cpw)TdDkLd%&vn7fh_G;hW7bDgXrGYz#DzH;X( zUWumzdggjJA}wb34?2#zP#=Mfeon~_a-`-lbB>+|eM{+1bL7+R*0vmF(t@a|BjUbl zr+=k++B`&%85tpF&dfik^j*kIDJ{s6h(_*Ew`+*~zvT08Q}TJJ-9Ry8J|`Zx3z@9O z8zF)}a>Y;?D}=Mw1$3%D&T^V)oc}O|(mV-gDT82pd4_Hz|pw4dkTpg(JF z9yQ|Gs@f?XUi$?E%8UjD^Irqh5s!1C?cEgXqUCVVwZO&sC2oo-Hy^r9Xv&Ce0oTcG zUCmRrfKQ6|W$7)Y@{lb+ZovGC*J%sz9Bm`GGIh*>-h?To2&(et)jFo@C_|`k4C>Wk zcgj7>Ed}}d3qJ$V+Sl@$l}hhy^c5DrpGyJ#>&}b3k`B*oytb*sjJ&SvaYgQJzYuJ` z$ZYDkM@5z~u9V6{n>yqMW?n0DubFvQ4h?YPSMyO!?=;tPWH|vFl^Yt>7jy15?|mzV zHxImcb$O_N;^e-qu7K;x99@5OqdL4<%jWVp*Pplc&PD|wJ(&Xnd5fKLZ+(en*6M}6 zg#GV+=UoBLPF4%;Ys2u_3jRUgpqdTN{_2VTL}gGR$Z~oS@!~6SyevNpGC&X8yT`n; z*~hue=7w^NQw#{?7kY`0XzK)fP6Sz=--Q zU^`kjB8>FCua(offv5W3d&L#^5VMrZgT7ZzFlDP)`MQynqN!#TmywV6--A-L=CJr` zM#J&+7TWDd+kFTceR=Ln0}Jh7c~N%wd7xEnd>_QAroW_6cDl5G%`LD9ilO%F$PN;G zHHT4Kz)|!UCMMlSA(Fc_m?^?pO0v!EI7wx+K}miC=sj^zl0PltyqR2;Qh7*8mK(Gg zqfXV$3O*?qbv%rfXN`)xlIHcond<3=Asi!MA7>(lM_7iZj~VT@j388GT}dNX3s{CX zT?Iu0jP6F7PBepkT2Xss)&^`fy)Um?*bd6egx0Q=_cF9~CCUXB)1>3Bs+u_+nR|DE zsQ&O2!(&X_arQw0_KLpN@KIkn&oyFskDa+($JIQDezN!e3vRFXbhJaYhM*mmqt_DV zVb%_B#EW)#GYF~;#{j|&PP1D&uvFp?A$KXy5cqCzA0Aq zezUmtxdB!mXZH&=hGy~mR6{e1l5#_{ForhTz|fpGmcrUxnC6{=qLNBMd86FcO+2Nb zpe$rNEaV{tMQ+dr6wfOtoLS8W=YbZDbH-!MiX53DBU3a--*#A=m%+a7*zzu8oQ=k1 zW^-0%hTpgF(Pr&hnRj^MHAc@k;}~50h~&DG(~DMGC2x2GiA&8Em2P2V(V3{BCG;B)~goaseQ}o@N2?9 z=v!2QGmcRo4sXwmO6_ZGTSy5q=J^B&#;7GbpUBxv-$YVf zH8j;+I$a>uR4IKk(QUQCbmr2oXo02Fe3nB;k725PbkFFZlbwBZ@d4#%IrKTk+VopU zkT!iA4s$rim&PVFfPNdFrPMv;)m8!yP>oqhU1=+$4q$oS@K$vV0igYM0$^kOxuk?) za%D5a<6pXfnW=DN5Hffz%!0~MfhRBq9vlP@UNggAS3D$MX6}>EWaU4*IA#~M&>P+% zr}b8z(i<>BG{?VTMUn@4gPcGrC|0&U*&mf9>d2fUH#g_#!>>5o%k|n}QHna{>^U3G zJKst6)OJ{xT56M1V#Zq;9<8j#kEB-oc+*N_#R$in1=P1K`VrVAI*tDzwLHeZd(F+S zfc>3+Fb)-Uf_|hDvDVP@+&l4t=iZHjK1XFlPv;*KUw5H(>vBwvmI5rPN}l7TS%IV+|U$6f-b^XlyZa*4OS@)&nb0@*1S@2&?Uk zSk}#4C!5HLC;+1eb_d+ZdSg#?*J&y2Wt*kl%9^|3irjlw$~V=-<4y;kv3xR}?6h90 z@o@z!8!D^bkd+H)rV|C{L9ux;I+1_Cvto}a{e` zj^n=(NTG76W^EKhx%?=_@FYXIWL0f*d_OCnJfvL84P=th%&&wAvwFLXypMoPQ*3P- z-s~VX)=yADJ5Mc}gHUCt(~_HaTKeejv^uHgCTfdLOTLqpN@u6#8na&qXn8hf>R1O@ zfPHh$_ti3Vk7UR^7MAPon>b-J;&|Lp9~7H*^i5|me0TcL$MB-P+=;^&XE)-(eH>-N zP$v+b*CGVlpCAlS>l_OC-o85k2YtpT4eTZkiaz5WK~p{V9NSObz$)uA3L*WxTu8&I z3YRnqvF(X$DG4*AV97{l+<8(w>3|AkFPI+LbzR65Y$~$1b|JfFdSrKZAycra$ZqRG zR`f+3#r#_rG6kE8?Cm+SQhJvW)aoELk{i*y&0|y)?&@fzBdF4mVV{!I`Z!O?urH}W z9uEVQQh6Z5CbNTTh@}IVx}~1HK_GhV2T%8ECO)iXd=j?I|T_@g+H}&+`;5zARe6 z27*EhIRPyc#nZwQ!H`(&kO&3T6CtC)>))Q!Kq&?^s72q+X>cE2(BLaL(11y2)jf9_ z@U07G82H=k9lXv9$*@C~SUUq5lo(|Anw-{`d5R3&p<-kZ6f(#O$e<{lWH2NaJ0wE^ z?dApU9vt>_m`XCBLvQp_#IS1vU&jkNd=tmd1-t|rEk_dSET<(B*Haoq`&)#bI$rxW zP|qK-Uyi1Zu|~&y!{Q)o#Y)Ewjno{uUtW}@5*U?gQp1gRdpculdDoH4`?PQ zpqXN29f(Uac^QJx&Ek0v?OKjzCc;0a2$I9?Lcy7n zR8!s+BBVv3jS@CvKZ>Gbf^M4n_~(?YxQVS9v!Zsq)5`Ge*pOIlh74RlJp+expezxK z&gCD-b8$llFMl0kPzTI`eh)8rc^ro}eSS6lBQ;u0|DbwpBF_D5p+wFg&2&#lr&{Br znefAv6LMPj^AuNdOp-}-PCPLTmmvv>Q9vCrGMV<8x8`kG=?3Mm zM8C|-|9!kD{||A{wVw;Tnkq?&_R~zXiy)=+0RjYM$*z1fI*B;LI%bqO%hg14-P-GX z?7^ItI7%Gi{76pg2Rua_>c(W8pb$q+KpaKslyQc{Vuw^IpxrX=J$L4GQIY{&YSFKA zy8IX~=<-t>=wh=P#u}ycXMnu8w^tMQJ0i^vPoO+-2GS^fNb_?!t)K7|X)tgaX#|Bd zastvQN+)RyiNy{{Q$RD)o&_Mogygp~ZjaS)gS98qlcZMx>v8`8_+WuUxpu9rI-^ywI zlBekSP4x=@Fc~ZlNGT^ErD7Gmg7RRimt3##8$7+7C`J_>E4(bibjDEi3Nz>E++EAj z6d4r~Wu9+xQq6nrR`|jJZ>vvD2)1F=*3CT9`i#Hg1^@pY$MgSLl>Q$6(t)ydGk<|=c5U6vxssV0 z5_j!!P&%xe`G=g=-*{@>4E=bvZblxgn~@Xnu3~krn>lY9{Nlu!@y{|&+&O-?Zsuvz z;FsBJX8dm5%uexZ-ApnCxl=D@M6Pu+JH?!>n=vd#+m3ZJ1=ul5s9#L8Zbo$z@Jcy) z8@%)=!L5^JE&{GO3{3mw`My!_)7N^Fe+_5caicxxnb|!M-*&kaD-zC{y@bDQ>gR)~rk9 z*o(Le7Pqa5RxYdTj;)CWIFpBdP5K#>_Co%jmW5sArY%8UL!o_j|f+&h_;n_rk64FG2+p0DO-VJm~4ZrQG}V($W5qHSHs^#sb!&U>M~&u?FcTS@ih)`fhJ z60$BtfM8unIie{>Ct5vl>!s>pKv60iE(Bg0+eb5SbAWJEwms$B?h6331*r4Ls%Viv zJ8!suh#NRuyi@^f!m96v!7}%+HIagi-WQLs6u8N8P^|N1gLI?J8sDGQMiz1l&_G{z zO#I&K<@+}oOVu{IB^t_Bf!@!w<-l$vwsR}@oo1#j_nQ(k1ZZ+I+>xbNla=L~FJi4H zM|Mf+E)HVmhR#ZMHihh&qO=Y`*XgUWRo2?xRW$7Rh;OY4| zJCLQ9fPC7D>yo9yhL9PO)0)RqvUJ?bQbCcWa)Me@lw6ixpsI4m{~0R75z5j6x+7Vt zlsjbUE2tOOcMRi2c^BePUd}MwCW=Z5b`?bdDas-_tpz+)lnE7up@g6mMNUu@Md=(s z8xo5h7NUS=g~)6!!5M~1vZD+)cAn^8QU}c9f^6lO=djo@F?$PA;0E5DG{k_LkFH z%2S2-fiHxh6hcl=2u0~EgdwrmVIc}=R)}fpL`im(;cDcJA1HimO! ztShI%FRgWE{BDf3Q~VlZJ$njrw>W4<EzrIR-eiNy|ivw(K<<|WU|+n18`<;(P-%thB`mUT7saDCIk1WniQ zD5dtgmRHwlu+RHIgCE3GCuEubIzF7GN@Ghqw(M|@N?=S=c&B24>ASlB2g$8nIel8L z+fZoS+O&L9%H=o5YmQsHsGKWzExBi zJ4ia=Mj)IsYft&MMMbHA|AD!5e{aZSz2kc``fjwv(^}6{?cqlfTyFA89yAF#!DXO|1)gic(~&hR zm@MUCcBai=axyvNs(Ge5qlpz<6tFZn7O*>Zat49#?_T;;P@vGHnrDt3Ots2f;gGb& zF5GG6$gFkqZ8aLS_OfdhszBbYC7qhRoYEGvIxW3{M*I+I#Kop^s~qH>oupaNy~yz=zq1 zTLT$YE`xbSw^ie!xvL3|9M=tT`xVx8gWdjyZm2&`#~5@7ZKgmjvxPD4u!rWxk#%PW z5IfS>PV>doaWDcpJID21WPRJpB^^ii){-eFy>^AD*4mh}%Io)|~zGoYc#DckO99QDUwRAh+c4U^FbtGNM+obfG?JP0&Ga`3I@6{qVxQ%?5kNxm!mrlVlAjUHz*=uE;O zgPw|m4AS}#<^Vz24`&m^d%Y3hyvf}L`Zl_WXbUeO=S~qSxts82 z#P#3zWZwxhqyD%N?fv?oy0OFTu2tnjyU5Ow+d7MsNCW0MB(CG%d3QcGIG&!yFc&f8z+m8))1*NB!6UZG! z=~P|~iNy|;*8=JpI~!M>aY3%TDn-w;XM3*cX`c^}`$nN*`x(5hf<>ai1Ip1SDI>Z) zdb>hU#sr5l_R&eb3csOMrTH#0r@d$+)HWfi#vkF`L3I0EdrZ*OJul$h)Y^V`K@n#| z0de;e{eP6534D!5)bMAXnVZ~%5IeEOn%K8Q_B}yE5MmEv-%B;Elpv8vLn4IOLoK0} z*hQnLEmB2GYpp$MDOI#o6>YzB&P?u&YTx(${C-ZJ|C}@D%$%8Lp7q|Vw#~h(jP9d; z@5t75KX{^_J92>c+|kn9TLn@6%zcz|yQ$+aMipvI6-%oqCVY>HQJ# zv|@5Gs{5BA(3jqpe%Ai0O;uwGCW2DZrW8EXpbXhJsZg1Ilg}O|8K#1MnGd$#!)@#t z{>GkbXV~%7KDHYC_94HqpoIK=2!9}dfwoiNrX1`_t{}(T!#??MGX?9wOqqm#=yyhN zrrg&v1xsP3;GYsR1*^O{Q^*O`E;&=IrNv92WzLtlkMIF_d*i$X?h3NL)Soy|L4PL0 zALtLf3f2dDLf@}qJEb>ujSBwpbr;I)pD&(J-G6)q#y{>5VK_*|6#PS98;Yrbr{J{H zU@4>m|CC4tR(UfOnrJ{JBS-Zos&*1lzzLf`fwgUS_Jg6WK)8LQF13WA$ z&ciUu0~J{Epx?cjf~9ZefePsriO~O8JTM&OVLJYap9&K5@RQC1mO>uzPl-HWl{fQ1 zPN;UtJXlNrGY=TBL>_GEv(nL&hXhbT9%jHFIEL(nd171Q8_?jnS8-C{8F9(4MZ7fKOuwrU5t)0)Jpm!Fz6#t?8ppN({d7R{UxgoHoN^5>FB>{^y+u{X^eB#y|1+ z{ZZI=c%6!NCM<=%r#r>q^!dOW!eOiN2dzIXD*?Kz&aI z74&^J{DFD2h33(E?EX)99ytX!;RFOE-Me>;Tc^h^%>^H}!> zOQApbr$m3S%A5TmCsey+f2^f%^{2#fW)66>^e4D`craIwtLfSGhi=VVHgD6iO)D?x zBr~zGAk7Y()td&-zTvMMTzJ;&9y@W=yCdF5iw*lZ3#<)gJ-V|WuWSXX z#O7Hx>^qXvJLC4{jvG@eu<+Tat=`FNj15~Ifii&P@XokxCRvAMA=%h=N{71n9Z!Pv z?Ob874J+!@v%3wOLA9buZd!`v_h$4QZNp{`a&xj_2Zo`v4MU%i9Wna0!D#bq1lo8^ z!tF0$+n!acv8Fn-!4^vvFRL)vo*nT|@V8;(`d~?gAy`td2}}M6!|g4b(0)b?`oHdj za@!)5M>?Qvl#Vjowp&dbc6=OeZ}CGvu7ho$&6@(SC9TI`$$<_iTX({e*|r@rY}ooC zXk#*C$+T!Jahr_Wb+fU&A=yu9k0m=2PzI4@#fXim5X*1#tXJ&Q1k7!2RQ_fgHodgp zS{wGh8Cw!q8e`olkLCCLFrUdC6Q|j*PY(xA>C@B?J3o^4RJbZu+d(;u-bjl=~ zfOR9No#kgPooB4X_>PZ7s<#O=IKQ7)qLE~UHGv}ZjQ zXAQJrwal2$nFA{L+OYnxZNnO5V9A}#HP!9e^IVk2CZIO|JuLquBdWJOiyBwK*Pa#4 zPw=;AowlH~?SLcla4lx3E#=vj@>!Fzm-aq--a^qg*kVp5knBj7Wqhz!49$(--$ly- z&_Wv)I}IaV*|c@GJ>!`evGV)?KYM20j3te?qD+iKIc)>VZ$8C#)}dL{jb>?q&%vdT zpUG1{wPA@LqUTJ|+OucVv0v4OqRd%=a`zyVdsbjyjts(?HUs95JqsI(+oLGk$2M-7 zYr|f4dbqU=3yvGIsSIld(uOUh(HTVZ`PGLHx7sk54=~pB2{`xe(G0vf9s4+oGJhi+ zW35?&8M`tH%O}%Z{gSe`7iQ6PV;RgMdv?ti+cO#V4tsXicTM$D+zsB8v1h+l$GT(5 z+cnyE%KPJtnnwGnz0=Y(8`g_5`4{bvzf%j#j>lFB8jIDNaJ#8L%K39~4>jUYe!m&z z+~HWhr#s5D==51I;*^=+=3;wVQ^vlZi)~mHfPFmE6J^D%DBq7m$tPpo=v3@oryjWd zDi~*e;CkG48jRcHQ*pam2WFYA;@aC3%$9D4Om4UC{Fr z+a|D&EdB_`)Rczp=}qH%HydX{J8H?h{%HBM8hUs^8Tbz7o;|Z)8sKNcZqmw-1G%zi z71MC6A2zV*4)b9o&bQY-TW3St7UG`%ge(^?z&WsqM)rq3==sq+^xOlo2QxEc1ng4- z7h_4yrBt4Vdvpl3Jghs;!?Xk}Z$>jJtt@WG4yM&$B+4prV?d6AHp3`qtf{`-=r{(~ za>i!k4I?<7ah3q5f$z?ZTMAs`reb^XkwWJ>PWBW<>IvVTsV+W~!uC?Poj_f+=KEdzd1IzoQ+k|({fRdo^SuB^nQ`M3EK$g4M zB%T1e>Y&@e_OcWhdPf!x^&;3;ESu;9>cc7a33>4+%Wv5xqB<1eEZaq1(m~ghonvrP z13pu#qnBF@PGf*Wm*AXu3~x@B{f^%t2vpY#iE$vXG$?`u!daIO z5h9okf5kCNHy6aMIK%9CxPg=d6v0aKNCUHbo2U%$NxJQ1>B##LKUt|a2rcXtl= zB*D@a=rw%LeV&1R9|M*!%Q-xy0-8P3U*k=2?RwJ44c{=uSvRtiBXFp z*n1ql#u_YN19|fIctfI|uU> zJcg(y#Y^Xd#VXjZc7TqtIea)#B6vX>K`n~}FA+easVz~|mN|S3MQEsXW69@GTeMuj z@t3q=t%H_Du!Z~s^0NIMq{VzPQONX(3$yrAj=#a}$Q*#;c@AGg)PQI`-$-<88d`4P z+o@%r0Wr3b=aKFt={EAcHM!d$+W-zLkOKso#{e@wa^L`V5k zs&|?!kMZA0cZlda?jUhg7L(7b+(}|SYbK)4BHn_?kLVuvAsPpCh(G3Ch?*1q%6pTS zXtI3H2azs<=noFp?cnqF*op}ea53>Q(bUX}3AcGUBLglhATKpgSHoC9^dJ|hj*(5Y z#~-Pov6?7w3sNIv6M6Y)K6+_t?4al^fg+fPu}9)u>OZUeM@ajL4lhLVF^)n##umVl z3+YPurpy^!l<`!{ky|% zz>k}f7x-|?9d_5KWU}`5XQK+~@+iBH4JV?Z4%n7wMhz3@v*u=`7e;;3*}`0pV6TkE zM7^nHuZ^ZecDAVFqB&7(%C4PgOVp0?QdI;H!Oa@5tS#OlawJO^5ot0(ytFvfd5gZJ zs|B+pg87L-M88r!e=(S-2E2wI!9v9dB3sA{th-_Y5Mw`wfcyR?@?YR zh$*C-0N3a+d&E?tp){A`#dM-=G}4J8QRygyDI$qz7mY)@m`QY+`j;s_CQ2hO3&bp< zGgNP}NFy2!d%zvGT+AtN`7Laa61+2GI)9=vtJ8X|wNV-TE zu{-Q@v6!fcdV5eTC7Mdn3&nCGRqv!&LA00lxYObjA~-DsFXzN+qITrvd$E@2G`xlY zvq!8Wnnv{=h);>Ksbx>Z#uApliOnS}{}5YBSpF@x0Tqvtlsilk#=XW696x(aMZQQ5 zGM{v*Fq#p}Q63^Me^Fa1%CCrmX#A?mlSD3*`5N+TqW7prb>(RyIG%tP7x^tw6Us{? zd6sBtJ?vi#c^;^^Wo_g|()A=So|=x*ocERAlP;EKL6E#c1d9!LX)mvp@Dd?!knW}# zby1q&mLasIw=5!Ec^bdI@&}@7)T4p&4iUVR1(rkQJ)-rL`Qh?DQ7Ek_qvcOTuC$_z zl@Ey=?6Kav@)6N}8lwsF2@xL2;ha|fO7x0)G*vz$>P9_ElFxyPGm#-*kS>Pi#6nFs zsNPcfl5}ZQZL&jp@}~Z6klY4WqW;vstx^!d3kzVmTbhXcX#Dm_TcR|| z`~hi4^dZG7gqx7)r5o)>C!_YC89oL zd0SQ?dPQS&UseMu?)wv2opfr?`CZdv8i!Z1Ch1yGJDI6A(MoEkG}R%ROS!f))g$tz zER`}fAlgf-MmduU(EwVPDwrA(eNHp7im3_F6{6~iE2~JJWQTMPbq@0$=k*OGMEN;8t$-Qldp|EFUNLL z<~su!pcDS^&XUm^$bpq(2`~^auT6nA_%6UP%F7^A5YZ``gT+*aMg_@wJR$<0d+KAn zA*N7j%V46BrglUf>1Z+5)Pbl9>0(V?iIRxoOx=ju5XGCKh|Ultn0gYeCQ3H-E}=^` z^(E>+x^z>tO&yjwWmBs-sh@uc5ocZANrv@yX;)Go(a#oqP#$|LnLlb z*__9_CyeWLu3Gnm=_FTl-qxyn!o?6Q{|YR-C%o4cOFkx2$)lu6OI!LpNoChTBq zH=wj@9ABm!+dcSRt8&c!orhpk20TP2TqL=SqzlZ4$b|gmD7TO-1?8MwnDPsFQ>|Uq z6MLG|w+KpFOnDCSyO@_CH_rGQxq ztePjqOkb9d}19`!sk!Br8#y`v+smZ`AU%8Gc|tbX+jV)CKK9 zj%QD<^Np>gC`zXo+^544^_Vjs+^B`@SVU+x~S7CdWM-j+|?!Q>p zu1^|YZQV0rmn+Kjc$CqpC~Lc*bcS-yyqcYFUA)%K>d_C%XAVNStOm+40Vsd!jq=hK zly)SCfGn=OhWNT515z7;^rrRauSOXCd^4OC zn@P?j8AGyZYiw;AwRsxNdTazZ>?HP^x446OgoYWno9PNcZo6<_s zx&^kUY*U(ZWszuwGC$=XJ+?JAfsrmI<~^PwVI){ha)Lxp^Z_h za%H3J!>7Che*TC-4#tjwJCiNXG=SodKKiA>0%891HfyCesIjQgD}$X0AsyJ@giH2ZW~>$c1hWGfcaZ5qs( z!|PDnY;g=^plQ?IP|KCh3bxQX{Axrrv~$F;7?3yP99!puVWp&ocn)X4XJC7`8ccXtN6H@-E>pI_0|H7^(I1XlpDl zxz`jadp|9Rm4r;vv*FIR^6gX6S7o?O%oqo@1PDh->x3D4Yq~ zsU>P(+c4?`*k2?W7K^L**ygxCA8>yR66b#%c6#_u@ISZ)Mz`O18n)Hit2~b#auLdN zqA^PH+H0_VdN{W5l>didsp_WIxCJA4tqVqf5q=M}%EMT)&nG#4BWknPKL+iD^?!iu zNF_dWELcSQg^Hz)5tZmX>Id38ls9Y}`WJ4{3u@Jqo|w-=xsa6T^y!+rA@ZQr8p?R+Nuv~&n`mC5lPW*kqK#_X`Z9N z|JyBmTB3!|=0}3hw_A9=L<+?hYWl47G4JBjp^?w9}X_NZ($q^lmz4&`9`o#vt} zMed)jgC8itGbn53r$Wi_PxH79>q*i-;~12v zu~wGF-c-)t)N+<(#`Sr9X>9YaWlunxi)X@V@T0t)>H}B7EOYBcDA{bj`X7Bf2IVSl zKFl=o403(xpP*K88-9cBOjPjneR2d zHI!g2wDbUb)Z$#lbHC!b8sHw8&E;{>$@Nu*ovN_rF+jHX4o;Hf$J4 z{|v14&o*N|vE15n&Tf{%_QaQ&0_9^J@jTYO0=BkXCCrI?WxNVrPi+pUhBlnd1lhra zHeZ=hUMYMiDU8cHu@dAG8_e*FQn`%#=g`EkQW@V*3&Wv+>4KNuhYJB z@0l=g6v`&KD6fX2tnGrbWAb;jn#p^6p z@^7);?CA@tYqb6M3>fhF-hSzLhswPaURN%5uzkx?d2oEIT(#fvzdh*trJpq3*QRH} z8j`hLaQi}|eQm5QS7TJ^E&r+<&x+sdkt)Yk?zp|mdC3t`t*QdO&V#dDcu&%&2y)eD zJs#a~t+U3pS{7^nnR)*Vr?*i(P7hD{Ae?M{0<`!#Hf z{cu+3fU~ZzBc36=hBFhmXF_X5)yla2u*};nZ1h$Oo5P6sXEXxoGQ#;^^B zlH&bB^#X0ChDW~TL1}xwRjxeue9Lpcw>+aw3D0^abW9)Jwr9eU*(g~H?R?Ah7{-^TQ_L!^nrBNET zAHCHhtea)VxN0`~XT<70z8$@|@0m8K|65CRW=wE&*V~Tii=jQC;V3UvN7*kMWyfTcwOtm!)y`~7JMsDs zXJhui+H|tVF@1CIRwIS>M`~EL%7gOu<{Y-hQZ^N!m971QF+!0rMY+Lb~ul(cHr476BY2JT$`y4#D+rPbvs#Od7^*goA zt2eeVs5;)YQ|mxhnLMal+YzrIisQmnm}TENNcl(EFB|35bd(*FQPy@j_*Q!gz}vs& zR+ZyyDS3?hw^>mDKGkupf^GqZ_fuc&oBK)^h=Q8|BjAY%>TbfN1r7#Tq3$@vp&`nC*(f_Eqpa<6 z4g9}3vbX*t7M7nYW!+Ez@3qvvRy_K*{$oZJm*c#;XK90fMsfN7Pdoo@9RH_&k-g5C z=b(p>nVaQMI(0K98p-^_-!d_CReP4~u9a%` zM(xuED8E^90OS>tl>>0wh2-=8xNS24<#pJ`J0Z-YGF#3}@J%trIV=a;{u%W=;I6Vg z-ck9tb2(SgstjN)yq?9gh2ra3-2MaZb3#t&Zs$(A53|PsONyhYz4E_~+Re28f7-YH zk8(V+Ks!tHLixvI#J|l(Tsi-(ym;n!b%s}8*dq2gG5{j>)$~VX2M@`H5T#V@lG+vG z%_b^j?Rvm7c$Thda=$(vcI>VuQ|}`9EZh@K_ZqYlrP-M}4E_}|r;ZavS+=(>k-4CO zJ1fujYZ}uJ>7b?x9g&V`y4>>`(07_*$06O)lsK*k=pj)e%K)mtdczwtjAgP0D`Gq< zvMfz0!;vm%nm%|a&|^had!&v8DhqF$FowP5@B$vb&!T87=$tJy(W4S;q{tjrI}YYl zD^0^{PX+R}SaSFl^I!`(0(G=dS6-F%uuzhR6B}xwSsv9{tcB)z)MPUinHTvi^>Ai$ zEIQ7d*X?1!}s{dz(i?HkK%pbsLiJ z;lgA?W!bUDK@V4WE~w~6??R78ELGF|?%#McX2*##+1z1gJ({ptE@-JT*py`}GOx=0 z-lHkYAxbpw&%Fk;MeFuQ-|}e2@-!Wfz6bP$rn}3o!Dm?tHT|`$2a zGcTFWTd-G}a)d$L|cne5NxaI+U1OSFhZ_84e*v+J5F^c-mTu)CVxZ|}){*<(!=!v-4u z>;+LKE8F`|j{tVDv1(b_;RB68c0*I2pn*mZ`;jP<_22lXM=)#FL|J10LYTXzPH7X3 zQ0Av;+7`nzjJ4BrW%hKV9qVc#ThDh`G!c$URnG|4peg!HF~>%^v#zYArUl7J-kKtb zIw)cXD>!?0W&4{^J$AEZBhPNEY4c+8_Uy&7H65+h$upXjZlQEXYxVUU#Nsve=r_u9 zIIG%H>3Z~==sB9T#8&`W3iIyg#@}VVhzfb*aL(RkF+>GGm4LE|64|{5@t)%uYmN01 z+2mTos=Uu4G~I_E`HW>FHPwJsDweGwN}~A^%RX1cW=2gEvFsa7tD@ZaBzBYNE=8Zj zUK3%?W_nIy9ondN9-TZ{e8hTaD#%Ln{D=+F^zG!+VlsPA)7h-~o>N!?Q4;%OR1u43 z&yvYSM@M22`q;wlO_2q z^-N^viBxZAuxmsM%sKHZJ!dexwpee0x#l|yj2X;PQ=@lsKvz}M57lEll2~(1Uw(iT zs_8XRUrp@-P&Yx-fC)$`nku}9l&$G>4Wyl#j#NWBuIU2RyRONv1L~e>Dl-Df-b1yz z?7K+Ln%pTuTTP~qP}fP5$3&#Tnp#F7#c4_=FBzJ0sAV~thEToFHC_1->z&awpXjcp zB+A5VO?yaJ-cz+RV++=E)wGz}>96VA_fZ$6sW<6HYwAuu6Ep>rFR2#OysHQPs&7RO)lfn=TJ>a zjgcm6+C(%@QzBWe*R+oMzF*S=I7>)k-)Y)Nz5P*>AC2u_nkvy;s_3KIIf~{|V@-p| zGEmdbF6gtTrWb>d#%gk-dNVYoP`o9YuG5^@s%fYn)+^9tM>FKIrU>fM6HNs~Ht?oC z?%}^J#(Fh09i(`zH91T|T?b7SoR9`+3Zc0atLZ~(%WO@xX=bg`RE;vYhe#dmlh_v) z8Vf$Zw9rJ4WOhc8IliYGpUEz1%IN9HX0qEQEK^v#ANC;y*1^r5AG6#5q$HL%We3oi zKt&7V^F32pZm=RAzr%ADOAl34H0Yq`Y$n5yQdp^l$2`+mMWRHus{y=2#WrcW+5H;O zK}|2=_473LP}A$J?kt_fv_mh6>;`-fQaan9DFx0-=CDrfm2S+^GoEwUc1;mWFM7^J z1$^cg^HNvN(^SYk{jPb=w@@3uA3d`y)X49d=Mqh--cpMW>n*ns)>~mAthf4&dTT5? zPe10BW1%*FwqENj)X1;A*9KO)0~X-XVywqT=4PRZ9-G)?Mdp5Es(Wo_Gl&w+6UQ_F zN>e%-m0XsqseAkoxrOc5$xdsU zF!hGq$u22^2>pOu!?9ip8u-BSI?Fb;*S@pJl?QTF0nr7DS?RAV*(v(xXKTs`AwWba6Dr8MG zwVw7akgukFu9LmKWU-n~1083%np}XsVz)JU0G(hpx~S+=Tqb*+WKo)C1D#^Ch?2}W zU%qC`HHAVSzGiEQ63yLn#(I3sa+Qu9UNqC|8+J-lxa&->)9j(9%`P*&&ahHlDIUz1 zG_P-29Yy9m@Am90YebZ2KIEP0b(Xc(x}Qe2hfi;NYu&4nnO^5uh}Jb~pI|=EIua$B zJ=!nwI?tlCu4`C=`2vg9y6CV)UKiLft$R97I$UJqw2r@9x7=RC7HWqZU@TOG(2+;P=Tt)eBf;RGV2{leP=r} z4tQN=!-)#nQh3Gb3X4-Zh+g1zg)LM%ihh+X(S*^jvQ^5`+->X$ud8f}rr~4H0PWLM zSpA~cHFlgR(R{jk0ni1aBy(CfH-4R6*Ob)_KA+F-X_`FNo!x-D6xhxr^TM%}fL>_A z{@rBu-INadcN5O567egd zy?$Uucl4<;f18;!Vc%~v2ci^njV&!~Z!;&NBy-34KX~0{bu|s1e;=r+sz=f9uzXdI zqTgYKT8Gi^vP((_(VuwTWxpvMW&R#}p$VhkgD)J$mZebU?=c5WnE89Gx~730a=dcAu~Vsvbm;-cQ(ZRgaEUPuU4YpeyJ7jGa}M=Hm%f zy?fj8+lOEq>x<$D=hh>z3?o z&$kn0vU7_K&rJBXI1z{P0yn%0qsGYd|KHR0@OXd#?~F8mbLD`0q^!IgI%f~JYA*TOyCjd+Kliu@KH@NUdwG##FD z(z^+-I85m#kJ{tijE8D^Zwb6{#1k|*#-I0Y&c7wXoZa$n#cwJyFCKp1yEXq&S(t2n#1vE?RN_o}x ziR77DSIesb&@!#V{k49nONjJZCJLrm%C-@Z^Q( z6J@f;i$Z7gBxzorl2eZBrX zf(ZAV9iIL92&Dt+>@$GpD4n@o-yS{#d9J4ZFh2+KJWV(%G5m-o9ETWwT9b3fw9+yB zqNe5@KevnFH#JR!Ym!0yM@>`Vnq(0FMU(52em;ZwADY@M83bg!OL;Ln<~aBa;r5zp z=ZplZplQjJ&7MPfbxrGF1slriD}sG&yw9-WTsz=-vXyYo593XBy^MxwrH64hO&c11 zZfCJH;hFJp9!R=Ec!n~Z59e{3Ci#RJBlt`rb#*p^&rx0=pC9;);M9x^_P9~}8%?;!jpA2`7MZ)vi}xADZz*CgY9<2x zY@yjcV>la+8C(RqB|hVMn1wd_#PY5d+U4^hkFn4ZpUHfkh0gg*=i4oG-6xSBve3^y zGr4I(afH8pW^+di+54t*XA3#`&f~*0J*e5tcOjo(p|-w@d4i_y^+J7@^E3-}_g%rW zEi}S+H8;dK7H#& z_+8|kEHudP3O{C{IKP|xl7-U!Zu5?@s$T1QYyIx?UKZNw_mGdZ&=-Ec@U0g5*6(-z zxrMIzz2v7X^vLgTUgm>hpN7B5aI#Ptf3wllLbd%JjCU>6#=n9w*+PN-m5p=@b@Q)o zd}E;z{&kGY7JA>mzVXmP$^MOu<{uVEU*g}w@V3x8|JFt)3w`GAVPt3;S?`p;pRvk9 zKlle5zgg%{{|<(ElJYsSUd4b2qrZik2Xr?kSST!@w{g%y0|N#a=PdMLz!0Ne9C}#* zPif`_j5555GTCV7g#n|DPMV^C-Zchjn(w?mV4@MH>8Nvlz$D{GO*ziz0;U?hKSH0G z?56XRfF$FLCdYV(z}bfDWTk5pUp;V+F;Y`peAB>8BVSYZc)!4fhT{}vxpPYAz@36p^;D1vnmKEY+w z)4J_&Pawx=qUi)&ndTU7n%KA#Uh52BO|{3J0SZ$@Ue+5CTDNGD8((kq(6nKaBYbbu z08Rc~+}Wqba7~@MR00~Wh`ektCTX1<=?>rUG+k5uk(Gc_HDPZz8uK(^Z#NoCHDPZz z8LKs6Z#Nm66j6lD#^+jxz1?ga(S*I-Y@F1D(Q}QnnlO5usUwf!hu9bc~>$TJA7BiIU7G=FJS;VFYTj_n8gULDTX0c|cu>)Y;4qBZer2 zZLGNvbooSy%-4Bg;4Z^40V5=`&pNLT%roLNWx*jW-$>Q;q94*3O?ZWpZ){J5YEbV9 z{MgW5+Zr&b{;m`X`KMwVWW%IMT72$(M#(- zfS)2fV#H|OewSl!<4 zOw_ciR}s)0O?c1$jImG?-t#|WtkhJyU6}E$v0hVPI}`iX*rsV>_3=L68J}sIQN1(J zAx*oTt^}Snj%zA(x(D>FCR_{78Q*Kdwcwm_OVi=BXMyL92b#{Ly##uu$+sa7x?nU- z(Q^>!qA^Gj_4bl6%0lM@FBx<h;THxe}AHQx8eEFzV&%f@l78$87vbj3KM>HR75 zJ+BzwYbu26>8nPOrVDUAebsoN>2l97D2l4O{1Qw2mLD(bkhjbUNGJdMhBuqGsgSDh}1f4=WU~p z)?qtu8-ukD`*+6}t##PHJI4E3cch^^d_P~3BIec@X`!Z~C=*bQB4|sMpnJw{3)Kz! z$%swGJ`~a$Zoe9nG~qjKzZ#P@;rnjC8dHf<%#S7`&D6xER07J-miYGDQ)8bdeEaRG z@uMbu`|YXWJB#8md=u}P5vvK`#CvW`(S+~p{ccRvgzx43ZX|2M_wrsEuZdFF4{@CR zX&jo3J~M$@2mNU@N<&IvwjJT3N(|C;E6XQ{iC7{vdzh%0PL?zWx$q@Q1Zv~MMXb`9 z&#ky24H2*D#)>vRhM1`dpC1V^M-x6j5@L}iTxq3Ps|nXuDYk3E)l`ZDnsEJ;;)EhL z2i9FFo@;UjGKso#RF5)X-L(;&H9drt)>cf`^uwYyK4y`t$v5|gv=h6D5?Q-x@D8LH znt@&xnJ;Iy3$hcRY5I)ll%@;wJAtnDTxGe7$c<ED|1=)-JM45Dc zW-qE{l8!Y98U(trntFE~8&p~x&=fQBy&wm1PE)CSyjBqqwQ*mGjPO zE>9RA|1yvTSHT^keTToSTT+@>IdxM-r{e{Z1{@9~I zHAGiUg`a*CR9kGQgEkjF{ zPdAZ6gh%x7U^kJc$c)dVJj4Ma^-Rh`6k05!f<47~qPuqehV~8i64x|M9vTDmld?49 znWMLOstL~=y~S%~$)5}#5$q!>ET^`x)>A(S_7y=yiL7_8FvDLAAi|c-4E7gO6q#QQ z8SfM%l9Z*n($EFLK_Xr2>Ib^-6Spkn>>Vb|+1Snk^VwuK-cFR&G%#zLLpxDf5nJBl6i}3=ri)ewcMu~r zU0Ap}_#NT6f_h6cIb66BVgJ?#hYK%7<{baOydp#pQKET^{}Z5ai{*~s&Y};I%6u0w zNE2qhix{tnvfEXp5GAs{UGjq?MUJMpE+c}wi+w~G-H}C!6N=3EbfAa$PFb4q=|B&0 zg-B(or+96t$5}5SS7MLQi?eqxf!mNJ2h0+D2eT&3Qg4w>mdSK|)LY~bDW4Wg6K1fF z@cM+jaLiyo(Nz;>Fj}l7QggSzI7y_U_ZR1sC5_Pl@uMb;K0rKHL}N5SywHRZVnqE_ z6pvwqL81duCX3Cw>o8axQA8s)So}z|i20>`89Z1tScCO4nLE%(5v^%W+~weRMd(_k z8=q7ZJYM8zI=px~pD3Jjlx`TjCHuaJ)^t00pb;xpY5IJU;rW61lL-6wAoxR3W*yc; zdJ;TI)K+Bv14eAJa3O+w)bNaGvS?|s{3CdZXh)>x%T&=>6V8{ZB3cp6muVuFD3f7Z zri(p97|)R##xc-@~RzSo4;{aNA`k;==G#vQiw@bSS)Txs~D^5&Y&r_vRs=h~!P!&P3J|o}H}{ zH8v}H4<6L567iaz)NvB4L;(@ZXxJ?^#+Gnbz|NiQ-W61ni#U)Qm;eZsX&qBGm#~V zOs`KxG!gD&b|D)?^_>{6z>MRtS-2`<7;m#k(1h_ei<`U1l3~2fB6PPRjF&6YHDSD5 zag|6#*dmtZStD#0>lIOi?c$UsjIdp#?y*MLF48q&gdO6XCXBE{)cFi8RfL_QACa1^ zd154ynmu`9izb{sc_N=EkyU{27~5l6HE@<&=_y>Kz2ka=ADh);Tx~ZXted23P*y?@a zlB&m^d^A5~zqtB2MPO4C=Z72+H}@$r!`+`RgztVNb*1rzI7I}%1j5&pIw%euKppPy zb|HtwgfEmOzFS`)RuQF`pTIM|0ku7uwR_XL$%%9z>rh z=3YKIKz2mQ=E2jqh8z>+h!V{crtb!F(mK2+P$=qZ9o`ct6iu}5!y(zFz7(NEcR7y3 zmtvMC9EUH(3QhQFh%ZGhQ3{J0iF8QQ<3;tbjnx0OD@6izLHC>xp zx7=5jJqOpG6C##$$?OTlJ0X%ay$AE2$APu2LIGLf5PGg$M2*#N4gaDO|2s# zr-a)Pv`k@j>oTv?BAFG9ETQqsXv)1$Co~9bx z+=2Kp^n!cb$&mBHlc<1|f_37ONYM0oouZIS;*2J*I?qDB7tV#&dY8onB3192$k&AR zt_ky(Xj#Cp-gVJ~NX5G$(uoSGx3|Q%is!kqmi zuIhRT+(|qXb-u-VDrXNxXCgIw9*dEhaP~YFaf&FPkHrBZm6yljArTx?Arnu8+jr;_ zR!pLJO}Ak7JQ1ffotSD4{Y4x)t1P=hmY$0G=M-U&o{Bt8M`Mt_*W@9PjPq!T>(a@P zr=m7dpdk`CYZuNnHMXnFy= ztH$3a$5C9=J+ zPH>s1sm*Bkek8d;QwGdPE}v+s1jHb!!;ck=MuBmKIq)VD! z!uzduGVrRZhyAmYshY4ycJhoSAEK()l;w@Iz)(9mOcVCcUM6U24o3ugxn0wKxL&cB zuQdfU=n!fz$6i-nmTmmfp_KfQ2+yxihLo00H&Ca}y2?sdMeH=(XD=(~X~MnVQJ&Yd zHM?#(M|nxp+*%Q#<)rIP^1?>fiV7_+<20p1y$bRGQ6j_ft00SrRP+k6Y7y0=bH2(F zZtuar0*YQ)W@*CcRpeDo7`=+DcuQGg^r~{GCX8N9?$(6So#Y=xD!P-b`2*Hdd$^Nq zMWjZ$rtG8%XF*N5L0Ovdyr8DUTF^4OMyM(Cl_kxIn(|K~wPw|n^>3r4njy91SWP&u zYsuZ3?BJ@PmQ1~)EMLGZs3p&6lFm_~wWRZ1rMuX#e`swvNmK7^&YWesCY&$M@>@-K zcJEx=P7{uwl`w;KEIQ1fl`w;KEjr9#Jquw5>&u5a!dI}e*OzYhRLfczNb#CpF{Hyp zYLBZguPYs8&_zBZQtO0^?C~RdQJHs<6BJQCU1T1S%BPDwPL#;Tz^d;m9qy~>6Cr1= z(oIt`QM{(>kX=`aKS_?`P-hU*NKI#;)vj`jrW&y7yUGhh*lMJkT8HoDxylzmDKGeD zTqAk&AyN{(x7}F&s0rWOZY+NxTEP6r4GnD~|I!pWZd_>2 zO&FntT>l6y3(So&<3d}??V5ZurvaTLQeIlgvqZ{EE9vkU>m}0r(5+=%q9nRg+D10k zgm3S+k!^?;u;(>qhPuf>O@Gyx6Y4I9DND8#K3Cu&mk=eg9bSt=J>{=N7=4A8k92)v zjpr*{5hc;*82qG{BJ$!VW3=THuLEBGayOCcLx9|`b(re_d07)?B2eBZN}_v?LGl+( zc+W9Nz9d?}(gSirgQe{+*p>w>D_~1#h-^xfMA5@!Cn7lG^h)OK@eWf!u-*VNfqx@CrC_*RM>{peEa^A^2LJlNS{p%t}Y8^)C zBAY(7=B%r{MWjYLQa;p#BONJipP{9?AJVOOZ*;&pVI{QeCd-oL0@h|herR`DLsQs- z!=X_!jwq8go_{K|r_9#6n7H$yy~t+*Tj1;&cEduM&hgzIghp#!rt{L&M?h}BVOtik z4^v-;##rjL-pIm=X_2!-xNX>AIh-sPnGY=~6E;*%)U?5KvAEpwKxdv~ zgd!gMDg4TS?EOMfM*BKIBQ>FJm^}WTZMO?%;U|^Q;5`k(+v4B zk=i>lMbl`IajVOVL4ZB)RsHpH`(UOotpaFd~BL0^NG~#$&?b_qs6&| zBb_NLYQmA8FMaK;y7@AkNVR2w>_(Kt*2tK$3*;b8$8BQDX2}U9EEmc+t+RzOUMSNv z<=G(R5UI8-lvUv^-r}|_lnsegyhXD48{|op#2(2pVTXu0O;0E;_bxUPv6{~KkjM9X}Rkuv$YC_#|Ss#D& zU61B+>81&F*)prTRhKPuG@)*Vyb9;s#r0Om2SjQPu9VM-)Htk^e-Xjw(v4|hE2T63 zY@S|;K9MzQTfKZD8xvtY6I&%iwGQ{3)v|*o9F^7bpd!1)tJA_(%P+MK_ng)88?D34 zua=jzZe>a)SXOsd@i6nNWj!K{mkqiAB78Q#E-Xj(AiB$oyn-Fp%UDf+g-@@xUY^iY zYinAy4f27i$7*fe61GMDOr-k0O}-#XVy&c;*d_z(So^+Bmac2<`!?xBr24*Hx@jHu zeTVeagni#3Sv{&}m$fPw$gGHF-40n+>#*-TWDTubI5P@pj3(^+4*5Qjinl|~(>jc| zQy$lZ@pejI7mTO&fSs~8QITEJn%!YLWsD+?gPJhy-fnqQ>oDGK z>C@C2Z?_B~Qt@`n7_Gy2c`{oQ#> z6Qbuy`~@K->}{SLLX=|u37(bb$uXKuA*-mZ_RhcSOcV zSanC_Y$D7c{Qi!dPn5(=a5i*Q?$(xA@2Je}Vy$;n?$?C60-4{{swW<4*no#$Z%;{s*eI<8mLfr|; z`dM`+q@yO(os`F;t-6!)k|xxhlH2=Rb*JPZO{n`?!bh8EM&h`CEgdzX?i(3B)T;YN zj@5*^(=vU8Rd-ruYeL-_nLWm;J0o*7q3&CGbDUN8t$d;hb>GSC@mAe;GFKDo&dNg* zth%%Ej3(5blhN;6b?4+*O{hCBLqD+U&dVrGsJkHNeQ4EPkSmE&%=j+jMY&!RzRP$~ zZqw8qzLVsV{7loJWko=TH1(N%JM4RTT+`6mkAc2bMDz2q{9fxY!ev>c2_syV4>Vzf zEAm%O7~zV1rKwJJcXm~ZN!aQXbF=D|fJ!T3Yi7R+yC&-?qIlP36K%Q2*S6ht*+$bL zUk9Lpnrg&UYh8#QiPTzf zSH=+~v8%#K+?9v4CDywuA0}Jt-IcF3q3)jCKGUkZCl6^t-H-BhidFZcEd8+})ZLeH zX;$5RnW_nO4`lLOtL}l!(uBI7WNfBY_mfQ4gt~_^dx2H=P;Mep{rg$&CQ4#m;0*9* z`C40Iy`SZwMb>&h%QKo#_ekD^cN~iI`A9w@Qa&Hc7eqw z$8sf+s`o^$e}lFYC9y)m*%KMN9P1TZ#uFv6Pi)|+kSrilGvtZ9xyl;hiF`z)>ir^L z5GApB(A!^R;A(5jevuP$to44837W9gzslF^t-4=jX(+?KqwcA6-DuT4m7bbV_e^fj zwd$V9Lz+R!uGO{n`*!b5D!Jo{5RYC_##k{z?^{*sQGQ1`d2 zT4>e%EnPLCj+xxPwCb2CR1@mB$?b$y$4#M{P-mE8PFZz^X@Vxy2~+H8t4^4bHK9(L zhMuwNq$ySt>P)8WZ>>6$X%mqeBOB9hBKQtCn5{OZ*V+>6*_a&9S?k%DY7wb=wkB7i zBsg>8%+_>9TVg$1)AsY$dbXxRnowsp#a^)L%%)^bsI&Wj%)JSC6h+tfeX4tUlF6PB zmV_-KY!Orv!X}FeSs?6?C?IGuBm)FO0$G3n%0xf`QQ0NPG7)4kxS*n-D3cppP+U-4 za7_eJ#0|v-^}hZ7=X8clAb8!+^S$5oy>Ol1{O8o^>gwvM>gvvPw~_KeeVWb4toz1k zeunRd^=W=ai@I-|=5HK1S)b-_oT&T8X#vLekLuF`j3?!rxebBFa}B;7k#BgW9(q8a z5%P(-9On{focOFhmq6om-8W7PGWL8?pB7|1C*Sz*PI#xB@v3}#*|)Gu4}AMUz8#?f z1Nd8uQ@ot{_lIDkw|p~87GeyQZ|1dx5MykEv@H3yh#scsv=C#ed^5+1P-DaC`m%%? zyXwAiIm3+XFYD97i~{+_>ocf{v9vCY=kwvlin?z+pAR=CoRQ^huep5E!i^mBo6O+D zjcIjhJcAE6O6tb`MWgwg)H`m_imq3#=} zMH&~p(jpBayy0yTk%o5#6Q1T)klE0KXNS+{)IGa7)qe-4w%o*?R~@W-k7Tx%81{Q& z!mjX`ktVlp=cV>#*XM9oKh{j-jCJ7`T75m##BX{`t<#ngPR)^}m|C4Dt~KlZy*c&a z8!soPDvD{vjK6_tdc4bK>i2HuRDR-)MmFTH({t7JeQZ2->1Z> zqjqwh-tFzF$JlfKXiha-DKBfbUW|6rSnqtKeyRSFkGZZ#H*o6JTBhHvocbVYvLSy) zZKGDl)zj=pX1ijIYkU>F#>76XXZB@Xkk?S_bbdV72}k0Xu=)SYQs!Ein&huH$o~)7 z7Vq9?ZrxjxIez~XZUb>r<_){JJSHDp5E7!%f6xm&^>AhUmHo)u^VKL`*1I0A90$DP z|9ATO`*(6sl?AUh&_qU+2{Hy2 zOR1(Maf~^x?vO1tM=ewL9>S^IH}Q^cuTt?S>KRKGme7HkKGyc82r(c-m@h*d@uU3Au*$zeF^ z#4JO@^)~MJEVcM5OEvEIEM?XPw_crE@8LFlxyK@X!KmvC|CGw_IIYitTVumK>phL- z*?6iaPqW6n%Xzt{VV?h#+Az=h^@NE0#o`!k;Q)(`4bPqLPJPh)vDp6bcdY)jmi&2l!(;h$0)=3w?yZaIzR(0HmR2eV~19)mZ)OM7lS zwP6ld+X^#>##22xn6q*3nFf#fmb#Yw-}udK=cPP-%6qAaOB&XUXTAT^7;`P0n<4#? z-$hL1Q&&!No{$EQXP)4lKhK{n#HkJERR4|Nd&aU`W^v{WWUDW?^SyEw$;V2(0r&x? z_tEzMtTxwT&IHVH##_hU&*kAK66&;7t_GO%gg@@!QgJHoC0@v^jOECFpiVnFbIs`B z|2HK!%kaOe2R>i+l<7Z`cwpKZ@U1gt&=gC&zp1#8O%$Wv*`9H56ZTjJ>J(qc)c3! zSiyc?yGNT#ZSBvVKxw^W*Rb{h`OHOw-U;f|Mb47=EJl;-NIKo_wHLh46wI2uvQDng za%{0q!YyjtTwKAA%H}{mOO`2z9 zSFX!k@731$&*kAWLC;mGC8!^ZT&*(jj%#ko=6bKeR%m$hHkbKoF=pBLELfwb=5pjS z$U%{LUTmhC=bL;@%(KVM+GvZVuB;8ME(h;DV&-sVJ(zWC)`Lm!rM%nx6tDfxSD)}8 zQ)%aBpEAqiyen@6<-l?WuiSbh-Gsdh#v#l1%yph{EjsimS?E9>o zgPSxx8>F@G6aSUDnK2V2=D$xhOKXt|LVOQF=c}3C8!StBC zGS4NFC$nLm0l0Fa)#YYhUA%HxGtX?V$SY&a?KQ7Un^&rr%FzvsQgVFJ=zAG&FM^o6 zmT_BsSVp-c(!X+-@^+ZFcON}ZJgP_ zev@YXm`h!)uCDZ(e|PX+HbZ7RF^jo8=NEDQaVWV)Cq>^Q_4fHr_CGE)|88H7yneQZ zk~h1JYrs48`q@%)DYIF&tI=#x-ZV#Jlio{RxfTDndAzscYWkx5t@CQB|F>6c$egV(%OS*AK~}QbPcQz>_%7`Wvjt7Q4PiCaD0w{WkBDA&zoTr5#yj0%7M@6 zuvxG>=qxRSIbr3nJ7IT`A1qbfg}Lcn)E}SwXc_#=VfVsTB7G&&S0a5S(pMsV75uAV zYhY_(>tO3)55Ov58z~Z&sy0$HeD=rZKD>wdta^|>RhyB%h1$VV)fQ@l&;Iz_M_aLV zTjASE9r4*8pZmxKp9?-0d@lH0@KwTB3120AmGD)<_Yiy!!S@h+55e~kd^_;U&>isY zpzHA2AD{bZC*pR(w-a$Y;oAw{Zj|Q{SQTs!>`~Zbu*YG0VNb%If;|n}2YVK_A9eut z9PD}6LD&nh7h#8BZdf(!U$DclBe0iXufbl29fQ3Adkgk9>>b#C9qfD953nC$=V3p=euiCu{Q~<9_B-q%><`#qu>ZjR zhLJi;3Z}y>FdvvNEEE<7Yocy|rK%>XCqDb*b06N;au#o1Ig1;0&f-lfXQ>4&0u~9g z5&udi6f`J8bTsHkabO5qF*8Y+E*vc!FSHBuz@})o99bs1T=X*GDq%Hlla^_5__fP!i9aAY92L&eIk&E|RDwh*3w!#BCq+ENL}!XFlhldg$rVq& z=n~QC25+_9m|k%V9A5D*S}5nXoA^nfyNRC;nunMWXnq>#ENGNdJmp5eJ>SzZHFiL# zT4nq_CsHj_?^VU9O5>@NSapDUOukN4$lI3o8s|6khQ}XwNw6NE4j3KBq^gs$E@lW? zAl?FwJ<0DZsF1fIpw-|hgL{pj#}_K4Hp3r{Z4W`a8M$;ZJOekcRn^9_`!>Sge!L58 zu>p7V7+oLV2R$IN2Sw|tISDFM?Om~7MaX`MR{M7yQqk(#jxVW;bi<}M)dH;deWa%1 z8HN$+=>2DqvnBmIlq7UV542QXFZvFilzo;4ZnkR2WsNo!K0ZOkN}jQ@Y%G>-r=c~c z$7&U_U9|?kS2+$b-LzVR-xIyp;NK7LH9D_N*UlORWh1~P!aKpeM*6tXV4of1;pewL zpEdYx&u0yO%kx=--{*YR;P*J6mz>WV{HEsf#vPB&1^La)v#_pvwcW(;K2O(f!JByZ z8aGx{XnANkya)NIur}+u@;#c(I%(5WTB!AaW4~68cSqtHG^GqVt}Ujh9Up`9CZ5#} zsFWc=`T@nB18UyHNS)&o^;yz-XQ_^xxSjB`UT3LK(^Iu-^|$Dp_+M_4}$&C!*% zE;A3@9a#i6-#AZ?w$9902+dC&ik9{qYvp$m$6EP`ym8jEb64qc)>j`}tH)~dV=BRM z6;<$D+wpPepniDTw(-cK=k;_g6vFly{Ic5|6a4+t*kUsUa^snv2?+!eO9{e5HDZq8e{yyJQmA$o3tcCkaw7#|qtxo5DjbjOx>Z7k}6XVlIKe73Gko%WXrVeb^ z!)LEi)MueuW#u=L>@^b6BQDBlbJ0jan<=v%d~C3fO`meZB5=$N%fY@ktU^Bb-LS#u z0_x;_tmW6`CwwZbJa(NWeopvbvR^EUN7?{YT!lORjCTfGeFGHNm`&$$_5s(bR_H

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

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

H;Oqm`#xdum); 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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/app/generated/modules/Az.Accounts/2.7.5/PostImportScripts/LoadAuthenticators.ps1 b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PostImportScripts/LoadAuthenticators.ps1 new file mode 100644 index 000000000000..bb0bc9e63f5d --- /dev/null +++ b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PostImportScripts/LoadAuthenticators.ps1 @@ -0,0 +1,219 @@ +if ($PSEdition -eq 'Desktop') { + try { + [Microsoft.Azure.Commands.Profile.Utilities.CustomAssemblyResolver]::Initialize() + } catch {} +} +# SIG # Begin signature block +# MIInugYJKoZIhvcNAQcCoIInqzCCJ6cCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBn8ROze2QLH/c6 +# GtPhR/BPLgOtmjkNhcq+fFmu16VcrqCCDYEwggX/MIID56ADAgECAhMzAAACUosz +# qviV8znbAAAAAAJSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjEwOTAyMTgzMjU5WhcNMjIwOTAxMTgzMjU5WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDQ5M+Ps/X7BNuv5B/0I6uoDwj0NJOo1KrVQqO7ggRXccklyTrWL4xMShjIou2I +# sbYnF67wXzVAq5Om4oe+LfzSDOzjcb6ms00gBo0OQaqwQ1BijyJ7NvDf80I1fW9O +# L76Kt0Wpc2zrGhzcHdb7upPrvxvSNNUvxK3sgw7YTt31410vpEp8yfBEl/hd8ZzA +# v47DCgJ5j1zm295s1RVZHNp6MoiQFVOECm4AwK2l28i+YER1JO4IplTH44uvzX9o +# RnJHaMvWzZEpozPy4jNO2DDqbcNs4zh7AWMhE1PWFVA+CHI/En5nASvCvLmuR/t8 +# q4bc8XR8QIZJQSp+2U6m2ldNAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUNZJaEUGL2Guwt7ZOAu4efEYXedEw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDY3NTk3MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAFkk3 +# uSxkTEBh1NtAl7BivIEsAWdgX1qZ+EdZMYbQKasY6IhSLXRMxF1B3OKdR9K/kccp +# kvNcGl8D7YyYS4mhCUMBR+VLrg3f8PUj38A9V5aiY2/Jok7WZFOAmjPRNNGnyeg7 +# l0lTiThFqE+2aOs6+heegqAdelGgNJKRHLWRuhGKuLIw5lkgx9Ky+QvZrn/Ddi8u +# TIgWKp+MGG8xY6PBvvjgt9jQShlnPrZ3UY8Bvwy6rynhXBaV0V0TTL0gEx7eh/K1 +# o8Miaru6s/7FyqOLeUS4vTHh9TgBL5DtxCYurXbSBVtL1Fj44+Od/6cmC9mmvrti +# yG709Y3Rd3YdJj2f3GJq7Y7KdWq0QYhatKhBeg4fxjhg0yut2g6aM1mxjNPrE48z +# 6HWCNGu9gMK5ZudldRw4a45Z06Aoktof0CqOyTErvq0YjoE4Xpa0+87T/PVUXNqf +# 7Y+qSU7+9LtLQuMYR4w3cSPjuNusvLf9gBnch5RqM7kaDtYWDgLyB42EfsxeMqwK +# WwA+TVi0HrWRqfSx2olbE56hJcEkMjOSKz3sRuupFCX3UroyYf52L+2iVTrda8XW +# esPG62Mnn3T8AuLfzeJFuAbfOSERx7IFZO92UPoXE1uEjL5skl1yTZB3MubgOA4F +# 8KoRNhviFAEST+nG8c8uIsbZeb08SeYQMqjVEmkwggd6MIIFYqADAgECAgphDpDS +# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 +# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla +# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT +# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG +# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S +# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz +# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 +# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u +# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 +# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl +# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP +# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB +# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF +# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM +# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ +# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO +# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw +# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA +# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY +# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj +# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd +# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ +# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf +# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ +# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j +# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B +# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 +# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 +# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I +# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIZjzCCGYsCAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAlKLM6r4lfM52wAAAAACUjAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgLwxfLTEa +# f5cZ43nGFJSGxV1AZMu24c5Ln5TdSBDWTncwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQCH+MB7uS3RlpbV8q8Nvg9aa0UmWWYCFOT/3n7V09Q6 +# p3v/uFdZ8AXCe8zdAeWFwLOQg9974QcDbIbvXm1V96+Z7zEEimU/Zr1ou5Cv0knI +# riaKdejplgnDt1EnBE9JlSyVsV7aOYr4EueMCb1Xn1dfGabKcgVlJUlP0JyZPQfs +# YqsyxEznkgNE769m8ozUwCx33jJN1Llcs3FYEe5irzu8UthSkFQ8vpG3YABhlk6M +# 4jPeb38LKbkEE0jclq6sfdmT+JL8j7Z05KfgaD076LnpSaqkcu9+2RH3TARosqhq +# I/N3nhDQclKIl1kYSXFG1E4/6ea3rAa98adIaR0YNcpFoYIXGTCCFxUGCisGAQQB +# gjcDAwExghcFMIIXAQYJKoZIhvcNAQcCoIIW8jCCFu4CAQMxDzANBglghkgBZQME +# AgEFADCCAVkGCyqGSIb3DQEJEAEEoIIBSASCAUQwggFAAgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIDsI/xX4lqk74CTV97lUQ0iyAOiIu4ggTwVzbGvl +# +HKeAgZiMTFcH0UYEzIwMjIwMzMxMTAwMDA5LjQ1OVowBIACAfSggdikgdUwgdIx +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1p +# Y3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhh +# bGVzIFRTUyBFU046QTI0MC00QjgyLTEzMEUxJTAjBgNVBAMTHE1pY3Jvc29mdCBU +# aW1lLVN0YW1wIFNlcnZpY2WgghFoMIIHFDCCBPygAwIBAgITMwAAAY16VS54dJkq +# twABAAABjTANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0Eg +# MjAxMDAeFw0yMTEwMjgxOTI3NDVaFw0yMzAxMjYxOTI3NDVaMIHSMQswCQYDVQQG +# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG +# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQg +# SXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg +# RVNOOkEyNDAtNEI4Mi0xMzBFMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt +# cCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2jRILZg+ +# O6U7dLcuwBPMB+0tJUz0wHLqJ5f7KJXQsTzWToADUMYV4xVZnp9mPTWojUJ/l3O4 +# XqegLDNduFAObcitrLyY5HDsxAfUG1/2YilcSkSP6CcMqWfsSwULGX5zlsVKHJ7t +# vwg26y6eLklUdFMpiq294T4uJQdXd5O7mFy0vVkaGPGxNWLbZxKNzqKtFnWQ7jMt +# Z05XvafkIWZrNTFv8GGpAlHtRsZ1A8KDo6IDSGVNZZXbQs+fOwMOGp/Bzod8f1YI +# 8Gb2oN/mx2ccvdGr9la55QZeVsM7LfTaEPQxbgAcLgWDlIPcmTzcBksEzLOQsSpB +# zsqPaWI9ykVw5ofmrkFKMbpQT5EMki2suJoVM5xGgdZWnt/tz00xubPSKFi4B4IM +# FUB9mcANUq9cHaLsHbDJ+AUsVO0qnVjwzXPYJeR7C/B8X0Ul6UkIdplZmncQZSBK +# 3yZQy+oGsuJKXFAq3BlxT6kDuhYYvO7itLrPeY0knut1rKkxom+ui6vCdthCfnAi +# yknyRC2lknqzz8x1mDkQ5Q6Ox9p6/lduFupSJMtgsCPN9fIvrfppMDFIvRoULsHO +# dLJjrRli8co5M+vZmf20oTxYuXzM0tbRurEJycB5ZMbwznsFHymOkgyx8OeFnXV3 +# car45uejI1B1iqUDbeSNxnvczuOhcpzwackCAwEAAaOCATYwggEyMB0GA1UdDgQW +# BBR4zJFuh59GwpTuSju4STcflihmkzAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJl +# pxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAx +# MCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3Rh +# bXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoG +# CCsGAQUFBwMIMA0GCSqGSIb3DQEBCwUAA4ICAQA1r3Oz0lEq3VvpdFlh3YBxc4hn +# YkALyYPDa9FO4XgqwkBm8Lsb+lK3tbGGgpi6QJbK3iM3BK0ObBcwRaJVCxGLGtr6 +# Jz9hRumRyF8o4n2y3YiKv4olBxNjFShSGc9E29JmVjBmLgmfjRqPc/2rD25q4ow4 +# uA3rc9ekiaufgGhcSAdek/l+kASbzohOt/5z2+IlgT4e3auSUzt2GAKfKZB02ZDG +# WKKeCY3pELj1tuh6yfrOJPPInO4ZZLW3vgKavtL8e6FJZyJoDFMewJ59oEL+AK3e +# 2M2I4IFE9n6LVS8bS9UbMUMvrAlXN5ZM2I8GdHB9TbfI17Wm/9Uf4qu588PJN7vC +# Jj9s+KxZqXc5sGScLgqiPqIbbNTE+/AEZ/eTixc9YLgTyMqakZI59wGqjrONQSY7 +# u0VEDkEE6ikz+FSFRKKzpySb0WTgMvWxsLvbnN8ACmISPnBHYZoGssPAL7foGGKF +# LdABTQC2PX19WjrfyrshHdiqSlCspqIGBTxRaHtyPMro3B/26gPfCl3MC3rC3NGq +# 4xGnIHDZGSizUmGg8TkQAloVdU5dJ1v910gjxaxaUraGhP8IttE0RWnU5XRp/sGa +# NmDcMwbyHuSpaFsn3Q21OzitP4BnN5tprHangAC7joe4zmLnmRnAiUc9sRqQ2bms +# MAvUpsO8nlOFmiM1LzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUw +# DQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhv +# cml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +# ggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg +# 4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aO +# RmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41 +# JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5 +# LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL +# 64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9 +# QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj +# 0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqE +# UUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0 +# kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435 +# UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB +# 3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTE +# mr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwG +# A1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNV +# HSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNV +# HQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo +# 0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29m +# dC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5j +# cmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDAN +# BgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4 +# sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th54 +# 2DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRX +# ud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBew +# VIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0 +# DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+Cljd +# QDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFr +# DZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFh +# bHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7n +# tdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+ +# oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6Fw +# ZvKhggLXMIICQAIBATCCAQChgdikgdUwgdIxCzAJBgNVBAYTAlVTMRMwEQYDVQQI +# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv +# ZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046QTI0MC00Qjgy +# LTEzMEUxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB +# ATAHBgUrDgMCGgMVAIBzlZM9TRND4PgtpLWQZkSPYVcJoIGDMIGApH4wfDELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEFBQACBQDl73XWMCIY +# DzIwMjIwMzMxMDgzNTM0WhgPMjAyMjA0MDEwODM1MzRaMHcwPQYKKwYBBAGEWQoE +# ATEvMC0wCgIFAOXvddYCAQAwCgIBAAICF6kCAf8wBwIBAAICER8wCgIFAOXwx1YC +# AQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEK +# MAgCAQACAwGGoDANBgkqhkiG9w0BAQUFAAOBgQAY60kde7HWABLbM75dgVqLPwu2 +# UX3qQDaoStTqkS7953pYHKc6GEqRd/nLCCeYBqC+XJRMTMNbd4ZDkkCzsxlr5HFi +# GE6eT7+KvwqQf+djK59ZAts0no9RPZcdCJwQfvqU3RK91gp/Sg2bCMvAfTN4LRGp +# qQ4tYYP2GrJJNqVbkDGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwAhMzAAABjXpVLnh0mSq3AAEAAAGNMA0GCWCGSAFlAwQCAQUAoIIB +# SjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIOQz +# W64DlGXuO2zRgqB/n+gyoReL9ldfVdiKRVTSCDK+MIH6BgsqhkiG9w0BCRACLzGB +# 6jCB5zCB5DCBvQQgnpYRM/odXkDAnzf2udL569W8cfGTgwVuenQ8ttIYzX8wgZgw +# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD +# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAY16VS54dJkq +# twABAAABjTAiBCCgvCueU3dRfCsOKSpG5oksOx2/8SHFEjSLBygedl9oUzANBgkq +# hkiG9w0BAQsFAASCAgASDKu2OAv74hH075B2jN90FtXMtuST3zF61GC5OXm38b4j +# NSjLjbMslJJqeXiyODEQFNxmdE9AgPguQK13CeNnqsx2krlMfIC4o+M2pN7lqWCk +# gWfp5QemsmucuotA2dXLF98jGlQ1JShvFVOvUyxs0QKejf323B/mYdoUzvKurP1M +# k+FUjq/w3mgN9oj5oHoCIkdg1gDWNh80zEa0/YxEE7YYzg8bPLsGpK+f7B75Q51Y +# Sz7Gp/LGpQiG/LjytNQmsHwy/bl3FCr5/2WxBkAs8BneisPIfNLW0gfEo5Azkjo9 +# KEm5l8ILkJ3/4Qx9HiGjqwrdto8kGWAlGoIELtsO0BGT4onF4ynlKQgw82JK+4RD +# tWXCnPqjojkl+/4tfbeEdUoPvNgYpvS6ZRRYJIWg5s7XViroohZCCSkqt8aMjTZF +# HJBsKzmdHvVvAGELQ7TKaN3mOMUXb/o4vIK0TYrYN6FUn5iVnA7X2LIbJj0j3Mef +# BwEeOFhSjxz2Ob1oihNBoR1v5y+XfkbT7igIVQqwM27ujcOooOsDkpgizs0FajJV +# jeRsqEsXgfpaKCAq5czpOTutrvvwEn/cINrR3JW1TRSGt3VUvSWkmBs1T+7Oj6H6 +# ewWQaQIDYdEiDUL8OJhl+GzebujxPo//NXTY0MZCxK3DXhXi5okwsImzh5010w== +# SIG # End signature block diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Core.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Core.dll new file mode 100644 index 0000000000000000000000000000000000000000..67edb79248ca7d547b1b6ee3dbf01f67d38c3e83 GIT binary patch literal 259448 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

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

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

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

dvv=7}_Yb%=L|| zyk;-y8vMPLgnHrfhBiud3VUdrXDd#!P9%S=-Cq*baX+*9A*bK21QdrF&b&q4b= zrPyT;l}-ChCVAEVaWuelU+9+y z%gA&)Y(qV(Nlve|Fk31)UgGQAC}o&OXx$$SdA#4LzL;%IH9btU+S9BrT{72XCOd8Z zw`I#z8z=qi6leeI6kYyxiYxzhihln(MX+}M>P-6RlBssnQ*=f;o(08e#|?Uxu=i4U z{=(mLRiCXI>^|b`d6ZOLGD&$1<7FhZ(eMoS+*sOrVb5jDB(J*LpWOShu@}%1?VdJH zmsGa7%ATxv&t)s=|NdP$_BL(M-crQL%JE;?!=(IE+D!SfMX0y<`?}gwT76%^e@n}6 zdHt_C^WCU_N*in~*!}M1_$Mj5r-&2F)0>okU-F_YsZ~@?Db8+xk!TAm(lN<<6aP+8sz8mu&;-GGaXmwV!w%f6Q1Q>r=t)~ zBv#mWp$21bZU}rtb9w~(DkFg^(tX)PV+5Usoft)*WA8@Mou%>Up@c3&=oCT6A4c>f zQ2NdZe>)xL&e$(e#QPC5MilWLiXz@6VU#}p2CvLt#rb#b zrYS1;S$$~1K3~M>YupC>rxs+(Q7N0>)-RdGscm7p-;L9Bx2F)NM#xQP1!er~-|SRp z1w2#ur&5O8OlRD8EFo{tQg%)n zSa~y-GLyU@B}o2XLgwEk&+7vcfTF?Dyw*K^8~!D!YW+&I z+R!!d4$ATOqEk8ctnd2Js?|z{vXu52xV~xJ6{wd1!f}cZ|2A~j--gz#o~A*MRQ+0~ zha$I&)3`1;?+&^Q-(zUWlE1u%cv`!g5n7R2?2l&)B;FOL>OKQ*yt#YVMbW^xju1sr z6_3VvG~1zEe1}+{PS2&2J*wDib6^p%~48A7^q+H7cYgKMvoInA^ zWgq<`gvRNRT||77FiuzF?l1ebIIXOYcc|52WHy8u@=pDZHug4~=r?>-@(-}9ic}sg zwFU@hF^|~@Hrt~W4uyG`ru`iGR-~q=r_F+1a45vf+_!>%`M{kh#_5A^Vd>i6YUwww z@n!lBF?wEhd+Or0jm~Jd!Vb1!TnOU~^4MzoqQ1YS?GmTYXhUxI+@gCKL0<46nY9lZ zvk(!j2`zph69eVy0>z~=nA*18z=IJ-C<8<*H+`5;1%T+h)JQzD;^&}pbi04gldbXMiP4Sp~8gvNaC8ORy z#~fPxrJ=8omP6xI6w9J38?clE;OkhP`p(V6%y%|IJk_+Rp!PNK?gT+K;k_08xevas zC)_CX3gxzA{Lu0~RFiPJR>;fu?# zHEo4Iahr-!3>#!bw+?3%gXK&FQcbgtW$jOa6|)BaB{!3t+5fTc)H!DGYdl-}6lIIk zBPV9jv9PA#MRhk%XG>OcJyrc&Qe>J9PpzFr-%4GbgMP`9Ro>prhJ${r)sK=#(DdKv z_v>EhcOmrSJoa9{Oyy-w`MZp9THD-8UUj$CMA);;+%iFOkY_cSI=?xc^;f{3hPpdQ@s2E0M>xPTYGQgXh*2 zWJ&$h^IKYcQ`*n;S9rv>tD63^JdGFRO+%0Gi`tFT5RX{iAgyt%&~yfHhC``6-bSJH z5od4n7`_*IbS~jlM*X85XzkuD@pdm8H2vEW)j})i*z*DUv$jX_R720=ZiVh6<(*|* z$=2H2l8@hul5_1&LOk_)vw?IyI7i0X|CaC5dyy~uarK?-$6t^XJ8&yZcRBxCzORXt zpRtF+HH7!ZJM@2PO$+}&$YZJGVPgtz?7?2N%{!x9ivC*-t=J36m%_{MFDn z@tfRL`{{nQZFQP@H!lz4v_9{`BT1&a8an>&9#4Bzx%ND3{=AHS4-z$b8PQKtFN}T% z(s*vZCE?z^O;02;rwF0!Z8hzUSew>I+EgheOMYmH z+~QOTvn=hGTnCzO$rM@#mPed=qvz?ZSWb~?@3mx!;*>L3?;OWz9p*!tTQ7`T%|z28 z^njLWI$ONVB@dxNt4<%`HYN71aYBnaILXU9O%Tryv}~=q5p@8kEz=38B2C7+=VGAD zxrIC)$I~IIDd%yONai}|C26f*(xnWL&`H=&2rJ0p;40D}b@F^cZLv0eOHe-2t`_tsIF6UD!3N>pZ-g7of_l5Rs;JfN0vDqz zv2vgX89jyeC@rWrJkq{`vf(!>2%3fwtU%D_c4j$WqaWy~wgr35+P+Z5q4HG>J#?_4 z$1yT-E5xXOE9|I?JgdpDV!@gC3HEOF{wLdbS#+j-OL8*C&>BdK9)BBl^8}T&-8#Z$ zD(`66pS~ZR^F2)BO~%tOd<#8Jhkc@NPlvVpx(aCFP%THC%$m|`{1}nPmczB1D&-f* zI|HF=r{@Z?lBdRd&h^VU^}v4T`66%4O?XqappvERCS1@jq%{pRx2q+$DwxOi78LR= zDNk?P1bHSUP9_=e-Yrpo+537Ryi_7ZSRbWZQ}DoQ zP1lal_seJU#dxPbda{0NmFIst`{#L>&P8jW*0j$Ae--Mbq#dN^%jYaX7bs87vK((}Cfw6eCPD8$n#AfPy%al4%!K8WYgWOkF& zwS&rw=ls>)&3JNppJ~Xx+Y--d*3Y;n4zd*IGuwnu_PLbk6nt0*hCqtNeC%4WUnCdUES z8!Bm&v4^-e*kbpbBJ7A*Pf@S3AJVGr@~t`@XL3Z|)~;D}pdgkkU#F2gY6^EO?iJJ( zR8p4)K83~$`JQ%#-3M6>pRM)s1NJBxOQT1!wSKA239_e(TbT1G}evX7@ zsw>k#OW84ll%TUpu@rbxV7Iyt{aovcO7{O>i@X;%GMPl;frLZa$?Lh}@FVlcN-+hYpd@ zBQVw~dJ+AX5#(KJdAtnERt>)CZrmo1UUQ+TlKB*Vq)6U^Jpe^V4^mVd9eky0^OV)j zH^^;_r09nIdqp)IR~#`?4NmdsD31DFmYXhX*Y^?n>-gLJL%%-(N)e~mZav+U&#(9?F zH?%Lm)hwIX=Wsn|(;8^c<;|wbSO;l}?LLnuQCG^H<<@H1H1kp?IcFYLfm|=ybo)Tl zWdx9<2%!Pd4X6#3x7O#I?FXY%5-V1qtOtCGKi6!nQa_n1eJ_W<6m zlRbqs%_Mo6ldPj!C^<{kulw*MTlk`^Ax;n>ezXYu+HZEf$r;U?I-m?^KEsK}hS~K^vdfr_Z%&$(x zNn9tMOZ{{ZzN-L)`zn~p3>B^-JU{P>*QbwvRC|ugQ=zpl;=ORI1KsE6cv`!cOK5$p zfLL@?6s3NVxXxL5AIk3OJf_T^JHbJe+VxM2ocRdswMcz7_s0xUw9i;PwJ_Di zG)UEI<$8TjLY(SfVC(qN=sn-x$9;xp(mxC0@gtL8Q=QFrafbyK5&Rmz-!V?J(f5^G zdxE|zTk9Z`_9}0xdqb>h&r)LaBzn_e~ZW-aQ-M zJvQbbix=KW^xLP#eTliKO5vS%MdAHJtKA#rlF=`?4auQe@;J(yZh!j;$M#o6khP4~ zc#XYC(dQcM{-&jUw~^JxA;%h80xw^Pc(~8jCe=!G6=Sl~M*NV?BIpXY%l#dV7vly+72SxIpyw9^zwtv<%)P2bmd#>lXX(cMzSO0xqV0l`i zz3mGj#ozaZSJN~NCj;-{v`WvdSo^*8qUrKV*6tfp4z{bmZ%dW(2F{*>25gDxH6B_f zJ>O6c)?m5h%RVe}DV$dNF6wmsLZ8vJL93DQ*(J|i)R+8yJ*yNuzf?{4CPm1X zYd2Gh;FUQKmHd&^!F!kktH&(aFZKL9gmV39T0Rs0+}C8LlXOj6^4vwsX7YjtI$PQ- zx|Gx)Skt#Yw@mH(qoig1eisyG(p8?&`Mu`GJug9JU(q>If(A^}xAUgAs_xDNDJ(fQ zm1}LCpJ`RcxF1ec;|NWck|SI=Uo|OlimjvhnO+Ei99N3Hwc4 z4%|+_I)&4wp8xXK$b(jyRujR74)Qj{=b@S}_d&ene-)l?KpqLIu~z3u>Gh&gxMld= z!rJp{idHj6=xLvph~;HY`|4}B`zoi`T&H!BR#WKN>_oqwDQQibZ^^U`BrV(X;a*Cn zlBKw}Z_w^EXH9|S8Ua)WLOH_c< zR~Pici`u2ma~QA_yy>wO+twl}NjJs$1d{Sm6S z1O^J~hTBxP3R-eBZe0n=L#<60^a^%$HI$#dc}ck2tK*p@pg5W2I5i%o-YibX;tko0 zBs6f(ISs-M4b|lxk@pw!T_q_>dM>@K#8#p=i`OJER z(Tg>3R}?6951GF=(Fj~J;;&37;;&37nv0!nMZAa1C{C{~#2f3nI30Ste%&WdKj3ak4{-Q8JbVs+ zsa@ML)111&L!6c^ER&Qz8Km&J!Jc&)lBP@WiMIaOvo4`TdzSL%ar)h$y^%6j<+!%|r+C&{{}j*KBg9kxHwF6X+b{UZ zmx}Zt{3LtAiu5-8q`oVs|NcbNB;E%IeE}%_6!|Hfx@)^-;fxS_KDeWF7dXx1O-akA z!^<I+X4cKf`&bYVe8VVdHOlywHy}`goZ< zb%?iVFXL_9%XmNRWxQYhHeT>jyL`OAA1mn5z3bDZ_cGqTdl|1niFoa6VNa5VS3W6* z9TFg%>g~pK5$4Xyrz6hibvVwIyT!Rfn8h?1Pwy8<4viCp-*B36E1nI&TDlai5oQo= z!1|yX;*_R_m^Bg&qTg|T&AIPGj|g)ob!mVv{UHtxj^($w^f#Ae(bT%Q`QVvVbMbZw zFy%bc^A$Y*kALNjDSta|GPXhPf!U6yIFi>T;Q0SFmE~(^;|%g zIOaYujfJ_=F=y0MIS0`7j=2~N%Q=9CI_3bZ&{l z^oV0_19OZpvt6pzn~AzWa%FnSF=vC}dag`wI;M|{Q-wZo%&jg?6|qmWMVXH;h|!6V zd?0=A;_L)-nlOJl=J@mAH^Ee;{a{6$ssos$Fja&Z>f5~ zRMqK7$J`F4hcL%0Lt8G!JH)}%ptdPYe=s#^Rtj@RTYT%1UQA(zB2FF3smB_Q6FH+0 zrykWxVID2Tw~G!-Va6cULDVvZxf{&EbXp2C9!vx3kitv?a|rcFVIBr^DBY04^g-?o z<-IG|Kcx=`#ArI=97gw~#CZbD;WRac8H7}gXr3^4ODUc~oW`_4m^*3h*?3Dnn5LAd zA4)nLsajA=VKmiZ#A!(v3Ueo2wvp%^Fvrm|Da?LH5w)V_DRMqQoD*nW3bPhWYx*XI zxeE}P5qk+>&Y{Orm|9@YrDs!^ zgTS0e>r%o$+1QmYi^Trl0Jn=p4$=bI4@<}zC7 z;xvPXSAe;KR-`c3g1M5`q%i%!TumEOm|MVHOW!!AX&rn)2+Vc#QwnoCnBMezN~-(8 z+<JdV8As((m>OWl(~*w(2yqSub3e68VH$yXfKE?gjs!EAI;1eIz)Ycs zgbA~PM>%W!7MC9X0_+`e0y7xQxnO2!6vX)%?>xGqG~QlAKZ%^hWq%y5o_{v|;+V=U zbu^z%JB10}cs7;7Y?$aPvb<({$;_Mv$xl)j7sqmc#>Zji0>pWN-f(eDpI7JuVM1Q> z=o4Xvm-*I>r}K#40mS3QC2sVbN8c(V;{}h5^JqWpE!wQ$VwC+=s+z*^tYALX*^N0g zh2c?VJ~d5YIMwTPObWwsUZ*xG%ylT&0y-;&=?`Whbrj}qDr|!H=|P{xbcMz#6T3uf zekt{KOa(AJ<}RfH7UyD(vy6s1W`8goXBmxA#*dY6(bU}-M8t1#X`3IuMKdK%sOJ^* zjFY?&_TC#BuArA4vkpvuVHP^3?)m7EVBVqk9CI9);lh08m|f@)W5B#iTOCtw96Y%& zzbWH&evh)STV(CUdA&!uDGb;1`*dImGZArC${7#dbxPTIN`PmTt7xRe8A799iqS)e zvx=G&vgEsI=;$nZ0?dch$}uB*;_Xvl)=&ZVEjZ5UKNBqivzF!x6Z+RD^u92|%h&r?lNMHn01Pes_$`>pr8>O<14dWo%xzp2|DM=5_0- zqGRspsBN)<>NsW^7;cLVur`%*KU!xwn2mItW1a=`zA$YaGu_SEKBtb3dEL#~KBpdz z`3tGmAk`Oiy<-kUoKJ-r?3e@2(|O&Obh~2?0mJjUFKLovY@YcQJ?<3LU;T!fImYJ3TdB2UY;L@j+AHI2{#)vh!mvKyQV(Gk z#~NQw^d(BMjUtUh!>`9pRxsbu+rkW?mNzT&JymMPIxmj(??v<*;`~5|JEnSHJeQ3f z*&pdtVTMqnfy(?uce^;RUV$gx5obF+?wATU5j6nwGrjJZ)z{)y1ejlFjblzisx!g- zN?$tWvCD`$f!RU7JLb7-@a#L7om9}AH5@|64A64@MqM0pqGNW^NMQz1Rmc2JD}@pY(??i_1Q- z7+*PtE~;2**tCfH?w~SgfUE z=7G6en51K>pjS=+lNGzjF^$1Y7Uo9B=9uW$7=nBIS-h9WBrcTRR52x`wpz4=>7)2?cUwHdnp1^BtWRrMd^srixep$O-hg| zMd>2_k`Ry{fq?WXU63XSB0>lVh^Rr4B0WZlfOM4de$ULAWZ&Q8U-844**A{Y2_(Bd%_prPIrPqr zD4$rZTvZx@Kx&2VMm{0IlIR<|g(5tb0njw9JM6|OwWAqFb&_59p z@2JtR0{Q|LH5yhxU%{fDxB~imDH-)e0e!1as7xrJ@9_z>JPYcFd_pbHX#EGD48c(p z(QgTnZPBri7xjOAG8s}z&)$@dRL0DOl+{}b$sDV!ptqNjaabNTC z1OF$V5k8^gs-Q=FLdW&8KGi35Tov`XKB42PtnU;e_jv`RhQ8k?8zD9I(>~b^sio&_ zMn{?)ih6)nIi#N6lBEPoeSIR!+&gGBA*O*oon-^$w2<{IX(_sP0n$+4%A%b@+egR` zEYs65(+JW?rxht^>x&_`gg zv8(oKD?J~JYOl7^E3=%y)@xwvt@YPfQX#d3bYL0K71tc{mfnqJ3Z$u!F)Tgm;foEB zHu`*)Pwrx*N60dkHIU9iwzBMqGqfI%xAm`BzJ>G^a*$%K2NDtTm_@Z@+UrGH$n&FGGVS#WEUG2bL2t{VS~4B<9xSRQ(@`J9qFOQ? z^>Hjg+&`1B^>_4XECnIcge+jGhc?nDkWTsH+w zZ75Z|_F@(Mk{8lbZ|al%kluQGAqUOIqjinsJ^e3^DUIJY9)a}J@A~8iNPpdYTjoqL zry=j_`F(N;@_}Ab$U$=@awZw1?-CNxrX9z3G$2Ft7&}qoX@nt zxH2T7Pw`1jNUT2BCk-L-`f8uFgnX=T5fagcBj@&zsd|c#gJuHuhw_=GAA5(k6{~&A zwWOMU`W7^dT&&{F$qdXHn(PTzv+MD(e#Ug)FM9OVrn~sIqRJzLQ0jb@TKj7Ak+n z;3($n$61CzCJ8ykqRQ}3^~)@(4F6QW#iHtz1^N>fRi`Y_z0TsAI;uQesOM!-<>5lT z1dFP77U|_#RK2rEugaq8oyB^67FF*o)?2fv@_C8gl|_}$OY{LOs-#`24`Wd!?NWU# zi>gnT>G3S8K3%5IWKs3|a(xwxs^6FEXIW;P#GQh(xwS*=I2s2b!my$Oq|K|a&lv#3&Z zjZVL7r|}I{imuT=Vo@dJT0M?Mm5^)oqb#Z>TBrZYqH3ab`ZX3+6Rp>8vwX`n5ef>- zSD>w{nrMSwf<@It8}v#nswUc~cVtmD(MG)wi>hTd>BCr5Ewf3FWl^=&=lU!bRaiq>>$_Q0Ewe>G%A#tSE&9(ass{N&zsRC$kT3KbLNZ4bx9WiyaW*nq z_*?b7LXtH#{M^!e8}f_3mL)&( zp`6d?`&fSJC*`c3!m@UdlyiC-OB!;fROj_dy=Bf{;XJ>IoPXCRvz!ai^SaRn*oRDBLh)p7Ft{GnfDsfkn+lctwNH02Y87?MBr5iIL* zb?BP@r6;k>=cBl;XUEy3RP}jV>3S!YL$($dM;YVsG}YwBv$*7 z$02X)y*WmWL*CKHb4>mZh zI7W?CKGf%MOcvZNGGcN4ZK?6h$9g9rv07bhi$*w~ z=xaDejc`8I_jAk|Tmc&Me5QLiFLXB4n5SkG6B4U!!yQGVpt|va5ZPjU4`c?_SCcCka zr3}i3wHS%YZqO4#G5H}&k?J`k1@{CA#jJ+pG#U(%vIaSCfIM&XU|GzP$Ji(&SySVF z`3$;`={&1(zkJ3n7Bym)&q!ub<9_*!6c#n^m(Qq;`;Yc#SADEwimm4}TH^jAIl}US zahGNMHnh4Cli$dNdyBTNM){(QXgtG|Y7$CQI`dIR49oonGUq7c;&>TT_&X^Dj7|}f zWKE6W6*T&?sIkF<#t0TQ>R8a2EF_}ckI0d(g2pYDdDG<93mRP~$Zeg%ICc#FENIMP z*@w3$x{$pr`+t>V-35*P6J@HeAW!pZS|Ouayp%bRZ*c5IjQ%Wj?_kd%#f?iWf8W-` zD0&IwF3Sz1qHUEhYEP2+oPr!fsuD)s$x^O#moX)cPArAqz}BbmM{d2eQF6LWH56Al27i_{(q>8- zgDp_1vW7KF%Awuz*(qxjV_ADe#*{Nwu{`6Md*zHupU70}ah1ZH(QJ{7IfOG$$Nsu8j76WIWIoH#Ir7+F zH}pE=TEsFBG=M%Ja2bFy|FWggW#jf@wC z#A<)CG&WurlBC6Q{r-m0j$9JEG><8LXtJghxVtHF;Ga7))%D?No!-8kXWq`%Uec@kcfyWh^@CVDlFIVUqq{d zGPo3^ozcf9RUjRWgF=$DlBm@w=g!7CA+cHsmM%uRkYp|ESd7mjRae7aK{>~2VU})2 zZXwCqZfuM4>2AElF<-LuFlq~lX!|}weTsZ~8nal=qShkmVcJ*1yea;4lB#q@%F zU^Ml~K*%7Yy^x4D1=njNWQZ|MNV1lIx|{ZSxUrT~&14y2IIAdUyx)P)*%)bb7a~(p zK4XmWLSjV>$#~-|$27;W(~-s+cR8jhOPo=5wcKZtiAXik7$+oI`wcY-rJ7{S=a^qv zCL1SxLa9DBihf4x=`wd`LDJ zKl@@1Ak`-0hA)O>vyp9`JR7vFlaMcrvO;j(S+*JDd@<(`v%^^6iy`^a*yD>yhwL^^ z`(jA;7-iOHZtEfBYonnMxh;}!jNZN&=X3O}j0wINl7q%4zL;E)L&hdw49Q{RgfFHT z@Mo8#4E&I^={=!zYa(Cylm3V#T#+1^LMs;*047Ic0q2lfIB&jU-M* z=aA$#BhSXnZ4HNz$ddHmy9XCR3ul7jlLKvC9WBVeX;~G ze;Aj2sYw1bXjMci$LMTqgj_eGgvh&Y7vyhapid4!ZW_~kavbuHv4-=ZBPF?GeCLZf z1G#5h^T}1n0}ScPty3zJM@A7La_jU|{%6$o#gIHPCJRBSg;Z2(Ju|NOQr$*AhN*4N z%$dY8-x4BoehLYi@B3m%9CM~GChKOr-8MJ)BrhavCi_y6WHr-#F;p67H_a`yb-Aq) zh{<6V6e6!ONiMUNFQyVCx7nX#F5u}V$!o6iNo~jr<}+Wa7LWpF{x34O)d5n-tRh5i zi=?pGo@36TuB3BV)Evq&XIP4xhdCyS%kUS?ODsQd{a(`ik7YKO*rm+px5}+MAIO|b zn-zq_YC)E=W*;FDA#}aUn@Jq=8`|N$v4=04<+o8j5hokueMm*Kg^+kh_4O*6?O0S_ zucG+@OU}>aY>i6hhb%=Q0pwW8oXMi*w^TOgv8eeimCZdY6%WffFjdThEOj9?2d0X7 zj-|9CTgz3=t1Q(Zxv{OP<}E2=6l*AsqMF%$I~`ZD*08T^A67SevZyv&b#sW2h}JJ% z#cbl3l#a6XUfoP$ses?q>&UUXd6wlx6LYPFWZyyCO4928j%%?F?Ot=VkYufGHaTN&7dr+LmN(-70le13Q4{^Z7=&CPN?nTwb= z&DVUg0Mf#2?i0E*Tbez6LT{*BnZtb29@5&J=#%Q$=eNv7KH2GD?IN?}SF}G7ErR~( zrutZc)0`|sp0O54)z-Y~lcm_7c4m(~nW?rTReSTa5Si*T#B?w#?4=kfn;;#{h);I6 z!}nOtwJi0~v!g56$vnq0<%;}WQfKoYArXzr4SEW?nAyLkoFm%2hPp=AtBcvvC)=^D zuI3_^&v0B{LAsfk0-ceH?u71UO`q&XOb>H13#Cei^fJ#0iFX=Z(Y51{K4z|OD4%%e zU6%LEH-scRYK~c7vn`97QP$V&&Z6dl^fd>vs4}XrIY!7KN0m{1&2b!~=Ck!Pr?IHn zYyHemg~%CYKVuL3nV+-JjIuM3{^mI;&TEdLT@;eek~2d#9-!ljXrDhsi$KKWIwHutfpaiqcKk1T2&X|Q>fMU7$& zHXpF45wpRjdx*B4tf^78!Day#HD)!~tiYm1=LVbYg+#RN^W?oc*qrvAJc{viFk&Q* z;@mMQMKHEQM>@oue_YDfGo=hQJA5z2LwQIs!_2`fYcao$WVktvB_5-fBp;ebPRLZ( z&Po|!UOXw~!$xv{J~FreC?y7SU?|l`=9r&J610CXOXpN^^d!xxEU)cH>)yf|SLQMy zxW}@|oX42OQe-~$rek&z@)>I`V>ySTs16x#ZejThM@kYg_p>}Jh9?&?!PHJsK9}_R zdu0t9XBLwZdJm&URLjJfjag2hy(XoY9PJb8<1a853W?PQ_LJ?p#pbshqk8>I&5ImUWDM#G?BO!= z)iZK`R6BE}*+EFGwttj7uGMCDj!`Yf&&&vm>f^69m$Im_g7xNJA@SOh!6>bWM1$IjXrHL(|s};F2%RXt&_6hZ=e=@)D3H6{;%pZJ0{pDZGzkNde<`;YcYMYy~F(J>QFFtWT()d)Zv>6YA$)HNWu*^=ebi^FEyg!-qq%>Gip|MpHL6cup&O8{-9+o z^$GR?A) ztnyl2uFGwy*&2DRUMy<1MqX!0}W)!p<2+8~nLLqCQkl2j5=!LAALNb4qP{=yTqJEVSZPopo_9vpLUnNB23ekVb z0oBiqwpxgo%z5U~R#z6)tBtnaW2uBz0iFRZ+8WHF`nl28XqFSW>txJC7S;2Owq~;Y z%x|CyTk}~|&$qC(+$Yo@EMl!^q5d-ET+G@fBwnKy8ntPQSqFTw6L(#4>zq$$&i{*6 z_FHu9G8Of^OIcAu4w{tDKBOvb?H3Z!)($`!4=HcmVmZa~k`?_AE7o0>D|o&rRYfc2w#+$Sb&N_Prjm7pm90uFs@Gq|s=}iB_*JZGEUJ%R#i}VJR;!3@(b=eCh3`_%$-3&% zSG97ps2+V)E1E_1=&M>KS*pGv$1bW_wODAZfO?44tv7rUfYh*B`-FP*uUhZ;gnEcI ztsXw19{p?90H08g{&j1(PpJQ1%NpksD#vPDANz!Q>vgP8e6j#i*IMWk>aEwaR{Ml{ z>-DYAeL}tU2G*B8q278!YrjvZx8BG)>J#dTH?~rILjCSHtlxb?{q81KnosC=QcW%U z9u5XqhtBGG+#AiT5k}H^XlbqR$wQ=SWqs=t9lyP4 zZC&(<3wg_W=98R|Hdev=nR^%odE0u;C&eLctxi5E4{2wO@=0|_duxGD>O(qMyM59E z($PBYla7#gtOq`!F_2D{_aJkBXzZf1Roo{%@Q+=rw^-C@Mpx?{7B!j?WAzY{`D>kS z)(|0?zt-tyO%pO(jF0ui{=92l{g1Yupf$(!8VKoWReda_<5rAxLHbzjg~Vxv@N`od z)z>QdgktckLoP}BTQ9S`nN2=T1FVKD1u&{cWy1SbW0r#-VfHL?e&6cCG7ej(r+c6^ zfMo(&5cE_IvL>{Y3##r_pB#itvHGx#9ja+3Ak(c8LK3w^^x95CW>`~watSiiTEa4Y zmW-KY9r6jqBv|PzEzm-{3Hihdh;x~!kvxXXwF>$qglj+Fs=-2YCi6iSTWwiJFEzBX zkQG)pA(?Hql~$Y(d46crdZo2dNJMLevV0gyq*c~K8Kd=QSz}Gp>DorLckuhcipY7r zb&;j%JC$R*@U z>oLcuzWE-jy(x0exbAzczCQUfm!|Et#`@$t$UbX}6m1!Px$quJ^#fK1OYUKw30Mg# zJL*5H4@=7nnigFiC8PDBkVI`RW|Vcs{v5F;v+PA#)erKWb(Q5%ag2XJj#)JWlyjoi z%P_P!$Z@N`Pi8<)SdUoV!dg`eAU|4mP^KbT3;EfKW_hm>>XYa2)oN=ROIO5vjhNr8 zb1V;9qJD>*vnts#pVSJ5b{+D&HIU{0AGm)Ym#noc_bT8`7v^2{oWSv&-8j37$S--H1O_uGJf2;>AbfhB@^N&@? zrTt0P&+Ng-6aKty)t3^gGfcj%xNG%fDZN7WQ|?;voT^!K`o)H(-L;Zf7He2P3Ubf7 zCFGLc3ep7IxM$_^Xj_-`SFwjJg;Zdfhy8gQa^Gsq@)NEO#XPXau+(pbZ&O1aT1!|) z;1`!2A&;z+QbNHuWiRPJ>mQCe+)TbJ`Ok8~V(XzUlkpoDq_f4X2v4<3t~MmfMw$dLtGs_FjGi^Ry+#tpV8jX1N&I&p{>3lx273^TS8Jp z>YADXBMa?Myps*%w6xxr8E{$hLMq|k%s@_-B7ft30pbE%!N;sgQ7>Kk7(&mTkyVNR~kR>{7Cg!gC7A7DyA4poJk@AvprYo}-uq zZQ~g90wB2q=W@zaXF1gifs(mo%qyr5k0Yi)V7ZV)?HX>mKwgwVfsHIhv2{B0MFQEM zm-*~Q%qgTQ8o0%B7;*{nV&Hgg8FLEqH>6CUTYf1E7i(Gz+=wp)2D1F|F21>rn3n_R zgk;tZl>_w)i#^P%*4(QcC|!gkUb{(qxE;SX4fGKb(ek~Fk)F1iRxOaPD8)pyx6mpe zsUE1n@(@Rp1*vKT1{RYsSM$hJuLee=^rTd`x*A$e#MBHpB{+uV^*~3K1tqNTPPLv!O*Jrf%SCmIU;TNwgXIrqj@J_6|*n8UIbsc3)R z4>-6d=p5c_i}isag97zg4j_j1aCl%5OTKo7MmdiN9A|lq>-8ICbf6QqLFcd;-e_Ed zj0$vsG1VAm@$rYQc!+ky62U~xsc_3si4?Rm)bz+NG z={q=z4S_Tks!#hsHU{F*x2LVE`tASfW-X7>6CG-;4r#k{8S+2G)=tK6}j=*jqsbZh0AGafLi(@VokTE+0FTEynR`u!5 zKyN7_RiEw(jAc>v>8`*sA*msCN9_tE3rW@oK5uB{3u)S}!1pXySKC=XIMh1nl=NnKX8fVF}`rH5Rw$Q%2N1fe>sp_NUW&etJfxZSx7{ije418abF9xl=*1mk@E<27~>&ckYxH|hGj{>`dBsiCf z;Hxz_ivI%NNYTqSC3XLh}WbNzm z_!R{tPjHbC%rtlh?~WmPgK^Dd%nyd4)r8~^rVEK^-yxDFc^48LtcmBGwnZ`hAw`16g+#Q`h#3Vb8jNZoW3r(?I1y4jI9bSSZ7yQwKuQGD zd@)NPC4+5RQmWaS(@E1dK}rRe3(360%LLa6$!wF93GNV*D9+)RNL40y#Fy$Iq-^l2 zkYsHJ?(imYSVS>cuoZ1f=6n<}F9mA~N!IotrY&MB1V;%;(%Otdy%de#^#wQkQc?O! z!7qhm?oXxQL0`;|$hlH5O~z zusKq_72N)gj8S)8yI@QwDe4|;AH3@mx}!P-2X>Y*>i+2%tl1?~=x%u@n7u1WL~FeS ztCnJ0or1p!$-G;-1}_Q8ygFTjfBRzkB30L*8AJKRYyY5(daanIbqnSZlIRr1*iM%Y zxbK4ng(NuDAj6UB-CzlhNn3#NGf4MfIgYstnIxn#$9$9zznX{i2-f77sSt|k5v~=^1>BW2zpPF};EvIi?kaVtNJN<(QIqx@lXzgYR)nBM8Ox4i4g& zBT*Rlg7m@4?{w@5&R>v4LdJ8G+Ic8gH8PhkI$T7zt6w^1j zgk$D}_I8AOnLZ zg`gjogjyOhIQWF+&VGy!L52h?b*Fq1wbUo5OCiI8YlLLp3B!WhI3_=8{L3Qd5=&>u zb;yUoU=Nwkzi2g4%*bFVmLM8PB%_1PSY};BO$8Yn{E&rKFMkRdAB+=%k`1l*z%II0c73Gx{7U2u_*M9sqg<-(c$F}Q!Aj5&##wlE|mSY;5&Z0+)FtUL|* zHCUJB`aCJ8gUwl%&yn(5u&WeN=QhIiIuq<8B(tnL6HH=JHSF17^kCXnvZhM5bHNEL zs$@GK+~5-`*?teEu&9#lLhy-CsARhsEHQ*~&Me0+1q{gW2v?kPXJ>63x zG+Lcow^y;03Zdro8KQ_Z!I!I;O+J}_$Y;9;2j8H*>c8rjC(IVOmvF+n5bd~o( z9GlJ|?v{YMe?l3e>QgsE)E(tzh`OV~|DVtul_f*e9hLR}6S||a**QkgK4;EP$Zo$N zB;LtWSdJ)Ww~MfpfY69ycDoEq<=g1T;3%H6E3(vv{3@g-%cqdbkQ{b>mQ|2+AVyCefHb$NxMeSUp#kRB;EVNl5CG0jV$MD3_U02dR zFC zhsMcc&xh0`uiG_+Bx*wn%B|P2kFea%V`!5RQ`c^Tx}S0$RzTP0KpNP`S?X>!v_+7H z_I;nwwP<8#kH}Qtp=Y)d(%9b4au%`y(!?$~LB{NaY=<~=ckKG{ zQYu+^3$q6`vAs-4g4P#3-!P=B{g7kU;*32HiLpPNBvTzl%PJc3uDwi1f>s|=0n)>^ zCd-%wISs82q_@3^X$?R>-xx9|F7DrAIRXPVf$M&oR>PQ_@ukC2GA7~J6sN(jxDI$P6S03|p>e-Aa9k1l3d?M~W2Kl0_H~vgxH@#~6YM)IK|MV!!P+LK3y9 z9J9gho*?rnR|#{haK<*;{a9XO*<=r4q4Q%SpU>?nEOdTIw%9a}pY~_`bkviOt@g{f zk5$WxMs9c5^@SvB*YN&}uHcvUB9<{Ijp;q(m-ay+sXECH+?l)VXTE$^}o<1wc{7@YYS|Bk6oLkbYZ-Yg6y>$v$TBG5asjNc1xBLIP+9u@3Y&p ztj;IP@NeuGmi(Vf*>Cq@shVGwqTkvBS^A>KS_0cTV2@zwjcYX1~2oUkjf)WWe-z4N2Jk!1(U;5vx;+1|xMCGDG4(0{NG3CXOxf3eRCk?rS3NcD?- z$0yApr)_I)=AA%)owdV4lC)2<(VPpCT>mHLoLx;wvevncp|wFi=j_u$4jPsJ#XDBW zdHaHp%>6lU-xDIoQo4zl$3o(r5-a69=<~LjDE7yBzA(l-MU2N%5i&qXE|#WfBgJ5! zf48Gp20>7nLyEKfcuBs4zF?PQ`3FKV7wjr54QtA+U$kFm=>?&fi*_TH=XhI}>=rEL zd0Ut4_AH-s%w;=<1^m)j6D9*+;J8eG2Mzk|W(4U5++GRf_LCo7|IY9ofyDlV2&|Z9mvJjGHj~0U2 zHAPU;LjJN(bIi0C3~d?Yx_x!A%sD&STI(Ty+l!V+`9sG$XvhsaYN?dP5Q@2F*A|kb z->QY#BanaWjU00Yt&|gxJN7w_8F3xGOvrtE=yJ*@NpJg)Tto7qJz5C%@F|W7F^}wN zECX=Y-GcmU_g^8mKEgxG0rH=Hn&l%Lm-aP&&27^+0O{C^te4NA>6F9SCW*p$3q8x0 z6T_0Vmy8KGbA;f10rIJce1gt7AxU}@lmN9Lwo_>h<&&ge#(8c8aU5%{l$WrFEg&H$ znx!UU+Cf~WCd)qjDyl2Qb7-C<}3B4Vij^|E8_kTEAQVs-=dU?nG7Nakop6{qC?NMj)pZTMV6 z`x`k|ar*3}d?I-BgeL$})v5HQ6q=1fG1Z;ALXx$gqEP}=MIX#*#j?P~*ApN$ojyV` z&qgh0sF2jqTQ|@G*@snwoY6w?tsjUZWTKFWwxk$(&yd>Ac9}}Qdj-FlfYfnD?4te2 zJg)lAc%KwSOnqmOkW`)er}Rd(fs-A*T{?%xc67SIJomJ6HY3>|giN`mvh9joAbChNIVL3Ofx$_f?n&;WvIm6Nm zJ44%Q?oclt$K?!$(6*X8*ICAOlsUiY++lem-q0#xpWk%;lOoFS8bY4K{h-bdosE`G zSs|Hcqm{FaMV*be(5j~Yk^|Hys*6-@{y%9Bc{@W??a(em)VJ?=sU=mnnEH@Q3zeZ{!RmqIsI6Uw+wLl3BmUe zpC}o^(jP+OEd!ib78gP}zwc0=i|&mQ5X$*|XO56q=hZPX<^yNDj1hMNjU#>FZ25*# z#cEZs&mD0E2Rf7YOF4{Exf^7Vqkl^h(UMl2Dqoa#biowX?Wdn0DBQ-@_YgzCY; z&M20n95cj;6@usD7LEX^hB#AM8bAgMnZrU~(xLBY40RT<(3f;*M*UD{HOtv|(91-s zVa_HN`fASvAv;;Y=%%iMi#pPAr=KR4@87)1U^}5ZuDJ0e@jkYM23EP|pEHxlhCTw#sjRxl+)=?$o zcE@2+rQdd^ypYV&Z@W{4MU{Tromwoa^xNSyVo{~v4yUD%%+hbCGf>84lzuy%(?{eP zqtdTCj`T|><~u2$tj1RuAiJD1LgJk%+41g1$Yqw-@5(c_%lV6?9fZ!Lx*wog+Ru207w9WjT$J7#d4C>e$CA=T!Zat&)AuPwRtq|l_XEY1V&BzKl?MxIB?JKeIc=ckkc&mrNxqv-<^vr^rgjD zg#5{(?#v6$KP-pQ&!v0yf|KKWakpf&B`!EGu&Af$f>TsTtfQX6i%uDqf6ykOW54KB z;#8Y)_tLr;mzU&VL1Syr{Ie7F^j>^ z*HtHhC7PeFtIi@Ju}&QNgE2^T&6#{6^SPjWt~u+3#A;r9*)~pfPD^prJp5GWB8!@b zpX#LlpM3sss-ZuLCpY8mf0|SOBuT8ZoXfg2ry0vmF6+{qw}r$zy|bdPY+#CRRb8%NU)*Wz#IE0%na&O#2d#NizDfZTA7u`Gb}6_UcTq=dYJH=T1Vn<2E%H=Tc3 zRBe9CF@BWyp{mVqIUdWpTe8Og$H~d^HH2#Xf1D_mmh)tNdfO?+(g{NK>20SR%N~sK z#X#;jm06BJDCUmyI?K0DWXxTsA@_-WF(MBGpr;Da%R73L$M+u5!#XrxVM+ z9P`ZS$+BgdCi2lj16U41C?72}oaGk?^_2C{Se8E_^uAjUO%js%e#Z#STv_sE)LQk9>dg*8Smn7}CDQIUQl@qEaBwmZg*w3xD&MBAm2jV z&`co_jpo=Nfq0>f95Y}G#=am~Li#C6CFducg=7o8C?wXoiqY@OknExMGDh2r`!HR| z=RzV{e~dyrgyaaNaZE=D<(NBUq5MM5+E|QcSm=x84r#xNJrqYu+lmT>rD*i!qy6hK zUKjfGG{s;ZBi?P%IDetgE+O$6eZwdx@`(;@|4qh}y^j=-qM?&4+HCxvkfCQ}OfCE( z<0VM(P}Er|eMe&+D5OMa)j5&`t;qzm^dRLzcZI}iUu{QA4^ko2?7U31^&h+ehP)g) z$+83W4&_rhH2#u|IgyAp!yq+7i>^r7k5(o1f*XY9Uz74_04+Vpo1tcZa4L+`egkHGys z8_4X?X_l@y8x%7yH0zO!DUZ?SPa%s!{r@A0)!xH%LA}Lgp(G&@tt)zDJ0Yt=C7;Sv z<6lE-8L~FCEPx6d`+N(v!)eH-P@ABXWtbIw74k)B3s#OpJ6yYik+**#J3{kAGKRic zp9OuoJ)yL)l&2`is7JX!6hln`bLCvLrUe)q`9Jonx6_A7>qMEi?^t7bu^1(WBo0xgNU8 zauRpcH;|j5(Ya*IZj?VKA$LQ^SxO?+S;&J>``j|-7o?)^e?1AMu+V7XO~gD4mBs86 zddu+byGQ}i-GM@|dQ~@E$t1izao4ik?uk+jV!PqIGUwlM*O9pHK$hYdmCX&w;&#GY z0Xm8tg$%7UB&VB>u}+ew9~t6EUvNi6N$G*7st#hJ-Bm0$j;kr8h?^b1oS{^MA#X#9 zyVF_J)AXV{*C$;NQ_5ZJlRl6#?pl_!xDN+I%DHQC|548KaL-SKRCIGiOIbb(zmkAd zcjJ8W1*DccA0;)Vq7`P6APwB1c$Yv@7f;G*NK-edsFVSCE^a_txwA0#K{4r=8A3h8 zcJ4)%_fWQ2hfw~w#a@&#*YM=#fpm6rp-iDvd!EDoLb|)}mX<0cBMSUY|h?~lyzVkTLy~9FnE&96pP!}JMz_BMg>g#Mn-K;F? z3uVLH{4DAVWy9Q3EWJA6jG>Mj?p9$L51}t(4tMLbP}^@jw)LUgiiO&K^tJa7-L5R^ zt8*jV{w&mHqp!4&a7VIG+ppegtbgcEVxhL*8$#x?sISG1bXTx6?~Gaz`!mwr!lJ$w zH_H8*h1z~?koK^+-UbSi~3sJXg8HbeJyT`dxu4REpCjfmy>6;R~I~y*!oyE zD~tMC+*mh?MSU%9oLh<|73Z)PQjK$~vZybwjd$y_s4uULcU!Zluc}4dt}N=SY7ut; zi&|f6f;*B$t*`EZY0BS3A`m#iG8d zHqD*PqQ0s&%}o>%E9$T2C^x3Nn}o<(?=2xe`=ldehWkj!K|_7fa;978B{~}i4fXZR z1h+nm`pV>Nx37@Q@w!BJq>w~yR}DG0aGo2-(y0gDo?u(^U8@4+oTweFjahq;1#Tsl z-RM^ifh=@4vfTX)?-L-4+^a0qo|*_*;ud*X=2J3N)22d}x;0onu+v5M_%A7-=0|<$J`*vSv&wgg z82`I1CGy=C{krNaj=@*#@y6#Uw!SAr=p7Kf7ue_8RmIuJIIG{d*?dA{Am6y9grw@~ zP4RxWnosCW@waXxUn+VBebDW}G3w21lDmsVy_rpRYgfzM`g!cnVYh{lR9(FnKH_#^ zQSXJ1y6^i^HQI~X+KuxG%{u$Ro$C|o5B%gV7LqyZ>?e1vFXrFP7?F0Z>SBMiS$8!t z%9r9kCnWQmWhrhk7WK`t6t^miT5mbUZNj2fa!zqOv#6DvQ`~_pY9;3sHq@By+v) z6xXgnXCv8B>vf-UbFrwk!B4q`Sw2M@lHMGha?4A}_@dJ(x2BLw8LJ|na$}@qtcrZf zjbl0Sxtz^=%3Ui&md`YDa>}iZxtr8S`;f2BFK%-oa#eO(W$qXEeV@=OYQMUxeL_#} zX*by?^uF>p_lZwvMY}U@!J6XO#j0hrV%u5wZJ*FOc<0>VKB0Bq&bym@LMyHP?wjS+*UrJb>1$!lYK&~`CW0>`Gi)hyXszKQEL)jbDy%P zbqlY#QLkrii`EIe=Dy|=S_d!H9qJQWh3^k{u1{!{xit5gcL++uid zL9?%ET|Qd3@VeW;C$uhKx;xq@RNDOQp7jZ>C3wSq>=Rlm@1|R^c4p4BZs9GrjZbvM z{Nqmb35}WGb~pNj))Ktqe(w`nEAOsr)yd46R$sj57WWCQE_mPVkHM~wNYQ0m#8_A+pxiq{* zENUf8)BBo5eKExH&ayP@D@!fQyDJ1MZeh;kRn!HRR}!Eh`83v)49Nx<; zWqQhda(dNSszWFyr&pI{0mdq6pL2OlSk^;mpL2O{vC!&O^p%0^{U)BKhJwT zSXS?r`Q-Ncv(Vf($|tusjHPLR`Iah=H-@D%gr4p^UOdYfj>+rIV42A=dA)fo&1V`~ zDpKY1ma2RpRBGk(*0OAxfwBiNFL+y6c0(xU1#dUYO^(U$earG6$K>~pvK)fYd5-da zVmSk$a~S2FWwB?5#HQ3bC|VF5glW_FiNe458YpuvdYlDSFcMO^PC3H5M8n zu!YoNSqzCms-oT-EIT2TPf@QmOBs$S=5=Iwm1Bx|-C5`zbT#Z@ajzfCr;z$WhO+26 zUJE4M-;;-?3btf>hYUGTx6YHzD*~l=056OpGzK zK9I8BWtIfU`$Dd>{DHAyx~Ap4J1ln~bWO{7k6EU)lKWiVvl_{JV=jdDxxAM}NUZbc zGWiU?vZ5B_D_%rMqWCiJFdW4z-VC46FTN^zTUlt$v?-9v-hQ7XK&p7*#^Ok| zX{V}&j1hg1)rfi3OB52(s-t$GJF2F4f`wM_rl;UF z@0k>*bvOK;ScvlmZ9P^T#YW`wnpa&&MB9h+L$kPF_hMMKg)w6sF}1vs%_vnwyBUM^ zH6gXVaC0eZanB!y)bY->k@5^zneK$TUJTyiP^w|L$4KgV4_TVx?j@=3m24|x;_-Zu zH1OK9biz|`0@BdS+fK&BpxmICMqV0A$)adcLK=H%?I~uqb|V_CD##mNREJFY2hzlA zBP6p=-PHR*NW7!In%dO+mF4c|vW?x;yTGFQ1x>v_q-695n|e2WLibox@1ajbIq=$D1WeQ2% zf_TdZ>Fxc7A8!9D+c;{KDEio7Q4E3(DP+MZ5kQ*$joiNP1 z&!XB1!@OrKs+}<0vwMjBaa22DxR;$pwG%${^0IX1cEX2VVHVX+7~z#-QSF2g-YYDs zo$!%YgGIFyKJx0ZP&?6H4EYwb*m{DFQ7HTI@%qXuXi)tr~_6D%1 zcEV_HIE!j0jPb^@sCL2_ZxYL8jPb0%Ssm-mWVs31AY{IZLCb-@cs0&j#zJig`V!MP zZygKO-8+zKy!QnQ)!p9;`HF?=Wr~S-2Uw_HrkIF#jD_m=6Oaks&n#5G(^r-zc;{HC zO+qoT-c=TAlTb{o_cx1b+r)YISXA34&U?zD+5i*1U{85(s5ZbvFB^+$+r)c$SXA34 z-iu~YZJSA6Nfy<%ndH69qS^_QJ!)H1FF>^uCVO>RsGUIf{KsAs7HTKZJ^!)ymXwSV za*8)Xh+Ov|1u;{+BSI3i)ZFO1L#BE^_7>aH%-=D01v1^U`bfEk8|)rrhS&Z*DZk=+ z=|}LZ6>mEW&HBg#`NTWN^2W!QH3XUKRqHELRm9b)2$}CSXBmQPL9)Q>Aq4g5IMj-e zMP9D{B2~swEcRZJlF@Hk?A2hoVq>LHq+0CNWubelm5?SZbVo^P%|h+o&LXBG3*AwD zguKf_chvhr`mxX*MKMdfAuM!9QOpu=v=p(=)GAo&ofaa0$xcVQ%7q-%^~LICg63t@iE-iF0&Ew)9qePybJ< z&%9jk)7F#q#wf89kn?BWyFz5yOYNUEUYwAK_8em9DAsxDGDeGHS?|pnLit3raT9Po zkUmkay6>muhwt#f^> zl8TsbyduMCpA)rBtuPJ;+3$5=nTqxu$+zAtmVF#^z&p&c0e4+GVh(ywS*jN@v}cec zFZ`j*nIz|Tm^JM^?~@Xc!(Kt3)PQ{Fy~wiY4XjZCIqJRSlXoD;ytjqS)+pybkmFu| zj;SodoBcF^y%n#lcPDQi0NltqEeKH;Lqjz$I+~=;CAwc{5lXu!Db0I&Avx<8x z%hJi1SBdZx&-#c`C2IqQV$D>5lrk z1Aa3C`NNC$Nfac_>mejr^ixVe{_;MP;?P;G07>^Qv(VbJRUv! zWTBXbkXzm>LJk@$reMw&lij6q0$@ z1;ZPJWS+5LcrS}OV|MtKka%Z3THRT&kx=*{%Qgu0Ng4OjKaVu%;6F;%=!cpSkyh1E4*Du=6TK?J|aXu7pt&`xx*+%WwtgM*Vt5uy4CFSXWcZ|zWM_Xtd54z@UlbCnWgUy>1~H|= zHDl$~xrhCt5~*~!2g{!*38c)BqER`o9iy0qEL0bGLe>h2*Qox=E#wOps=uUsB_vjx zjF`eA=0}#(AIRBRWx|hG67XKH9Ae7ySv_d0vZZ{uLLBY$K{NYQlu?LzDg2P77nd8a zgpW^@G4rO#XSrhdCd*w2m1C8{TD**T459L;a@d(9YQv5O{{3DyLuYKAupIcN?>$xr#b9!?b^zmY-pMeXo^ zLhuFl5pr~;PB{C=lux|&3|EI@>V~6)#A@G-!f%(6PrdLQA+xpd1F>olq+xg)r@E4k zUO1#tcn`~v@p6WLqwrCd84$WN8)uwnRsJ*%|HLt)?`vY~O~My_LZy1saJrCK?cQ|M zXxLWsa3}N`=&3Z(uOw*^UNlV#ecO%Jz-bk}CFGJmISXnBY`#_a0n1jjjWM}MYaPxu zol;%WyF4rLMggdbG*@NRkKApndrG$1am(N$1a4(J-+DzUXUBUx}M6{mu zWewXkJfCCKmq%j4n^}7D*1LtjWKrKD=@w3AQQsnYH++gkeR-sNI8{om+@{C55DBtS#R^ zT$xj;_0{`_tFfr{)%%A#az5jyVoepC`u^cgEHC3}7>;W(Ap8TT+SXMb#encnEXjz8 z5izG&a-;5+a+>p*jdBdb7s%%V%jf8gehT>@oXV-RPvwZvpzxm@lN!!%tbd^;BYE+=t4I zF(?lQKiuxeTOp^#KvecfhwIA?-eIuE z=FlDZ;kZa=%kCa&O7B%f;35K2qzD26QiTYJfRQHB5e^9frN%%&dXpvyDAGGIB7%Tm zp-4CMrXV1o-+yM_IlJM@^W5j^&v#~bXJ=<;W@q;t6Os`b1d^ud48U~O=UkaMx&=6J4$RO^CsD29&|c+9%sE)t&eD~S0jc!^St zcox4o1z8`wDJ7~Z?mKOS#LnXTd@kw}Jk{rI%Qr!XWJASh))g_|1nZNmM(?68WJ8e6 z7O7&dEs(9>reHQHQJY`G9Un29f(3;cF|X7=i1`CbNI)d!8}63tRT+k6qL`d;CLb4Snu25E{fr;-y+293l^Kp^9hSz zTjsM62ZBw7$o6nOVh#n{`Q%&3k>D3Xy!P-|@M|I7SnpVHD+yn9#{1#Ng8N9CL-@$| zSTJTD-@0u5c)Rg)u(*)D(W;mGORzeL>gE0#{FFrXjgJSvB2oS46TzQIRO@##c$P%9 zey4&3=ku-ajaEJ3Gr@8ss`Wb?j3-e&>hr*8wgQz5d|I*zk*H8{s7 z=ONdE`O(8u<;=H!BUoHW3TuIN%e;-c87wa(gRMpj&;~KLf|W?r%Fo-u#w2SI!|ywH zf=x-(deJ|FVUkbLW90eV4JJtm3@9d78{P{}B~f!1_kyV;>W$`m!TCbc1B0p8eJ{97 zhtE+m<$cJ<#NTP(NE>nfiS z`Y%{PNSJNIU5lR!rq!nyRl}pSFN7qEI~umvoUQbN+$vG?&#=s~>4 zs(m0tmb?qerH$|juL-%e@s#R$tnw;=n4orBh}Q?uvie|E-P0#a#O zh$KfBtnUy~ndH5WX#F6%R)b_Tq`Htdr9_?u7}`4&Qx^HuMvS4oPf{1czms5SACvsj z9>4MdF|`zuJCHYotS0$(6P`9hEbSYTvyd)AjtI$!QoYJJ?Kc@CW_Noa#?}57lEz-a z+|B^VGa6gQk6lV4B(K(rg!e^xOabjJpYWLHw0ETh_;D_?KbIYlkUD%~@5@u9K)as|s3R zCEw?aC^ctQK{JFTi&?D2ILj5Z5)`9mu_|bFDTcQ{{Q9b(btf5qUd|O%P-iek-BT)R z$ughF_n)8Frco;XMVBwJt>?ANLQ=#$z(&XmT7fV49;Pt7<7qcGHLc8vhosgDV(q=DaKjaPVu1}6Y zT4~+4crm%Q#<98Oh{X8>NYRtCZwH~XS*l&A?>vTKFNLv zU(nNP?(kwXNJs6kPx3)JX^nRBm=y6_t3@GiY12q9;MW1lK{{)H3rP#~K<)h>q>J{i zPwGJ8wH&+Tws=fq$lIFXlNOM!S^=MQgmlx2`=l$RyH?pJ??c|vYWrjeq=(kfC!-+m zYOQ@T5z6=93IaA8oNujzIcq zU-;w%q@T9QCx1ZtYv20hHe`Ty&?gTeA803hlKn7NF=>~4Vn9CB?)oGjWRMoM+dCJ< zA%nG8pOk|P(JY_502!*~^+^rLFs+DBUV#kP%J`%aWQ11PCoLc&wHiKY5BW%|>yxgK zQCf4K^o5Mp+WKS&B&>B8axU^)&ttR%lCS?mJ;hySOyu6Jp6iX##>tr2jpO9=h_k(gD&wi315LgZ6dKKDLWd*TxwldR>~!%H=p@l}3PAmg<{ zK6w`ZalBUlTQ6ohVm{V7`D7mC6K#o*G`4dR)>A+xYHNM67BWfuFGHL`F}uRg&J->1 zohREMQ?(W({E0J9^{Lk0Cp_nAT2~>7Y!Kcm%YaPRrugJ>OU7ns^Mss>yx;Vhwn|Fm z{ie^f10?GGrq8r%LXz1Bc)r7X=AUT~d~yienx(bdCre`m=0JXh%+b2~5xOSJVqse(GOM63S;&&L}(e6CeE zz(xKR06T&eI9fH5KW@k|$TF?I5N{l}Tx%*Nuo$Jv=L(i+yF8Ne( zwHEkMrg{&l_;bcDwWcJau!nqq)@aQR%b11eBk`}^t<^dS@oLmMZM>97jasLzCs8$O zopx48MnLs)*J*8z@SOKX&%;RJgugNOt@gwx{9UsQ%|7PsGk=5cJFT=&_`8AowAw!5t5v_(-t-B7 zV{X5e;1m8n+7DWiPxu>-2edDJ!rzNLsHOXazn%A^cETt89n3@8ZJ+RW9uI5o&)z=s zHyn>><$S{5l>AAnUFKDPk5cbq4g8uJ@L7zr3vxYOWe}t2*IzSpTyV;C3Z_Ib&~H-D&zA%bs%@N z)~C6ouvV?mgN5AHCX(D(j4=V^Z>`dK9^=jA{G(MDlEx~$8_hZ(<{#}9lId@w4-R>x zH6h7^Cr58X9&4>h5~tyJM1{l)Nnv>kpg$|5`vti__wu8c2l-cgvm*q;+tBX~i5JSI8@&v-Wfu{Z^$;~EcpCFe056O3sLy$N<`U?IJdw9AGRu$eT0mO%qSMtlPFcAg3)XpVhZaMNm@g;2$}v=K1KAepUS7WzLipS8Y=gvxW1R9 z2ZZlWas2>^hI=J{pRt5~jKqcTm=gN$Bn@|?cLph`|3T6M!edJ6H-&h|RZ0(DMNy(h z#NW?N$3BR-sF

f$Wlht$xk2nn;H_wa5qq^7=>BpJfL+gVGG;nflOEWdzv*6>fY z^*SW~e2#U?NL5>}@|TPmKNq7dqAUiIZaw`r$#YRy_l|t(>%0Du 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 z IbU+d`%a@vhU^Rxm~69JzL8 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 Dt>fXGq{9%V!-+Pc`^op5bI)C# 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%0DS9e9WIv68 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%0D$u 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 z z_SJj%)aP`7^uI^oJr!+p0_wMSf)-C3trX6XO55M#eIc9Jh6sfhY{NR|@0_Q$7hxc* zC|f<3$CkPkk-!GO*=w-F-n;KGMQgJBI{AO{t^J$zFWGF#=1UdQ8ho7RH<>KhXchN$ zFmQf_jjkK*y>jq~BR?{v6mQ~i^ESWWdsqAH9lY~_7Ldfh>pr^)_WgPP{u8|K@bU5? zO3W_|rc8O?Wj7bw7x41mDNBMb`hC2I@%Sx&Pz(wb@?ZWN@=iP0+4|eq!q`DN=wZ7V z2@bT?m2+>wZWseMkoK?qDbC7M{IB_cnLmTlU_;y>c=r`9mMv<*niGQHgP0Ea;Or9< z->WAjzQ<}ou=8(__uvtk7yR@*X`1VhI?_xuaE9Ha-*&Vg1FnR`x zE36}U@4cKGhiduY!po9$a|aUN^D%tWgBLGJ!Y+*|G&4A7MG(C8${?5-{EF-CWdl4nO zuy>Ke`F1=oDerD*<-%@-e)7E$eD#5(-g{|ZaacY$jJ%GfAG|*ZF8rIqZn`Uo@i_k= zc=lfkyZw%Y;zd@+9qqS^F@hSv=Sq1Hj8t23N>7jx{);O6}tU*&`I z-;=~HVVi<0`Hj^HEQiApF6>h&9(ylv=@ta-<|k6)3ANhu$R)X!_%-_ z>U(nk8N_*cPzCV20w)MlGO#l-7)m};8d=gaJ+Hovk6qU$93d`gT9+U|9A>P z^t&Y8Ih3rt3xX%fvA1c9Gm#!wUjL61-%dd4IQFeEg*FVHJki0jVes`Bs_DTRBuX5X z4<3)XDIc6pm~fjOTuzMScY1Ktv5BvLpTsxxfzB`QQudC1FF= zBx$__C+okalX#2g5Y0E zmG?IK1s8Sz)NsBF33IXEc`gY%7oWo5oH-7v>A|jPy*sA$9+`%%Ny8qbHdk_VX5xD+ zt@owamk%~h^=@hZgr;YveZY}%OD_oCywY*(ykG&^Li%N1Fifj%`WE?q`9|XFpE)HC zTL&IjY(7~1wChQLe)g0gLL#RJgD+vp;F}rr#QodMVDMW>pSLbNlJ+hS+>!J%pCgUyajr)Oo$v4;CiHu_EAhR&LE?Kd^_`c-(y%cX>*IEgpLaVb z@%f$w4-azg`DrXzb8`mdRp5} z(~{WB;&#gi>u!?dJz?v_0=OqF@7*sa7QoBwTXZFF|0U;J5L^Q{N&D(P5JRsD(gZ}15^6|xvztu_y+{WEQIHN&73qW`0#XDN z6r>B%K~&27J2P`Pmx#~f^S+V4XzrigMU5Io;p9B4F1(R=$}P3JC%KB>~&!ke3M!sVzC}6Z`&W^O8wOwdm7b3 zU3Go))5pP-Cj|4&68tMK%BNPk?ZJGDpF+QZ>-m;Ngq z=8^Jxb+j%&&BQ$CJ}N|GJ$C4lUMjtev=aTMeETcf54ovf@UIcMgMJrnpi(Xp^wg!0 zhpO)@D2w{*5$e$pbKgyGVwS1DGAy_Kcp?0ybUlNidq>*3&hQ(YN=E94lBy9gTK8Z^ zy4c_Lb#JdyzSB)-*V!@lU9m&Y2mg9ok1(8AFrL}-HxxDDv-zK!=INAkQ)#q;@^#IJ z+kcgYozl(Jq50{Dr)u5LLZ1iyS}u%T<;^}rsnlO*TiJhQYi<9v5dKPq&c#Zi{;G|X z)nD_`zx-ErDi5!!yxB6$bM;p-q^EpX8u)P)<4Q;SuL+pbO85JBO6R7J(Yoy6_+P!E zQs6&6{R$|*ozsm^F&({qBTV(*qU@&Gj@`#3DcSf!E~}|O(2*~ zF0C0h%Z`;78cci2^pesL70{YGn9E#3)|e=B7_E;}nkvw^rKXoxX?jyZN=IIt$Fn;$ z>B);&pQ3FzohT|z#iY%OLn>AjRltd#Q?4D1RRO>GDUePw`h{b;@eSugq|NzY?v?P{ z5Talh{fQC9Hk)BHT*g|0m4-FFp^1^PmS9#WO%?J<%`Kf*6}%npmk0Ehqm)g1s){#| zLs6cg>y%~>)q;jgm;>v9N~bsM5nK64fohXXO?Kj(erSs~Gy5gMz7#+n-WSjQ1mnvgl z9Y)0uD$NY~jy0Un=eEsRx+QHMZd01Rc+2{h;f2ZFZWgPGR@dvcrjc-2^U;P^&^~NK)JWiGMUYMuW|NB5NaWz@On2HUO?zr0BBV_L z?6Q>25Z1uvGWv)$?QzFn$>I|34dyip8n&t1&rZiH-n2rY$#Xzy_D}#C4>Yb|tOcTt z#U)&iJ*6t)QZZEKo+DVVrDB-Ww9RIhXQh~lyuv7()|?kB#bRl*C!b2EmslmX%M$(; zY{S*!J86?~t4e3TSS^l9O;N2mE!K$RQuE3W%BGC5R(vnhDH$yD7Xm-jf;PO5HB+_E zI&nd2(%?M7nqFdqxGXgl;L(-MMsZiBGccIWW^rF?ezE265@T+?HN zH8o|dMUGf?kus6M8l&oUMKpGKkXKe+_b9q9n#)}lo) z<=di>**Ckv6rCs#r^eX`GXqo>~)yhc*|bCO^*hoN|35%qZaI61KzIY3}}kq?36z>_DGvI zgJW!s@k0o=SW!Jzqwot1=dg8v2Y~P85%q`IXk3RTjM{pYrZ>K&{FY3o;SM|HjmB-M z`97%GWZ=zBq+Ib^+h()zP}&>|&aW>Gyk7>J!Mdh>@x8HlR}PxrbO~qB*GAS*FLJ+h zlj!vlJWsb9O|a~Q(FTyMc`KA-CE%t@X)YP_L%HttAK02-jkTeoU>NORr!x$CMG#ao5Hf8rJ%^%`* zv!vAQ{D`RYSG;z=ZkCan>XU8F8_?Ko$Tm^b6dF{LlCZ|HhM=h>^U9Y^NX>SmsaacU za$@|j&35BWvs)S-Enei#nv2F;=I}IW(9UCYI(w*<`J;@r_pu$Tjd?+8e0Y|m(rIrN z!^8hDiupm=TrxVE_0n>y{)wFo+YG@E1UHj5tum`vkBqm?u2OUJva*Syx6SvY=2=kF z+3cH^OW16QZS$@vf| z3`)?N#XhCEXpAu%%UDl?EkDjol$u8q?Q|wX!}ZF7Sr9*)D6jdE*8G9pveHa5@rf$f zycg6=H}Sz1XgUTpvrN2p4$ZKjX10m%XyPsZvCziP+&L#2EuMe~=`TnK8uG>!B;HUECN&3xnq6itsi_={wad&aHCKb0WV4Xe^bY2=&nzu9GlQA~X2tZ}J`otJT;_@9 z0rNGfdAiTmd}B70nlVAmL9>a}R0?XoHJeM#pO~kdP81z7+oqq7S$@(IQiD%_nLVVY z(+Xw7nt@Vd3{BAtm74sHSR6yUp*+M5zf6YL1!{rKaG16>GbB z%$z1Q^|fXoJ=Pfdt*-dqWR3MA~jv{MfgfXRt>4C1rMn-!m2AZrQ+>ameoLN zrYu&P`=;A!BsFF`HNli7}%d3>rS&4V0l(qpGnQqf_AKp))J{H5iHLRYpK+P6t->lS<9uS zMzDm3t(8(UTA83cC#=;{Gd5VlAFZ`g^Gh)I3)VWRc^u6BrnNz8>IQRvU~Q6`>cQL} zTVG1e;9%~iYm3xe4(654wN+|51$!{7YrE7m%463ew`-@=^bEF7xNEo6lnC}tF;}wG zyXsk4VEX;bws5TEKf(*QK{(_ z%)N{2xYT?a%&Uj%d#PC+ta~5VDXA%m8Km;+@A^S%CI(X;>^dVg@xhdbyMB_I2f;GO zxXwwlnSOi$#q$3S_R89({)v976toazUx=1i4C^%V%H6+ z2?Xo4+;vlG`1_$$E!MbhOU;R3i*0n>m71l&+`o3+mzuM|Si4*grDk8yX20u^(ggE5 z?D|t`VuF2o!u42crUqN%jO(e?!AIvMCyMWXj z4{D0I!=+|-FjiT2VX3JWY{N?KqN&PL(_LI@T4uFNSleAn#yXeVE>B%|87wMc)Dov8 z{s%AWE-P#Cp{X?OshPW?jD=5{%YRYS5}I^~RW+DSD|h8oxwm%LL@c7Xc`DW)qOH4* zOegYNrP&Wn1E~pEcFJwt4W*_w?pXL=6t#E1AvL>#nojN}Qj-biXl3(``%S5N7}Rue zza=%F1+OSjZ>ux7C9ZXx(&)q?4(gw>sz}-n| zW(PGtOH9bSFy9z2MlGS%ncQ2Bf4|B*!h;_jIS*rH=#=S(^G!3@l z5%)@|sg===^__c-)I18>9CLpm=ium(%BDS?aIcp(LxZ*W0UGYF47#18=!|<)s@%`I zzmlz$VF+BBWM#6az$$7m-fi= zgoa#`nu5VrO%rlmmU(muRl+EIliF{oY|@9^PL)@Nkh{_*#j}NlJWOSiIphzi$rT){ zSwkL6O`)JBTgWr1N%0anLX1qjHZ=~~~P0DJOCnPizx0o;J0rG{UlQwgMn&KhZ zrOo1?resJisVSPW5``3!ns9Bihbo5@No7+jq*yAOh9M=SCVeoSw?axu&C}po*)F8C z)VvyQx9YnguVms?cyqYw_kPqTq>8jjDNmn}>Qa+Zo`E4XQ`LP$NNs6TKRB18L+Z(t z@8C%}|BE6|NMmV}OV7AHGqjMyF-$s%{*OZ__~mBsWgW}rb|sRy_blhA3_$Svbh$rG*ufu2w9iP=J$|| zsWevTj#QeAq2Hv^eEGr%deGn&Xa$|3y)m(5q7O`EXlPHuSoTm9oB92)!XS zDeHU1(3{ZU79!|HD~H~e?c>E04V7{oXtDyPhpUwLQ2o$5Qll)mPi@V{;Qrax6fBrJ zR$rxX#CjvRH@0IH2<}B~&Go;9sdj<#~SR$?5Q1jttJz#-Wc=^;fgdXVRv6 za0Q7BHNxEPLhxB;hc=$AcpBS(U>i^C)A)?fz!d%bNB9vj=vPXaqOXCS@KEUaopqMy zabO?nh}ZLD{H77~HOed5rLvNrw_ur)PSFlTv9Mc@yAYN=&|54!Ntt5DZ>{;DZ}Ewe zp9EN@g!B7t2?*zR;}aZuF6S8N&sAY5=v+KsWxvINS{(v9-4%!*qWmcL`~!E$GD)`!!AC{8b&;&nNOqP$%0x3z4v3U7iS z{|-oJYpVM0MSb~`1}ypAZ{kTW3@px-$|rN3ex-nKzJBT}_%;#(}kX#&Q9*&&=VXj!$MY8S3=ra>kpeT0|% zAzz=0?V*_w6ET3|R|%oVQTUf!`6eg7nS8?HA-y)Fz?NVZo?PiI-*^7Irw_bu2BK>5cEZ0VT@`$3TTWWTlaq(ym$ zf@2{QAa5ev2RRwxa}ck)Z1?hX9phGjE27*J5WZCQC&sgE7gM*3soO>M{{Xb3Y8N#Q zykONXrfwHgw}Yw2k4dV1Og&yqQthJpe*xm#^Mc30Qm{Q=?D@gt;S1>PdBgp<1k2q=zGW&jd(l=y7W4a13~Q}e})Wc$m0WVt%4gvK7`%mLE)7AGWTP1 zPlc~}el+(a&Qas{J*uS2Zgh4Qmx zf6kKqIm_Npl&p#;o6NDN6rUTRj2fghdmA?ol<^NLJv1KNKb*GKz1Js}8`X5=Qg!4Y4+@Lm|G#DQ& zd0j8(7&pv?p=bY6*rDfrKpAac#-X3^CHt2)o{?xjmU#UTG9^Fm*Idw>50rfWp^`tL z9dkMCIKTWleU@`D-ts%bx!lb#F0-RQSq?-xEDK6b$&c;kApSb6FDx4(e2ycX9+*cj zLEmj5%anLr&P>pAIazW!S#mj9ay>IS?76%xk^fqZE0(;Tv*h)hC9mf!r(&-_Z`^q&ntdm%+_F>E--t?pcQM$Mb9==H)jShxU9s1bq*To6qr#lEZ&& zfhRgIg;O!~cbaVBv<&^j`;zfmKErq%mpz=0ufkiI~nImW_ z#?>Im^=GgTfxLVVPu>S-ra`cu=17P4=W~z_@7Gxt)iS%3Zi@Me$Bmmzl#^v9_#u|7 zeo*{6+MoF@#tqAn7#A#;>F~Nbyfex>2lc6j{Q&#x;?h2XyN4E_d{;4^%?=S%UY<)L zXmN2)CxUWlE>=;o(0r|!;>?=+e5SaR=5?qi$FHXOmQ267CoksVrLwVj*1>ePc zPHJ9+(|P2ZJ5L1VY=ciP!M-rotJm`=`AMGg^cs$;TeC;d{=qmmAbf({kB7_s@7sk` zyzS6){H>UG6EJ@Epd1Fq-PY`x$%Fo$FfcP!M>!9nf43tYU*XKuusPny05`AC_L->{ z&Lu39vA<<`Tgz2%DDH=Gb_)8~no4f2qh!{`9NxwwuL`JtB6 zwcM&@b!p$+)Bjy%msN8M&2@A-$GfQTUYhS}{MyL5>Bt-obwF+xz8`KFJ74V zb1`Y%g=xAhpP(mu)IMg-I!-TK@87~H^d;q&znA4|VZ#_5F1{cj`Kt!}2~ z!_Wpws{IQ5ip)2hj_B|XkwkC)W4ht=wd}WWx&%8;zm}Xof@;Y2!4LDI-B#f`?x*AU z9tEV65%plZ?XRnP&8(xi%PD+%ttigvuw(n#S{6h9b9>DC6X!S7D?!VJsP8-A&hYDe z4$D-J&)I^S*X4VK=ly)wD7Bul;ta4qEQe zvgkFO$DuF!p&DOv^}ML7>)Bn`J66jmv`-7zPnP|Qer|+y3hi7F>_lMmNcE70p2&Y!?YvYk`g3hnxeWEFdUlnpG(2iU)b@^b%Pg-`78>{!U%4 zy?0f4-XFmA#(4(q)f;|i^_TdrF7%&$zY-Tv>8ys_iv8ECn!WlSXBF02?xzu$_ngjn z*={JeZpY6tZuy?1b4~Umf~tbApqx1%Z$R4pvqSgKFgc$veo-Dycb%3e^t`tFbtuN| zVT8|uJOz0blE?FQ$a9coA^EVD3K z^JhMA4H-W(Em^_+l$jR3#<|0-2ov`D4+M|8hE&w||*L+!C zaRH2L)=!e-U7gSSqy2Ut#k_>HepLD2Eur!kCE+iIwDH*EAXNANd@Z|cc~6fUq4``N z&Zmv1faWTiTWeWX%cfd-wB1ZCKh^r{dfa`dWpAzT+gGJuQ0vEO{aPLWgqGK|tgr1y zXuGnS4{El@eN%1!kxn;<46j5xrs2J1w9kw0PqA)do_~UNSNEORC+PO%`->&e+wIBY zko%j**;?rTm+{5%czm%;J-!NHKe7?&@i?o3al_+i8<@urOCC>r@51Abr9BSqag}-; zI>#56vpMGR0m!w#!v8@Qz<%Zo+Cx2Oz^H%j?{!GdmnE0yq0avdBLd4Ir?@26P)nTJ`O_t_t)_J2P8PheNE8~0Ni zPn9k#!zqwO;9@q#j_+?=L)&j9ff@v$g<Qsskv>j9$b26bxXW`Qe^XjFvE1&Osqg~}a3MBU{GvEKP_n^@mM~@Jb5eCIBKQ!t&q-S_-|fcmNmgW2KYMsIP-e=36}3-9b$P& z`|XRES0gbVZY)#d?g{3-5AjZ9mG>3F=bhZH4q zyRc4j_~5Tt3i=51mE|?e-^q}fP)^>L71gp2{L&ogm8>MsJqy6km%F*AWe+Yl?(yY% zk(t)XeL{0jz1~W{xev<-%H5IZGmOWgkmZLo_rzk}a=cD*zBSkDQFD*lm!zaK0{y__ zZ35=gTI4@bbD`neqleGfPUe9$wiF6 zU1;~WAooFfv2XeovLyCfMmRm^^ex_q%QCAxvIRM)>QJ3+N#{Q_@m+hv!YO|p z=H{Lcl6b!vL4C6^N6<&Pm7JSb$?f@Bs`EyA#N%}_Gt$ea)4L4G_hsJ>!DpbMzcP}j zAY=y2+oF&aa^unP=hyWh`Chpm(p!ymIlahwsy*LByFNmH@xHJT!rhp6EO~shj&dKSh{)|Mq*-vx(vA<)f&R6BdGxS&MVdX{MV%T3p zJ}iQLCS>byrKb$|{ts};9EzvIj=2WL58F2Y_l9&Moqmuj3M>6~ZFjpU{2laYUK#Iw zFvtG_=?{b42_6O6Puo`#c-Iy@6?&FuV8`~g3UEFtewd#VJi zf%&**?hj^u4#D!TfRbx#Z^9^xar~& z!r4twawZNJ6q$u+62kwR{fq2oz98KiVMGg&{)_CFzQF!}wF_YUw;J?(c{$z4kNJ6v zs^?m;UC;lNeu^Ew)e7ql&)+;K{{u*lw-NQ|o(ua^q~~lOyB;a=?fSmhez&eS+gESF z`M7B)`jh*|SwHSqFwEF;`ZV3#O=lH z^rH4jUGEq7_utE*>YLJTs$bpoV}In2^AwNg)cHBvkLOidcS=3}+r0TV_RjWs-rh|! z(LT4)PTAwtKJ7*MIpf>?X}5>nu4U1V+`g4CUU^@o(y`~EYUkAbei7qKwM$BS+3EYR zKd{>?wO{=I9q;e;x63W4jP_G@JN&o)wd-fctBG;R?Zv-4WBa?*<0B>i)P6(Ie(f(f z-_-4!5-(*u;hVr^KmDh8&hcoM_ur=fe82yFex#mP|H+>FIkmkScPZ^(R<|Fgb3@N- z+y8CT{x7v3{x|9VFX`R?$8zGH73E|9^WyZLZy$Rdclujk$ z@$dVfZ8(qe`_R2{&rsq=zQ4xv&!5n5Xs25>)jImkTRcDUK4m12*Kpd~R6YMF(h%p% z;gzTW&V_@9XQzEQCk}&bkMk+Z7C4`>{MNud8RYNKkA)0CKYRG|=f*ei{s*5IS@L<2 zC7%~r@_CUZpBGv3`H&@_4<%PolFx~6z%Mw@Gq#`U@Gtz4JukRl*nZqFeve(y4_M#% zeeq6MFYNv9i`v_c_le&B+39_{SEcix{2=FdYP&keuEYI9ia&DG1bu#6DEAq7FG}yf zReEYan0i0wthY)R_p3U-bDX^>o?Q;R{Hk7pk`UjXpZ0!#+c4GtOVO{Nx)83%L$Q~# z(;aaBmtNc-8PHEp_ppCJIPO>2|DR9g|MBbNvb|q=uHD1wjY0gJHJldVzRFiPWgPK) zYU_r#@mRQ*Vd?!)$^J`Ox~cI(e$ObJ5?W&XwN>RFlRG;Vabuk3cGKM5{N9vWuWLXu ze*($#b4e=wy;NKx@AL8A0!LsRwMwO5^$+@E|DgXJ`un&?N}Yf1e9z}s6@2>A-}8IN zp?^_5rZ~d6pKIh%?Xo>zc1jn5_skK#756e*v*Z1rUhEH=dunu7@>Dk^n`-VWWo8XhOcS*%E!#aaRnxMOfwK#q!?54jjByicB7Hq>nulknIpBKXZW@Mm-;aK)*9q^P zLB5IirFdTOyhOk2{=_dRbmV?@Q-0iAt}3F^^|i}Rc{39AX@~c0v>*Em_l4{)^GdeY zKV^Rm(IX! z(9hT5*IPuT^skz?s-Lc+e@bIL`3*7(>&+v`_b^V)5!vZuaHbJ>kF+4}bdX=dKs8RL z;M|)VdM-EjS6QVGKCj_>%K{_t{>4#zLoek0y-G&Iz5wDqI*ItD+;ju;fS)(A{}|C; zm8S^u^`bl_A(vr&W4YJDH@!k8VH`2H!Vuu{dR_S31=6d4y}@MkXJ6bypTcKxJm!D6y zMm_m{nk-2v42?({f}t>H6s-FtDc=6W1PHQUGX9?`yZRvgW3Ps zoDA-Y{RKenGu^BHl4bj+e3z_~-n2UAcnvY`^nw^1tyP^6!WIul$SrQILh^( z#^bAhi;wpP5wA7M{UiD@QrCOiu)?td-9mZ~Q;o~|C>P&{ zH-qHo7wsUk;W=Gb$p2-0@VJj)CEjz;?eP3O`KNZl zd(tmRcO=ra(@CAaGhNR=_LFL#M1((|eu{sz+p9hLpU;im(f=%072x{(yZ|q?we@*Mt4!|5EPFFG$ZG2hR5SU(?-+ba`Fk`VLCf-v6$A zspG5q??SqSc4YtNEZ=g>lNG-Z?Sp<<1H1KP0-P14*5jPJsxS(^KH=I{_&sCft&-|9@uG@skR;i2?} z=G)*f3Z*TYqoVNksF{X#YaRnGL22k)%{}gdqtns}&0cUB@K2hzqGivU>FBcN6W|i~ z4U>nOb6~ewB04=i)m#Bw2AnaR@Xr^zr#0R(i_SpVHJ<~&1}-Q$5c*piZr_Z=pN8Z1 zege)0Zl$?kTMo}eBQ#e4X9Fi{o-!GqZjTP5m73RpUk7i|+-W>My%U|8e$gBSZVA3E z*{}OA3w}YB^H+@TL8cIRYkbZzwDuM3vZJ$7M$N6j-ND%vQ}Y>k+cx?oV($)n$wQ*E zk;lQSo8+Xi4)#XpqKgh*)+7(zcknb5zcy1iCB3BRe3a3_6QlD}J_mmkU4TkEcvf^l zs^;L2qr<7OgFk9gh}uh@MDNVU@03Otre2QlWzj`wsDl?YDN2(hPm%Ro9bJsp>-ak# z;g%=56sd2GRQ3O?Nm`)rG1iBeix#v(PKyW_2?SpE}BxFyU{f%k7SkKpV76cf+Jjv zszY@h;c2SW)88no?9+^@Pi-9GnMS=%(GJcz>J92xob#JT;wgTicT{8Q;oy9un$U+1 zE;8y(n&aToqu!$Z4z4t+1s!*A%~7rBwu2juYDkx5P%hN2?q>W>jz5{q^Obf;2d^-G?%; ze?_G<50~rvS5!swM%ZtN*+TDVJ__Cf?yI?+T>rnO$(kF=_5W*{uUYLswok z$2ITS&Hb~D{?vRJ?4oTH8llP;CdbEidPQ?SIX<>ib z>?C}^Pu5rMUv`pTv)aGxqNSSE{$&?!(yaDJyXhy*YJaqwZYb8{a}V8ja2OsXnB_RX zWU&i=YFA7$<&_+um(UM~WA;*C$v!F%c{pYtZPxbtG44*q?587|v!GqB#vGul+P**J z)tGOnBK#DmUjXC$LCisFsu>>yr;ylhshj4z7}vRC577wC$KW?!jy+5Xn#ZGj)nbp( zJk6_M-z4@s+9VmjREPX_#T=#33Y?#hLM0!gS0#Jt9P-;0bDTy=_J=-#e`ymzw8lvnl5Vo0XzUq6}div&`J~WAu9aHZ>Z)s!O`F% zn%|qjy^cLYwKWd_CxK%mC#U&i5WGn2Sqf-g@556yI!og< z7azd;|Fg76b0);^Xq~02nw!EOWiZatTa{FKcMZd@J0ZO;nh%3N2J@%4xPPXu!>3PT zf1;_9?e*$s+Ai5kuOPjFF+Y>1GTVFU(U-X8k3B~bRTO9aSTPf?pZsl7t>_%pmf^{Q zzf~#@_Kzg{=;Sm!9RT-wP1+0omZ=QJc`8y>F@O71ANP6suo|l=t6@DG*=LWCV z+!*@>e8z)zXim2tzgOkCLPs>udBW$_E7ZLn#}Cjov@i2#lKoWfb9~wY_G=s*;kim% z9Q>N+R~lDe<-dL;ugAa9D#>2D=i~Hl(h<$SHs|ziQi%p^@27#7KX~^3tMM^816!lwXR(E|!=$m#jWuer8lFGZt0ro=v=K9U2W>b~Fs4b-ge z3m(u2&1yb8pg6_a|30832ZtfQDGn}YJ*2q~u4+A^#SZS^`IGiZR{NtKo@aE_!5?^p zxa#0x9!r#H#Pw18ErH+ad^HtUaWL)+L>&j0v(ktr4z6mY6Rjny{QaH`qO*g?dNPT@ z4xaAGA`&Ghr|EhOZ&`SJtH#EDZ!heH%Xjc25aPfg=wf_khqc!J8{2bmwVv^=6;C$c}n$`ZRuvo8I z?Y|0(?=-9ZR}pbqv)X?Z5f3!0{Z&!%M6=po6&1OfsQLzwUlDIH5w3Y2xFooS=A!Vw zWxd5k1I=~86~XUn-f$1+9d8K{tvTCKqB>x|=2GB>;Axuc;M29uyd}jv&2NHRftP4* zIScEPx0E=fxhuE}_>9eH-=5x=h0#=%e>nJkaF}MbUY8b?G^_QxwBS!y^LSM2bs5n| zvs$mqh+&%5di{!+r&+DnuZZQEw<5m*-m>DT=I_Bnz~?k~!TKNVeO2(M;5fhG;5hJ0 zn$>zAA&P2N>wSc%s9CMQ<;3fn)%sgbyro&~2g-|fn$>=wyqK@~ncVMG5XqWz!yjg& z3gWnAA8!8GUse8&ODJ9wS9 zwuo`?*WS8fnuGUv>xuc2cbSdn*$GtD+ zYu*Fy3|_8T`NO{AsAlC4`-*d#l|TMKxI3!yDS!NdcuBMJH~j>EYYLZN`I~;Ck!Izu z`-@1;%3t>voir>)1l%M&1yXzCYEVd>*+ADPV;b#x7fJhVvA-U_!G}?u}`z|&m+WL z&B{NIz}H%-@+ki`Qe@Vw{MSeku37n~Xi-|T@=wuXux91oM~PXQm46>4me?%)dyF`w zS^4)EaYnQ9@3F$bKAzi0`S(~6rdj!SkEo}{o;;h<-h&nv1a9;<3*v)s{G17$BS1b+xI^K(NKl! z{bxXQkep2FydMyQCHrVcDLx-3h|*m+J+I`XxJ2RC98m^uJH{o6Gn%hS`>~?ryUP9x z@aJ*kLq|Hdo0&yD*?_#J#IZn`+GdCAN8 zExNcFBD|ZjFNgbv+i^2Rq~^ks=ZMvsD@SmCcvrByvY!t=6gOYA)6Dmxhhr9sC7S1; zeox~*5urVl{R5OYo$oWzMf1lfZ#v%+u}O0mq?gmTROIie>^mU-;h2@8g68swe>i59 zXso#&>UTJ1wdkbzEYdq1vqmh}{4v_Em~XAH-c#xAD#yG|bke*~@&>U^b1lTL=-VXH z^iuZE5dUz@mm;stu-_H)mFTOvkIZk2*rNF&!VkxMEzO}jAM$??^Non;tI|{VNe4w!$vzr@ z__$vZGj+JWUlQwd_-&LoSL|USK2Y)1ebW(@o434p;Y4$HfgDzM>4@Pn{62_2cx_{-}=cdofILX!lR>tp>i6!lQX0I1)TvvX{Ey z+iURNsMw-;4bsg9zM*+B*hQy>*`L$*QULb@?R`Ip5}I>MJ|jN=ki#d@>vwSfrCzN_M~=KGR= z74-+PeKM*0m>Z(*V8!Y_=7xyW+z{peEB1zXN3*(*xgq*$R`)SC#Hk@F{{enHj`7_P zSBES1O8!lZAEEf=4Y&{Y-4x3uCzHB=xh2+(QsLQ9AKWj9`>i1c2zPbPK$b4TQr?4|w-IsH4rulcV^itlOOx`pqj?ua6B z93S_QyH$9k=1=zUec>GuiE?rHT=2=9cf~%a)=ISnSsPtsJjUM1`>`{66}3y6=gYuel8Rs}(&HyzX)RX3O#SOhjwm zv6093GciZ=^;TRyGV)GT_Me?nynK@4mfNu3_mOc?^8xhVN}n+5;~tFD{}TI=jXuk0 z2M)#fFOG4s-RCxX>G0tepJzgiJhPO2Kkzl_vT3yf>Fudew9zJ(>m zm)VGP@CjcQV~6HYw0Df}CF7KXPx!JKZ_HKcttrmqIfv23!6$q<4gNM89>40oEVmIc zkNL7t@5AIaDkx5)?zeIqZ8fX=t=vXW$;ou74EyKYMyzBXU67o|m?n8Q1SkIZz{Qh@u3cHh4c@{R5C{E@D`FQ8*?P%e)LuBAN*B}8=7;Y z{c`%N83i#;xV+4T{WXn5$v(*u{<_982UqjgH#TW|KkOU$UpH<@M*pI{GWy>zLb0y! zdD4>H#ONj2D_Qv8H1=&JzELvBhDZH~v%O zv?IKD{1PMmvXu6%7{AmgAz8I=#rWmMC`Wjm_?5;CM|hq1)y8H=c=PzR#t8>^j9+Km zcG!1}-(X}}o|0dLf0I$h!M)?ZG#W`(`S*_BV)WL`^&J|&)$lm%eev6kqYfSyztgzs z;OX(ZjWjD#+H-n*vhlKH)t;Zm?=u=YcvbuXqpQPyRs2E2?+DN6KV-~zglF_0F|JDX z%JC@tM~wz6Q|kA1{0XCrWL2N9<4+pv9pU@qPa8)Z;rru%H10UUPsg7%GOS8T??U{~ zMhVF(y$kW@jmD1fYW@pG4+r0gzhrnE_IKj17z-TX&*HBcM|AjzSMaUr@z;&e)vCRi z(*=GrdPr97l{;|T@H)6i;I1)8+w*)Z61Z<{)!~QWzcTtC8fSF)LCKGdh&8G{ouq&K z(`cf3cUktIe;GYATd+SI^Vo>h+^`I%_r#bZ*+&f|KQoR?_DU9hVOChH%KzJLye|~6 z%z2W%p^Lz;1>EK~$pL-7aGQHItMi51{7G{Q^g~B0#JsGzE7(OL=2Ok;d3LDj{(|!h zgsSJ+p=K$~X}{+EW*W1c=3HREnZ|6Qd2J8g@1-?cYTgdc2JWO--bd65q%(I(PNr(u z7va0_%p;oB{v^HmlVmU5KcK>Mu2bz>*Wm+tb9hG6TCdV$u30dX86|m_v8*DepV=HG*-PgyDV`yDH?70_#T@=vhnKp; z?U~t(#yN!d4|`;JGn->HXKSV6&ywt=qVw^7Y9O<@L~=6K_T&8{%4%NGJO}GIzQfjh zs##P~oDKVAUN7Fow*rJAyrgE1A4b{Crjor>YC6{^yBX^UcTrArqJzui$Ym~YaETnb z%{2}#mm`n4)4_RjC=_<%rZbB2S51{$zWghIvwP=-VYQ3j#IGpEdUa9|RjaIlVw=|84m6 zVxX3pRVIH@l7UpurX>y~#J6bKwBbxvELh*gc_I-E@la6zKJ{pbn{H(8q8G1tH z&wMzhmDyTyvQX#G*5*LX>b%>=oFI9(Q0LdS<_gW~{Mp_-pjn-NJD68AtMg<>)B2wC zOBU+<*vTxUS)FI!F>6cqkqi5i!!e!B<(g~1jQv4E7gL;6@zwsKtC?T3+Fx`tt7%sI zi|%GS&FVbb!;I3b&WAnCDGqMn?`5u)?4wJZpZ|UHlnz(tzYk3Qlsvazo^rT9P3UK~ zKBdZ|_Co{AL6Uv6HiFAP$Q-4^)&6F%Ia{+j?+r0GYgXsQVdnRe19S%UFP<>mJn!Ig z2_wxv9DLRnV_K&|bR5?%-Sg&&+H;rKD%Y zFEPtII7|Fev$=zd$1gYgJGf%}N^_ipaUL?4IT+_5bH9Ue9x|^uIKscdbp4!?fA9EB zW?={W;=eTOICxzA7PGU1r^jzKM>+V@`0eIw2d|3XX>N9KM*nW}q=UbXPc|Pocz^sp zGwZpO@|=!8U`9CjLi|DVEeBWgA2L61@SXT0<`@S*i$7|9?%>>k^VRE|zx_VzO>?1U^*$?qCj|dXcB%8wO>>nDx8HBPX>QZ3&ObNJ z{hGT!;r02Zc~rAH58X7+Xs(Fy!r_-RtMk!K^Ooij@T+(}Vm{KW&PTUQaYL3zsPoZn zGp%MmPvJK=%$$+~azC;?aMvv4;Gqfk%<2w~@H{ZP+~o9>eJRiHW?#v>Oy1ALBs?<1 zZgIGma?QoJJ|{djYioX8@)Pqz%^#1zeSYAn$-lzJ_FSHUG0)77n)fZ>@{!d~^MNRQ zyM6*$OKiq?9~dL7mvC<5_)VjUK1wjGXw7NB_`WLZXUV&TIzO7$dCltlXIU3CtMi^^ zUDB-1dzN)oGVYI&UMY`dZMw_(B@1=Fb6GnztMi@9I;dHl?_Ab#&8`GKKe(;yn$>wP z#CqUh7lm3+9b6_y8Y|?U%8%_!g^2!M&SiwYoVtJjY8`Uk6VK$z~04aGyYS z3$N@3(;E=TVI?_uSRki0)xk-zxvVc7JUbz`b=1L&67pDg9K0eSuN8JbC4HQ4t+Ebo z8^~`pbMS_Q0@eo(-j-0%8tdSF3E|c<2Y;7P$U5NQ9})^%*BpEyp@&-BJVQ_C%$SO{FCEPqLJ%yK1eKY-H`03#aK@w zJQb~Ne{r~v9yaIsSlQaAxp!|K?^Ud`n%m>P1HUO{{jB*Td^){K;%n9e%~deIN_nbT z)?=04o>m;cx|Lt^REy)+u!>8z*Q**O1P2ZzDFwu8%AHLb=Du4>h`S~<8* zVqL3;Wc7Y@;Hbp6tn~2v{J!Pv(rCrRNUNxWCnmPEYC3psVjHW2W`6%?MPf&5h-7>J(8Zc5 zS)I3Q1-e+!i$6tofSf!@lw8Y1VDciDU42^U*V{Mi|GO-gvB=!$!}x{F)cE z!TYwO=UH1MPohr{K7I6j%fhct@cc`QZ*W;OdZ9H{^GW2ldi1B(ammvtC&D+6UTo#W zH+qnmM#E75J)@Ueh>U;98QxpXp9flMRp)U1KFdLb4|4Fa(aWrHl9NTDig+JUEVnjj zes2q}rz@)HO1nWO_=}mmDN~>e^r&!``UU_b58iTKH&b6C(#!J@cD<3udR8S2Vq{W z&%V_#WE)2IT*f7_%pRzwzM z-)#iypX01mU2|vTzdrlV)_l#C5&llnIm?63;d1&7zbk_jkaXG{<9JPffaM70D&-_2O>)mHb53OOEKkbXp(6zs!!ttlkF^rGBN#v>` zc?umw{zsC8Yog>y)cFJa`e>5rI(B=8rna}<*MS~>q&0ce92QN zfbi={p{|tzocRhWw2&8C{PwxBC*`ayBNDYix1O ze+u;lXCITr)whHy&kd9>e9TL(bCRdfkKj^cvbk25RQAl(#^iR*DW!Nd+N1H90bZcb(Ck744m7%*(FGGAi7Qb-mh{S6pK?mqB>;|HIXNhgVT_ z4FI2;CV^D4>7{Q6e3sOYa~p1aBw_>4h|skRFiU6cJ1aAV@Q4 zRH{HgiXvSE-|x(vbCc!EKY4!7nb|r!GdsI?c1=6`RdP1OKVH+pUcD8j&xG~OTl1@TSAx378E?)3`B55w~It?6%{ zPWD;{vkt8pXg?(!#p+#y@!K_n?XWQTE74h9UOx@B=eOngvA=L_%}{%h#jBeSv!A#4 z_L|}L$HL{JeJH3p!rs0e&tGn92iL_y+bH{Nv~%iX`2D19w7r<(Sl^Gf`?bgPx8V96 z?3c*A zeR70Nu(#=m>*MWHwXliy<7jH1KC|08;qtM4`pn(}E!rnX*k|^AWZpiN)Shf_(wV1s zw@;JpEy>Xy<9s zKFzd$M}8lUXCj+vw{^k&;m0!w+*$at^8_5fL^jJl4^8dUEc<4PWBWA6UP8w9X^#Dd zaJdu9!yLQu8ee{i?bFNfyuIEWyAQd;m+;uS;p*_nCOR;|>jO82Vv#^g44iWv&g+12W7YM`i zTo}K2uTG{t5%aUYu)G0vHrSt#7l1d_$+FMxDvl334BPXhPL92lJPVFTOTS!u`)(MI zg7^@>JbNkm4LCkK{0i*7U&nYj>|dGRM*BXp6OQjQzc1~byJP$Z*#7!;x7ZWO!LYyG z>u$AcJuqGf{+G>hXto->7uRWB`+aAx{uWE^^rP=GkM;><37&`j5LRk06%J;vG=txRhMl$V>x1d%LVx~xSed=?ySVtw+a8< zen2>e)r9=r!>`!=`{DX|yifQwdzf$xTLbZ+@N)Yv!tU~T!+u%V-9F#2-w}=%$LEvq z8+O*8FAvjC4gbULCtSjYKzTej_@@0MOMFiFZToDBheG_u;5+v1!o}>&ddBAX-?d-2 zq=)yN?SBco*Z;Tu8JeA$1;1Ym|Jz>tK3{)4TX~JKmErg74+fy0Kz$Pze%~&CQ0Xi% z8;DMT^t-|z*vF8+xD4kn{Gt5_dGk1U-W&eN9yJRMy> zo&jGY5BGBP9n4+Ausq3*CuA%?PDfY}#<_jN6^HyW8q0_3D7CmxxaP@KcJPgzLB2TDUtM#`iZ${uBHP*eM(@zcmwnKfJb z;8(!CG0vuTVQ{?aI?9HN?PHVEpuJjK&!LS#|DFN&gKHZ&CJ4u~wqL{j!`eoUIPyN| zf6iIk*m0a}I}76@YnwW{j}-Z-{5EyGCmhcfLwy$p@df1V;JCE`jx_S54m|#{;~;si za7)KkazCga)7G|jn4|de;~AeHF>mcF4nN@-7W*&!{&a0yN6pbZ9>W~a|2(+1qr>kL z>-N0ni1-xq-#Y}?-`dw4ndHIXOKZD1z9jcr4gL4E-5tk;-R1L5N9VDa|BZ5J57)lw z2qZ6q{--UXrz4Ww2P{Xt<7hkq(~kq!kLd4MCLF~MPlex`M+|h7Qv6^`m~SxRLr43G zVtd&j7*FaOF~X5<@tBBljuw+}dG%UD{~%(TBTP7og+Tgx)oF z8X4=0m5##}`-ZP_+$CduvD#5<3g*Z5V~yiYVR!uy=6F}wef+~5LBjFus}%UXb3~Y9 z=u|u&i>un$Vm;h3oqP%Q@B4_gj&$+@h<_gu={RNaxrk^7n}+%MbFn`oVjZwEFiR$` zf15L&Tw>$(PrJs673ROAeGrjU;SjJ#WZM7BzrG^Q^WS3`73TSs$V&74)gw1JdeZjv zg6;XFc9!D_`Qx21;c8@#BVamiFQ31$=Hh%u5IK52%$E{b;7BK@R)_nw&Kn(j$W6w< z{bT1%j#K384`IH`$S)n$XYl34um_3_mbcaMy0H6rZ*#mW>^>jc9MjS4B-H;MBeyx^ znLNLX@$s`{&z+7f!q7jeXJfBN?s9m|;_+ZM368&w?Qtv;j$%o$e?24jIQ9s;ME|5; zzdcl3diyb4x z`rXe*4>`u+_Q+3W^YN)ej;Um64j-R7K6x07Kc|7W3I~hy1>j>CXMcVH{q4x3j;rLy;IAT& zIsPMu&xQVd;}ec5bNKPa`3??7o^<$Gd@S;`qt84Zcc1@KN04wlYnlQ5_sCL59yxeB z+`mSib=)MkY|i69IhxJK<%<7aaY_*cYO^YObYjy>eK>D*TxSIJr6b2Y9x z9+9tagYglsa)KH-Tqo);M~}~W{wTIQ9loj@ zb@#&V*nNsU7=z7O_yb5wOHo4oBeD4$U^q~pR-EC~F4R86VP3QXVg5{$P+)scQ7 zw}k%9t*E-v4Pkgb2mA9ls=n0Oh3Tt8`z1#=lxCAZalzMMUTPv`hw?bqUuQj=N;`#1 zSW*ywUnD>}M=pf&*M|j24}{BY+*P7qlKfVR{Bi-5kD*@8rN-plU^{CrwImOQ^B2fo zmO7)w^;t9eWvQ1iUa#$&x0He~&N>W)@rCGCQliBzqT5K<$b5WfKuCK@TgBHO%<8O$ z`aZgYG+4Mq%x9~6bdtsiyM*6s+DV#&mU|w8`NqswrNv}EzEsV4RSG5FyvyTVqzLjA zIA24(x=0D+L&_ zJBCQ}$P11^|0sH>6h{90V<-jD!=!WM>2UnRqennb8xaox)fi7uTFD-9U@> z^rp`g$vcAQ4`w&v{_dvFRB4ZJJo{`AJpYQGCLJKF(EjX=o-Q3BYxj74H$yr_J^|^~ zRWqeB@;-Q;qOO`HT_O*F@~f_zE!`lOiTZJlbeFuc7JP|1dam?@JSdl^pC_?M+`l4t zUZAd;FUjPHPTUJ5Z}Qw{+zX|ebr?X@$k`jSMMFxR`C4$on@DQmiF@H#$P zret{uk0(m4$(w50VE*)VQYZ2O@T=e+XzK4INz;W(Y`FhPk{rvor`Waww#PpvS-KI& z9n5m}Lw_|UMQR_9@kal`^&XQdwNJ$OMYtZi#-vG+!tneN?&o{Pte1k4Fuoh^zx&5z zNZ!flwcw9pGNnjzPZ7_Ob_f^Seue94bWFD7pMvQ}`Pd6!Y22uZP`I9(gd_udA!}NWYP{CUNhTyfZPsFZ8#5j`>Oo5-zs=1jpw}%-7PE z4Ln|Kn+m=avrk%Ya=6_K7@xNLncz#mqG5KgE_v z9rH0hd>p)g6MIaWEL?1xbOFwH>~SfufX9nG@%lI+4HGW5{do}1ckBsi1-TuZuYR#7 zr51%eeK5NX<>BMl)6&W>(H|S|K5FdG(lhdM7_XfZTPAJZ%;Uv2yxxD4j*x#C$*=!& z(k1eAD9_2B=cWIIT}&4B!v#s+!t=YY*Nf63VR!v;QCceOzMr}ztrQMsWpI5ii@hWj z3zyp>KjQuQ%hFZyxWVu|Huj3tVk=*MxvdSvzlyvjbtU)d0KY%=xgiA!yO)1c8ukCY zOgNZD`r24j>`f_a8y=55sBhQB-jb$oM=zWJdl7p_S|VJ+Ho^T*Xs17=aPoaPKWjVP zm9m80`+Hy7B3$m=e;l4i#NL z$ghKaz>kDoGM^u+G}b2nM{e{Ve}BX#J9dffk*7d^ncE=a`@=T5200Phzd(rBBWHnq zz|F`v#PU4k*5qh!_~KfuhujG*>cdOmeij$SddU-n-TP~o&yjI|B^eGD{FT^w|NKU* z{DSYtIxCFzt6E_!Us{E+d>IwS^5k7%EN@jSjOD?n!dM=B-PZB^*LK^E=eN>${_0l5 zaewN|19s!_o<57;Z~MzZU|Jq+3B^)BZ3+0!40=eH2e*FFA>EtueU*?`K94uc0 z`+$Qfejmj`+!dghsas!Jl;sYi*a#2 z1HiYx=KB-E2E+ETxW;nvK6GEG-=(-Fa<^}|gW2r5HW*K6BF_;Hk>7{&a(Ha4zPg?awzaa}5m`MdwW{5>k-JpWgbZ&sM+4~~1g!kGWv z|Cj&0ia5`|Hm+ZVdH%Gx{uSo=^W#2{KNH8pCI2{+m*0W%EV3Q?*W90zeZT>1puCsN z=W{>1bdY?I%;$686*@@%o;>;oetrYxGvsODn&97rL*!cG{C_B4A-5Li|3mpUrJr$w zv9IGklBI9?`Etp>kQtV1Q zM)qvZub07cqA=Fa0W3)NKY-UmL=wy|75A|`n_R66_fYu=`LKu&m;DZ6`gS5dQl3xF zg6nx~+-Uifa15&t{fXb>#>jt=UjyHY8!LN!hx;FS2F7pW#>on~0Q?`g8aaI)KVReJ zI^-hg&u}*q4v}~L%dgMz^2_8BaBR$Yxjh-{qX}|XGS)W}lB!#_r39x<==%}^6vBS z{t);k`QT}OJSNNc$iIUB1OF==#U`GD@#pv{vR?^bUKA?^w~n7G_YlVRI)F`+Q-nhp zf4||a`04T`GJjv8U;He&?qPBK#rA#_KUW?g9L!{Bzdwy%Ag>TExAFJqCdDt5Pg*=9 zev$l~ydCaG`>-Xl;|O0K^q1g%c|rVA*(Cq95Blfv%jBBmu2Y~Ejt`a_kXNpU{(1az zxjDIf1ngCOh}@3+z#m3Q<5$RC$p>pd|B`(nzfJzHF7yZEU2=c&XR!YC_)vK;na^XG z9luf@Mdsu6Jv*$DCz5}LWqVELQl*T|ofPr&kb#D~c%gkADR(LROCVdO)i zeF~T3&~*OS%GobCLf%Q~@p~bW@;7AsUPz=|LgwEK*&81vpCI=E7lD5!V|j^|FOs+3 zW=F;Or1mpfmdRM2qva~XAu^W#7`YZ%6WbpnH>C8jP@Yc2$I8vg8^NXEcH~#V zzs1MNuaQ3hUk3LicM#WSyxf<}=Yn^060!KguV8h_y5+(#b_DdM_nf$C*%95>*TT*@+ZlSkMZTX`^U+0?c>}ba!VK= z(c_ZkhU7QFu`$W=%fc@Cy9xYxe~R3WjNji#kv}A>qJ2q~hm-4q16Zm&j?BORv3zNo zJeAD9|FIf8kNo#ozWnv_QnDBH=iz%d@=Ed-2cbV1pDss|6Tp9h*O5KI592fB4028I zzu*FL(0pEBX3E>h6Tty2Q$9t;_H2V(M#lDRgM69%wP??>6m$*az(SgAIm zWb6;`k`u_-AKoRWld-?MTh1e6e|NXMm5lx6J@Q^M_Luj_-wDHfo-iITFk!D;j&V^x z+t^p~pB4vz>z(B1qnOptf$@oiujK$?7du$r#zrOVliQpU=Zk&h5AUxfd?ODM4rcs) z(y0mi<>?eJgZR9J1M(qZe0~|6@SS{1I7I%s9PXDBisag-`SOCm?T zc37TH-U7!rHQ}&4lKr)2L^++IGP`No9P zvUV2ZPUxTQOemED$ZhkWKMFohJ_z++Ny1O^?4K}wm2_wi5`LB+{LCH2a$tP-O2P%X zXBjs%w!7i$oC%lZ6k(WO0>XP>|AP6iL4AE9p6y9e}{GYt?ck~eG&kam;IPa444I3Mo=yV>xitz_9o<1$nbjsJzUrmSi z=@Y%3)yvUSU_ASaL?361>*&&(@cWj;I?e+((ENUSM`9Ca&>!f<@O*1uVt{iLc|7DV zPHgVHOTGf@Kc3ja>3<8;H--M(FNv+4@@@1F&_6CuZ0np(eii!1<%u1fW#nJ{;AmhdtyPFO5 z$GZ2O&xB#Vr{?fA({+QKK~FG!(|ge0SvT03@;`J{$Uk`9Fy{c~0r`X3kZbUM!@5z< zEDvrM8wSt&=dBy#4D-bJJve`>)=hGjI?xB8JSD7~=Ikq>?UNYGSU1y|MNWqMjl6ZU zotljCqfkV4ty|#iNfYC(Bfl(fgWjLg6P7@G98 zb8>ZzXTbSNPCDrHs(~)jY_LB^oRQ>_-!rx?>4bA1IS=ZueMzUB0lt{N8thL=(vQw; zGM4wV&P^7dO#0cm)8b!}esLZkKZo}DO44u612u7Z2cdjEO1kW9Q5$^=%CnYy-I-!> z!{j^8Ep;%?e_!4q`MxvE4?PCTW1r-IoagGI2SNEAnfyOzUVU^pY=0kSSDug`!}UEU z*`ai8fbrXKJ*`Yul@^WAhdzVxfaEI5(8iP>%2Q#okFtUs59N1zvaj-t9N3AwwlYI} z*H`k$IDfvsvXhMS=ld%~WSqahfpUtB z^Y=GUE|BqiCJmKaWc(gNL*)sX_b0Y2X{b1w^8G83@p}P{lxpPWXZZI{8YvCP_`Qb4 zN-Hvcuc5Khm5kqGXrlBX_h$wzdPylF^2;)alvhsJTlIA z(N@_-#`!MVDMjS#aQwzCZKs?j7f0~#!?jl~knwv2?UmbPoZq5@@(&s3x9Ffq0eHMR zLjQK&(vC`XGJcPsqtcL!^J#QaT9a`;jZR88GR}|DS$UU?^J8>Yg2*^O#;eL$GR}|j zsxpg=-*f1qEFzu)q@(w2mdC9BrJP~|^oD2P@Tj4{MbHeWX^P!5;nx}U^zZ$Ak6?Q+r8miPmQ-6M#(gV}e z^Q&QsR~w$+#e$%J*};FLq6xe2Pev*mF)q)0%tfb&n9m zqn$Y34CluSQ5unPzP=EpCmHA43sJ_BasIv##YM*X`$CjlGS1%@q8uUP{Cy$HALL#z z-uds+5JhQ^>&N-}LX?-$GS06UqI4$X^UM(CZ8FZU7@`amcF(UEqKu+A&ab#anL@_- z8&@a`$<1c)@t+k+D4OB?s4J9MVfTD^E0jHGnh$Su#6+o3L{PDk8-KA(#Z3st&Wyeo92GRxwreOD>57XKQ$S~+I% z3ePplZHrHbhAE9YRW831{2->k#WB)aWtzp0LnD+Nizm4vmBSW$tc+6rvv^_EXr+GV z%HiUrZ$r}+ zkJl>md$SCsk;U^}nMzNKYp&d&d~R_|-z+7?;^fe5I64;%u&n3Unj@O6Z zD8tCT!QSi}Wh{9zv`@Oneq{=IF4&vxSLTxW`03fD-zrPUeEf7*=(kEJISKk7XO|vO zBFMSmU7-h*MDnv-p8uedPL^Q&X;!C92H*ERqWF@pg9p2gDE{QVFuqv4^r#X*J_H`@I;y-v z{#V4mS6(GcaJ&Y)zE|EPpN9C^rN@+a$>rc(p~sX#lb>|1igA>RnH}d|_DP=wR4%i2r zM{WY^D{-Axwvb;19|!Lx&jSatGs;17B-jW1J=reeKPqR)J|h03@*9~yAInTBRj!ar zz+ZxIlOJ5*>p!bJAnO}RD0c|O<&T%SDW zcV52AlxF1RU~g8Yv>|tc^YL}cFG^?fJKz%V8{`31ZBTxHRr-*JgO{cJsthEL_OP)t zDZeR0$Wy>&;7`f>e&groobnm@2sj=*oBa9{zJ2GFMdUtUZ+2e!LO4X;xsk^&DBGA^^~Xgejob~!zjTj_N)CAt*qdEcHj}qNe;>ZDt?VWr2K#^y2)p~Emz95n z<3<1MV#;O3@g_h1=<6xJE6vG#K9hSXSC!5d|C4e}flr+9`i(t+>v>?pbtT$j&(s^r z9$|O?|EBT>#zp^BPra!aZ}I#%-{NuCE#)0DpO3o4bz7N-mM;aMmkGo7QQE`r#Zqr8 zTPgiS*#BhDJ4zWj`W!s3PyJI#e+QSp81gqs{YzQV3w;*KXRFk^O5pqGQaE2_DSs8%>080|TbA-j88r~y zW-g2er#@Cj4dRYrduGG$O;evJu@(oV{-YchcHfUZReA;T^zQFhKULl*QKEu#N)%y_mWgeoi6NR%RYzsc)&|7 z4oj8Q)fOkDD(X6m(^EC|h;T4lHWHq{q?+mzvM-d+jj7&h=Z|oG8E`#qORb`Yky$!C z|4*%^jv9*bk7mJmL~0FnG8xBfYpS!!2cbNjPOYu39ERzG|6%OcR6jLQIEL}`S5oV# zorhz5IJAdxWp6vs=(_VZ;`Cu95h zvRZ?T?Pm+M9vR!u7HTtc=v{apD6OU1nj8zR3hqqi?Q4#!mD+=R7yJjf51F@berc`M z56HZI3jhxx^Y+Uxt&RE#nYUj7;Lpgs{p*nSiaLwT+rKi`E9xRLZ=XA)wN+P;dHY=E zYO98mv3+l+#*wjoZ>Oe_v3+c>=8&;{Y_D!6WBcAg-A%^!y@PsyjO}|z^#~c;_m1jm zGPa+c)L+Qhes)rSC-e66S!!qXCYiUN9%-G``)I0#CNLXTkM0EUlXwFb3mZa6BiZbywjNQv7-n&x@C&y`gR- zpMmFd5otYDc`U}8!tqW@>!sEu_k-h`l-5UWFAU#T%z)n?q`jwJ9VgP$_V!gh#tT#b zy|1c}zy1~GFG=gGRweWDu?Jk6%*z9JLozR4#o*>-ULH<@+md;CI17G_%*(^cw0`Pa zWL_T5g8QPy_8oWiSM!AN_jO5W@2g!W;QsRCc`oe(wYP9Qdkpp6wX}iiCSiQu{&(6S zbtk5${S8#VLCc3>|JI}gs)vME$iIN&!6#lw|Dk$SxWx7ooS!FYAF6F9Rvtgk)Q{9a z;b68N;>TS<>OPFK0^yI+-j_y`OP(JJ&)3&4P(5ej z`nkVbzfgTiIEL}%pIraB+JoXd;QfFe>lds2EdG7{5*0p~2HPJa=JWe~{Zcj7;s@)O zsqwRL`Psu^e#iB}YMRB*)-M;w3wmxk|NZ4mj}Y~Mh?g*_HGHoieT7DEjpy>^m5BcH%Jg;WIJC@ zpO5YP^a3>o?Zo-lHmdOy=kuHOOW&xj7cTPX7Q}ylyGhLxc9)k;s(n5le_mdGOy8n< zTYM#bn>tq5U0!yoQ-s~eW2d@^jK^b_x<%MMztA3a5BaN+{C;YWdQjM1-u9}+7^nJj zullpakJ9(5k1c+l{*`K5z_%C6XODLK)G8Lk_>LMV>@I)bs-a{oe+Se^VR!jBp#F-c z^6{NoV=%sUtTcV zCVWiYBn;)PBiuh_oKQ>1y@gMz7lmDNY!w@8k#S0WLe3OEtyWpYmsjpQ3gx9;#u>Fa z`J(WTR6i8!czu_uZ;3e8=QdWV_O-Z6Mya|5%_hV93@~D)o)s?gT(*VR4`LnP&Z>9GLt%S+XZ)nLSU7}}dEqtQ|149N35T%i&>#3Hqf9+V z@oFZ&|NlkxT7t*B6}*4J-3rZk{W(127xgtVuU{vCdkecn{XYx*0h!nT+(U#zScivj z{{x;uzU$=gU;L`BBlm>mug>_5j#rU{*Y|n#l!zC3z6;lTY{msOaVg)vBG2aH`n{}9 zUWS$--Y@-kHG+qKT&2-}gy>yx|c z7GW2w3&%T%{jKh!_?7kWy{U|QYWo$q{Ld7aO(o-@I!M^XCLe?PDdUkkl>7~xzaaKV zokT7J+t}lZM(V|6CQA3=X0i2b83vv_yAjeHye!WhqYW2H9&L-(N+$OJ<@zRU#!nt8%)Oen!UAg zWSpC|W zKPNI8Xklyk{$cyo-n+4uE?jQI`MaBFUkkhEM{S}NVO;c2W_mQy{-pGLK7d}`n`*W& zzPu8K^8+-~YLRI^60MD}d;BXv>q&9!F9v8C!tso^|G#CttZlUTRz^$B7S5ONZvWe8 znsB*uF4RZ=Wwg$f7xDpW^t?3_L}$F%Hz{= zQ3tJ-#X+p2)?V1%zIW0_kg@*mtW73k{r##2pYVn4FY>_pva8lO0*&?6>zW+N9l|nT z`?bs-+Q;N)u)SL58`^l`A`k38ys1qScK2W2)Mg61Sg%X)d%DawwPoa3C@=NEx#R+9 zzlLYLrIk^B?2o>s`9<;dyZakGwb8=ZA8nHPj<$@<`y(wfdud+_WB;RlW*@EC;;xzR zYHvmJ<;9EnvU_Fr)%sf8KeL|}OXmIOpv?EREQ?2G4$y83yZc82wN^2Fc`h*@RFlj= zt+T}wGC$Pzk@@@MGcyNkKM3Re#w{|3Xy=44+b%=@;=MYgGbOlXAak%Pb|K4nzc0l;Dt>z`Tf47a-j$8a6I3QlE-`4&L{9e~%g4UY+;dp-k zJV9$qmY}`k?m%9B66OyAcO~zE_SzTRoqW}w*H06)H_3N@f%`v*zfIl>{h>x46Sck; zxA2&x4I*zo4D&~UKN2ox4WGmL@%T&|BkaCkn5?A;2aEg7vzgO0uLQn7!Q%T|M*1wR zg)r79*E8p8oh^QxIbRDGcGoALYjMKv`-RW7R5E}6<4nru+D7uX;4<(ZXmP)wWiHa3 ziG2M<9@zg{tof0#|FuM$OUC}%GA*8r{kdRm7a8l1yHr4a~&=p`)4lAn~e2G zsMeE={kv7#7&6}fuF?|7Sbwb6)(gAqkJVbHF!s;A*=p^uFxHRH)7NOF7WZfut~E~L z+vC1IBeai%-Q_h(TPTe6gR&t?gHMb@dUVwd(VAy6H!k0s#cH}R{2t;%ULVA1KEfsZ zl863syjGKp??WYMFOxkX9>fy0He`H%YMnNU{2ugg`mki}Q?&g4JpTSpiZ+dm_p2$| zOfvqyD@9u(Tr9T`{l65=CG2i5QnVOh_#Q0OCoM8lv^?Pz>>F_14Qbi~%+K(Aq-$D= z*kAFzkoW4OYwd-D8J^D!Z8Z4^ynk(DncC-M{`;9G8#1+(!o`f2hrIL+TDq`{VSSaY zoufD}Uv`$GDXDyY!E8Hhk2lNJ{Dq4dmd89TR2ZH=L4DpNvq0O57Qep<%`DV@pg5oZ zeM#mf?Gl;K?;Z)hPwDyhPPU|P(&RMUzvTJQK5Y0>dm`*^?>B2+>v=q$O=mu%c9{;m8fYS5dXCL42vz8?c-;aR$@a%?Pv{Ph0f98b^ zziL&o`SPO}@1I`V@SD~{I9}%8W%_%=1#O4LPc~fCdgSo*7`J6z(#~0|WnI?#=2ph5 zW&N(*u-HHAik6aB8E=_&RcoJL=`LBe-Ph!;l|Gd9KufpyRMtbyds}7vm#jxxp2b(Q9&0_e zSH}O!dZKNy_)*qBn*WZ<_=OEmwS5*p&-zzuv9mJnmHkXhu~^N1t_|2#8LyW8pH^zI zU-tjB6}v0rFJ&|RfyHgJZTiYRmGSP`9=g1jJ4$?CsCTxf9!PEp&lf((_R@C=$IH{9 zyp71V>-#Mpo9)m`ES{Pz=_f6olP&A#EMAuF)UR0#uSe?lERN1r_5WF%nyu;5SGc`= z{aM+%UftrY*@oW0;{DmC-pb-*+1~nV7XOr8Mek|x`RuBCKZ~zsSJOYT_*Qmx{Zoq{ zW&7x#S^U538v1;Tl^kFF3yXbnYU<$@*UPD;Ct3VbPHjEc;`TXp^c@y=&+*d_TKsNK zUHz!VALP{2Pg@+6Q(ynZ;*mN2`tKHx%W0tBw0KHRL;aq`b8;H#Pc2@O(^&WTy7Ksk z<}}ewi(_+|>b@4I<}}kA3%kcB0`wN-`9JaJ838&JHux)&@OeXk-V5W-30eGkRe(M~ z*u`Am^6%5Xqz4JduuJJMe?`tq`WE4M#_vz}WW20@V{t)F3%!K$pN9DMoL2fJi|cx{ z(!IXr`{QCfzBi|}?q~7AoHqIx;dnL^`fEpX+UnCSKAqD}|Mq}59^(EvD5ryd#Nu-~ z9d+-680XKcPUm#iYgv3Wr;FZDID{>L=QHIwuj%hw{8vsleT1<4ef948WHi06-dztP zpg@o z+nzk*_jm8;eaK^`^7#jP=^s%3Mc^|jz4T$^rC;*)znA`i90%T>(_0@^gzM+7>(N_3 zL7w;*AFuDDU$D4FZXf*#`BR8D$bDCzU5xp;1K7K|*CB3q|MflnPhp(zvT5#n`eQO5 z-`bMiPxmSj`KkZcU)Rv`M{vB(r1aOTTjFKlR>Ii7sk`BQy@xQ&mkH-HkbR)%2?w)3 zPVw>D5A-UB`SOFA3FC=@Y@ptlJPX?EHn{`!NV4lI{(NJQeuP{L(tnf@sB1?se_Pm| zvXl??J4eyYpnuS_!$jv^ZW}GKT3NTWn*)_0hs54Byutu766#_qm7bpONwX z@ZtIr;b3Nn{_b#nBe^CRS`_^`rN{TxN9f+i`Sz7Cd_R4J-bA=qe80H)vXOdAisSp~ zqx2!dIDc)o+|l}E;Se#O?c2GZ>c3KY{(FodHdg`A*S~TD-98 zRQ;mGK5Ux)$l_71>AH3Tx1Vp%Sl0}_vBfJqXX*nip4xYoKF;EaeP`>7ENsra0lqH1ip33lLv??PS9q?}TU*@Lca{FS#S5#h z*85rP=etH9W^s%Zrcbtbk}F(aWU&uhtA|!&OZ zVlnyyVfXlTtX{iR96x$q8mIdUN3mB*VE($?IDMmV4CD9r<8l-9BR})>QOy4zm@gtX zNoQr~*P;HMlbfPv{l@LSUr*OJ3db`S+@CJXP1kplGZNtU1i2adesWYMjJM`y>PN_b zcS4s6!}t*V{wf^eW#@2xA>icPEZsQI?HYBw(d{n<99(UTc3^T>HUlx zz2_y|UhFUA>GOr*`y+6Fo0prX7YJkhzb&^w-y`gP-chKRknwrPM*TdQ-+$>I8}%o` zE-{~ZvgbzKahb2L+{WX@o||-Ui_<;7)cXs&$3M5|!-Ox}eun!!_?e=CdTsJz@Oh7~^oHb{b>a889$)Lt$zOqQdF<2M zlG}}h_s>1P(O)B<83FUXdhFMGl4q}n&G7tI?@N}Z!26z_2lPO4^lW(F)AOJ{T-YVA zhUa<9mlo+`$+6(o;HknTZ2fV@4&)Z=VHl_O`mi2L=?`9m`G#{3>nY?Pz?Z<;FXTU> z7rl`Gn0}1Xe*({YmoGi0|45z;UJX7+J`C?aE?;_Fze+v{UJbrO{vO(I_&tgKko+SU zeovzRC+yz-6T06Oetv?*@0V`op4OWSyT>O>^|omGzE-K;g^cgNl@kpCAw@rC^7^mIxedLQPe$vda#S>oR8oL(v%%&tOz z#Kz9+Tdv~%j7(j ze8k4C=>y2|@O$VcdDrxww=uq@0Oo(nyRIK6zr2gFH}n3`z3yOq|6q8Y2_8k>4(a>m z-PFDR!gzCN{|4pV(nsAzcT3>c_ia7$Z?rdT|9f?A>$k~=eunvv^6uzi_b}f6HNO3K z^riRF&mp}x`%6z2hWAAl!T4m}U45f)jPQ)S`*c53V#o6PSeGC0{IRSvJU?EO_f+3U zehk|epZ8qXAM&{S_s-1l5q8OiVtbfTm%Im@oyQDF41Xnd1GcAWuFYurLVi!96{VM< zf4niz)96U93EmCvj;8C$%Lo)MVYoam!}}569+zx``|C-}Vbmlm;2>}Vaz7E5jF-rR zMO-r43&VUo@cXr*JlU8o>|VZV^nHxSa{%0bG|knG2jtpt{?6u^#*-&v{j_~m45(zp z_5?%xVqO(PCP#v=fvX6+uaBxmYm8HVAEVO?`F)J;FXZ#r$+V`x)_Myq^7x^)KYFYwW@}ZLhzvpVH&?>~EBi@p|?* zPQH-8fl>ZK{>H{#icj4Q&*zpjHflb_;~fq2)7;K$W~>#CVngA6_g-Fraa_2BjfM1G zm%L=0`WMrWhV)PJS{nVIal`io;C+YpeOei7gx&R5Ya^E8xW3lLF)}W%tsy;*A!Gh773G~jU+DkN>&E;Sme<`_jg}X|^%%%{7~#V1>#2v4Na=C; zJ&ex(;r8J2-!gtC0WZV@jpf4b?f=jS6OLjvzZUaV7{|%&p!`?K z|H!!Hh0Dk78*F$vtlKxlV6t`nBaG$3?)8r}Rtvk!??_`0rN`xsG`2f={wUU{0hIpy zPmH_5?)@KQBq|uk@-)HtPS{;uCK{)N-RqlVlu;a)Kgsx&jK_0|aaA~&T?&EU9|q4b zhN*n{@ca(m_xmz9~Ek zf1ewF8{F>gS!#Hh7{~NWjrn9uzuZXowx)L(dBRa_9bCUH^IgU>VfXq%jjSrx^{qDc zRYha@TWfe!vo0^fP=wv*Kf-7%>|S1k5hxrieoxgQKiU{Zeh=!4?)kCC12W(KKKb#+ z^y=32uQPTC2eWwatr7W2C@yteDYghA8;_5>f0-KIm0?By(HW|yvc>cB+S}kk(9Y#H2_x|iOnp!+Ef2Yw=xZK9?zsBY7 zGWw9uehl|>`MZr_P(KNu0@VX(c)o+pe{%8%c(I%yPG@)zcxG`^zvr%?at9;b}M zCTrg^rhrswR zcQf+2m(cCWuR?E@$KMbxk$uNuytgnee{cSe#$ZZc1NMIsD>X)vhfjz8be~dVGUj(; z{!(KR#jBr(`=R_&qlF*ezG7!1a3JLGDjdVs!SaqlJWROU`NQu#{aK@ZU7kKzZg_>K zKWj`EE_Y@^`cjA&lKK6&?s3-GL;e=*4e5`dZFzA2^K1T3#&e1nrSkMYSG3PqUMr2| zwX7nJ<@J{eV|o3x!dPB^t1y<=a}~z&da=S-UawRb%j>ll9FbpMVJxpVUhtIsn{Mk^ zUhh;G%U7kbd{r9DSEaFh{aKM8%U7kbJpEM>$MRHZEKilj@>F3vUN4o#>*a36^6+~3 zyTVwWDvjl-(pa70&XZ=BIEWyFq#UNJMnxxFxrvvd^|9EknwyxF#416d^|LUlJR^zG$sn; z`mW?ZG8RxA&(CASMaJ{<*oYzH`FU)llkxmKHZ}>nulL8s4&h+=d#L|z=07$L3gi0j zf{#;rJpNCNy7l?-D3*-(PGcsOJ&y4wG zyq=yLp=7+Cn3+h%>&eT^A>;MrF!xv-kuRC2$ap^|Ss&6;Ffes!}6 z8JAz(Y$qHnC&2rX^$L8<9>Tc1#^An`9?L@wvrO1szt=EtP#m|fhN(5=+k^G}%LO&e z?ZWQk>ua76#^tv!sA--TE_dSfSIfMH>796e)iUpqv3{s!J|yGz)H0uuv3{s!dNva0 zliH73rh|<8U(0loasO+X-e_t+YMZ_k$NHg;Sz9<*PJ;Wl*9z*G&4h9L-vGD4^i&@F z%x+{{zMuIX8MnW#Ih>5kuWL>tzjFv`Ths9MT`0PQGIiM6LCDKeEXX#(X_n{%s4V`Zv%4!8Mn8gxs#0B+t55L zTyDeqy`lLl+KKghBlEhjOO7AU+uug!U*w%&Z`R0sLLRc5xA%=r)|79bOP&e#0XxYu z^uGgH6SE4r4%i3mC+zP3HZ^Ap2ea-Q;P+YuFPS^YjnBdJ%7W(R#%6dtrbB;cR6z^V zKLE|={~J}%%Iy0Rx<9<%IH{nGd5Ziu@V4uW{K z!U^X5*D(GT)E^BCCz)fqqW_u;-zzDcYWD1g=Iej0aE2L1ejE0$PvIQ1ad(W5hw>Fv zxWJrEJ_r4|k%ga|PlVm~yNk?bJ@9_%huB6PvbW8r3h09DAnx6Ltn=xd3-WzPDllk+!1%<)p z4&h)nEuDM08QT;0@5=vu2MXsF!XT5Nh zIlvN6C|qM^_2TK>`x9nv6{hD&jxcjCTHNn-@(nX@Qar34zkduj?~ylweZc>cJ)pb> zvbCmXZ@zq&Tn7x#_e_n9$1B3DPR8REVb(>9^&RaSX$DxFRv2ZrvpBmj+WgGoEroGr zns6}V%v5{7I{_(ydTnco!N$b2FA0#D_mzTdLPqQgZH107ABcH$o1iT z>K@5v=>Uv>Pxkr%eK`@{A8VRy`VB;T!FX1S8Y$)|a?)U!Ke=hDxsQD8Z~lBB&9o1~ z^oK{l`ZRTQrT3)vKl`xKXe+TK03cHt=W1bdvAFmwqrX~Ng z!W@%*i2Kj`1Cv;uDGR&v=b7HZxP17YiCJIRy}W$06XkCR?>`Uq$~U`{+kovX-|S63 zpUlg1fjIyzw%==GfjOGu494e_jT_C0WE1QSo@q(%yK$2lLUBGnp8v+p<{C1eAFnAm zmfY(uk8d$k$b-O5!P#iB{X=z zDw+2e7J%=d>HO?8A5t9apPi=1M|ixk{@H1Iqec3oeRrAdEuLAp+Z-h9eqU#gIZD|5 zKFuC;CB^ammc3>?8Q;J8%FH6;`!HXd+sHV-<395M8Q7aW{lWKx78LF`o09SUpl{7r$^84&&kDaadkcravp9ad4w_}cC1O6-AZXEi zgZT1FSV|_ZPm0XuWPHD;$m~YO_jiiS;TGFju{qn~mcEC~bc+LgOU&ICxAi@2UbooK z_lWu2;)PX@n$nQQUHz9-H7 z7B}!cWtLhTBb_$?v3Qc}jOjh3a(g=Y{%E$bc!sOg>}&CS*I9F_#Y>SK* z)5-T|^BB1ejNhL1EHm#4$1p#*UR!Sb)eIQQ*LT^r1@8ZB>^F1EF!aw;U_LnT0W!wV znX$vI@pEPt8RO^89V4vq^JXy_;}^`Dqpa}@W&j!E7tQLUt?`RyLt(rhu(3;KbKwwn z!3p0-TXxB8Pw6rLC3D#)*8G>uNHWGRoBrdh@yli#GRA*5Cr_}(e>WGAF@D87Fwq*n zVxA&n{Hhr^+Zw-Wjv-_Gnz`k3Yy6sdfQ<2SGjfqNUT&t7F@D`#wAdQIZibODe#6XL zVvXN0_mDCEhbb?&#{V#Dk}-bM9OkmdZ<>?I7{6tXT4{~nGN+RreByf{-@c3jPbwBp5fN`UuGZ~<9E$xQP%if^Z(d;_rR{l{(t;> z9p0xMuVtOriIvKtY1A0%HnA*>(P=2=PCyI2&9 z#;CL$GE|1&^LifkKGYQV=l=XYpYP}XnB?Eb$J`$(Z;DTRfH29M;*%Lu`ai_y&k2?P z5MRico>ie~YhTOmd}XtqPSZJ&!TTEnT=eRBq|%j7e_mk!wQbw!WM( z$sL{XPN>|`*^Ei<>h5bp<*x3}nB*Sq)`ZGEI*~ESz1n>@RPNP@j7jd()&B^U`*ba1 zlKXY{b)j;| zOvWUS)zdeH%42mYW0J?|#*ahgak`l?$>VkA=1@6I=NXe+>;79pgivF$`f@dW0JSk?#@toTb;<5 zuS4bS^i_;W-d?Z!HdNkTZ(&UG4mx>PsJw$d8u1MOZ?OLpYj@PgF>YUA_NO}PlNn!w z^ZQQvbjCAqe&0#wGJXuspX92}I*;-3JI(inI_rGK3)jN=mWs~0fbr{q2LZm8vH3pW zQ!|qERK{&Sf#=l~N%~gC=Kli*&r8y?2;+P?3*={gZ}Kxu^#T2n6Wbe&<$d+bh{bo4 z0-qBx;bDJmq*>1&sh?&{-%B}CzmAyB7f-1;N^cDbZ>j!p{Lq9ih9|Ue{u!{(F_`lE zMW#_PgZ2(XYXIr4h&Lc*K(a3A#PvVpRtI8Qb{;eMFf2L_L7zi&1`}9v&t? zNuSH|TTyzjtS7O&B-+G3Sl=2ZAENJK`9usqL_f{AYl6}Li>?aOKUr6^-29XL z*v=>GPr~Gx`b(CZe{vt&Ia4c7u)HmGiuNOh^P-sEDf-Yb`B2@LSG_t?)*&enyDE84;NkBV&F#JF|`e9tC%xL)fs`VXip zp?*A40sji-CtQa3Og#{>*q5VEMlAIwN1u+kSS3I=^HfESJ||57Y<*#v{@MC6)_)W9 zNB1~eUlS%jN8b>Ei&=kYl<8m2(f2bR4fVs|rz7;AXZd<4|EbC6=rv*Tb9F7t_d@wD zPd-;47C?V>`0hjFkMs0Vh$VmL>4AugRWBG1?jCub&JK}Zmo-9#i|j?`}3Zc>h6qvp#OQ#%XM0q{sf)Da;i@g^cjq)K26Z$ zBJ{_zoZ8m}JvB^zg}yaReuaK0OkSYpvAhWU*{xTBt_+h;)Ky{fiF!R@Ebmt;uF_wJ z>0hINWc_@|@ABkpw9_`!AB8#^ak1J9Bg0*)P{PUkbe3FcR8E3VfCj3+_=^j^heUC4ML$Umx>qKgnq`QD(Xv)ugC zSbfC}x{UE;D6jg8BK?mr{i%8*%dL(^K2;BB7n_a$vf@U4Lzw&~UCi=m z@YfXUCjAKGP2is?*3Ei(i2k;UX?i_k+Mj=H)Gc}oV%eX+MQ=ka{<=jsg@lJUSadVu zVs$6@tKWUMXkU9{Z?Rei^Ur?w73(&P*8_WR#dJN0aVfONe)rv~<2#W41u!3|u9%^d z8Q%%>E8n8q^f1KY&zbscmTv}s&UI$$v0?Jt_2m)xD%QUh^k1HJyZ$~*UZR^>J_pL< z?)yvhaUDbbeV6_V;$qbu>hoOZE`3&*{BAvx|9yHF;(E*d3Z56YeL(MK zd;!cSGu1;{bqdYj9PN+5Is$h*>eJ0~&P+!_ED${2({uJs<*F}%$a}i5CqJqOcQ*D*`j6>s z#G?P0&P80T9)$P~U-X#H3zN^&`7Hkh+Hc>-=IOtN$sgC(hRGk-GsEQNdKSyi1Aq5h zRIcZf9KT0h?>wm&GCsdI%;IM}sh5O=KW@>JdUFVdFQDl!5EsKgp(}OrqNnw4#FD=S z+D!^AuLU{=ak2Ug+Q+a(3v?pmw(#U|uCq|L57U1}cVqcZ$ZyV~XY>HZYoI^KS@f(v z6|tmOq0b2mU!ljaegl-}$VC-;T$uhM{ns%4MfzIS_dxkxm$69S5~ly0zB^3+IsE|Z zr@;K^x{T-a6Jh$#>*vGtpV!M-|0C3YURQ_dFV^eA^cU-mtbYZ#@w$w~`in6ACHlKC z{Uv%2>-PiyUbtw9wz>rU?@>#265@I*W{O!azMvN~HsgIR;04``{xr3)Ey=4Hzt@Ry zJ>!Zb!oMJ{58ULp)cyJe?dfj9*IQ$7J@tZ)Asjdr*IzH_B$f~U0M1v8enDTsI1c7> zCqnwyAeQocLEnT}+Q$p}HpDQWLjS#>=Y+^Ts!~@Xmi#T#jf^RO%k+XCq4`^;s}YO+ z%XAH4wtty^pXFr#GQEZ6WdAaK*rAkPvVWOQVNCOMe{(zFf!j36(F`NsLMUk}f+URQ{5#U`+BA`k{WI@)ddkW0JqDSEq)`U)CQWCVzX> zEBafOQ+=t@*+-MU37@N~^h*N_mikhqYZ+60snXvet`97O`te>_mEJ>`{ad9~8pg-< zqe}Y;Tl9UCDm{WR`L{}6i1=+)0PCH@}k#u8RLuV;jO?$f7h!KOZ|CM zuR|>J<2QBFv7z~YQ@aC$`GbFC)6>&K<<dZp&6xbTN>?6d(i4BK((4e{2eN#YnzLw?-bk4Jw@QD?a;l%JbR%M# z54}EbmHwIa$$zV~bG(V4z8AW&Y?Y2-Oy9p>t=lrD@87T1-5JyO@7L%7jLrADhR<88 zPb19VBd*csGN$hh*65L}Pv7gW(U&r&@Abc{uVzf&>;I>|k;9ws_06BRPT$Gce2;9w zy!HA)#NzMw^*qEJr8z-=G@?hsrnTU5F{YZ=U)< z`-hO6^f&5Rr-bTn)Q=)2eUI9tUt&46pO17EV=C{D^a(>TJhzXJ^eKe7d_U6JET{7Q zNawPg+Q&!w3C2{uAL(ZiOZp$_w^&Z;f2>zCru0A7r=1#_{>S<(!kqrcdIZZU{g3rn zmQ(s4>n9jf`XB3O5li|X>$g}=>DTGij4Ay(oq1Yl`gJ;+FsEOq&tW;GU#Ig}PU+X_ z#~4%kb^2+2KCmS(JVj^iR7K$O&`$oAp|jQ~I0rMwa_w{OWIQ z)}4o8c#G2CtPevh>2KC2u$3^b6Ii1q?;Q0879!{9k|3v4qoYMb9=dt`9 zNdL)2pXg^9Q~ICiO2lu&mlNQ9KaeM9oA}>W$2!EcJJi0ddMsnIZ>zomvDmj&7ZYatw(2`rPWElp zr7S1=w(4&flYLwDPl(07tvc}>vWM*3rn4E7|F-F-^Fr<0ru7Ka=k~u%cOcC6Y}4IX zPWEimy;)B7Y}3Vz$)0WcPQ+r*Hobu5WY2c(jwJiYp6zuTf7X%=R_vn^{iwHR_ox zC;J-p=Zwj|M!f^E*w?82W62(}Z>P>@O!Z->-Z(DQzMZ;>G1<3MCtQT#xxVhy9SO62 zJ9T%KlYKjNZU`+OXt!L(k+V{0CM=bvOT2~Ne zd%o5$u$=7qT34~0?D<+pUqb#Md%o6(AQpSR*8N#d_I#sfGA4Vz(Y-GVwdWh1$(a20 zjlK}E*!PXTj4<2xjh@JIvhN#xJLpl5@u>PLwe6O<@9|`OI(>pimY{qM0f901MKj>V>{bBz6@uDB~MT}1c z{cVeW(pMms^4YD65KDisM^`eY^4X)WA0Jvidvqz{`oKDvPyeuJk1iw3<*`RU!E!2( zJ$f->$=@Dbg;@NvM^_^*R!_ou^f!pFCPeOmUEPlni+w-qEsV*&pLPEUSpT>^{j3KO zW_y0tC$XID`5AUSEOj27iu#4rgy^gN7zx%@3$NzJzGtGI6T~s@J*voKat!~k^IZIhU?u0XT^;_Bl!|Ok}vus zclQY=@+035O($sg{^Jw5P+PtDOK5n(``UT1`HR#OJ0tBm8tPi89|;H3?LM09A{s1* zaO|ife+#ugn6KK)Lix5L?5I0#360lM;qgV{KOcW?jY-Gme#lWLaye~$gZQ_=SrJno zo||r{+af1E{0qRfhA-4skL)5W{mTaS4^dksy-4!xmkqU57PenY-MWJCGB_)3(vxrp z>Q}O!H~N;6^r#%+{BS}X+4HZ;Z!u@Z;C-Zq1wm@;4aFjF zjW6=nsD#@e{a5Xm@XtL$eir=tPlSJci>TlO(K!oApQzMR*iS>gU`M?J-ykyi5qcB& z&)_FG{0DOgk8d{AR>S|fe=POxK=oDRQeRJlIh<)9eX)LdTI#v9BZ)U0JL)WWSHRf0 z|N7{*$R)g_+gdvck01Wm;0C;KV@7vI2e*0!AH%q8L%*nC9$-T~`xdE3<na1H@e&g;m>B;!`f0IhT zZTw*ReM8TB%uu@p-wf|uhhovoI6Is#__{%c@3e#${o9N7uP<^+H)ux|_HVYLc!Tk^ z#+P`G=l)u-P)YyeE5q%hekYjU)-a6&j%s(S3GeQcKS?K&QhLGo|0s@(?_lxor4w21 zkyz?OB>%q}n{=dqlKy|(tH!_Zzo$5lvQ&7v?TgzCF#5K-6T+B!mkr;r!~O@cN7cib zcM~7gBcZmUdb%$TuV3*0v|;rS-loI)6Qn0$`avvmvK!{BJRiIa<8jnLq?Wo1*O@kB zM@?sb+wZ_!u=jNIgU#VBMeQ)yPl=r3m3&0nVXF}skE2A-jO$w4E#v*=IG?c9VUsCc zYCrJZ1a3!Scl8S-mvSOIrN0i^wSRxu>ic6Uy!c1z=kM_&>znaQWc{akSFnAB;>hrk zI5fU@v7XrQeP3f|u)mS`DBnT8^plbNNc+l`lfQ*;u=J<03 zI~*?9KaqVw|42MykI1RM2Gg5`>w{o8gT-#+H%XWH;o*$lrimus`{#>)_m_W(*VuO; zxv}H->^zw8V}A@UAA>{lY5Zf_OQgR-@gJ4{QT>0nJ^wGnPy2Pj`nJDv+n?Y6Y`Fi< z^537`q3Iu}{363g;y)VxK>DF_Y0uQp{C@d_hTC8H9Z3E^HDAAHm)TbimD4^m^*7Rg zMN-r6{oc3|+CS5H6ZHFsWz@gzzZkD3)BWS;jw=|v$U&eRA`_dGiXUaZITpv?zmimDAH6!QEBJcAt z=?VU$G=K!_$@3hshvdQMHKe!ia~vrrX@9LziI?<) za*_ z?-wlnNB=@2hv)3qkX|^3eN3L;DNa}FM>uv=8$M^Ud<4ZO^+Ncf|MC|`9@Hm$Z1n}s zQy_0)=>+wJf9_LcC&go{S9#x8a5lUvZ{km{3)hRplz%wqfPRs5gH+NHO6RL=)s3I8 z3SayYNvYmiTrcwi<@@FPNT2J1k}FHu<^{zA+uthjVY- zE~y`Jlv(eFruVPP%{c;-?vD?XUu3;5>79h_ESP_h2e5vSJ;q+r|9xuG8PDZr^dqsc zq$8eVf#>??kUej5`xpP^z&>oKf23T_gLnN6pQx?&!td5`P%mu&g}Y=s(bY^PpU1&- zU-SHU$!{b#d}FuZzT6+sc???_ebX-A#OKK_K8LX3xv}W~Q9X*s;dtDA;%QATc5a0H z82gPsOuZ3*{$Bn}hy&$A;+K3$e688j7tZFGcul<#drbL6j-zyb(p9zSKTpeZoXC1k zXF+L@4?zT9qO;CCx3uc2pDeD<He@FTUXJ4@249&N(U&=3( zAL@^t&l>-U{~h%i{Fj>X@73Hdl7B7sv*-zqq&E7~gr{%^#-`kY`oVDGcZr8^FhAjZ zt0i6IFB2cpeeJz)tdR%n4e7b6^ii|k_Nb@F7`dfd(~H4z^T2v0zTb;SwdSa!yzBA@%l)Ybbmq?ZN&0@bit_QAxO;;kL}j zNZ(eZ=cs7Zx76F{2jZJ{@aUx!zm$Wd8}4su4>tSRf&WJ^;b7cF8uY*TC)}@=627!I zGe0!@jB_5K^rd~ydYiD+W3lJIir&~Uw7%F}&mDF3mz1v5AFBVs`R$9>8M&?MCXpW1 zKk3KOGpQ3d9O7ZzxDo=RsgW((w=eE2@5T0J}{enN5?i<)&QMy_OTK213i-+v?upM4S z;eBkkza_jppQLykMfSR!pMCQmY6tu~NvrYDIhf$OKGIIIPyFOz`@C$QuO;5daCCmi z<#IW2{$$@Ml1BCmQjev5x7O}yT?qS5+#lZ9mg?oxov2=p#H&J3C~*!t{VqdrUkI z&%dPqmidmQ;x7tMr(54p9Ms=GU*t00!Tjz83NPcv{;=u4mtGyNcV9#}gG2S`IjF57 z`O@C9t~dJdo)L^oCY+2*;#Z;KC&D(*OW@xYuzUnZmJ94lv0p@wFyy0i`1tt%)d-hal5AdARG6qjDMw{mGyVz{*jEUG|mLmq4OOUk7M%Q;=Y*n z4PgK5?aUJUBhCdOB(U=}P}k`GoR-Z}}R( zP=4)}`Hk!=@BYxlO5r5Dr6in`TO=0$%D$fXRr*KizlF;FoAk?4zy5ou zt>#`#`S;YBR^Y03T(2noaCvZ@WverJT}6Jd)$x~+|HSTRe=->AQ9bd)v7?%|5MQ2y zF1glVTV2Nc#*ytw;uXIih>E_v4Pgd*g+KDr+l957Jtk5B77RJY#t{Z zJm+H8ndR6Idoa9tpJ+o86Q~09yG`~Mj`k>khFxW0q=AdD-f++|#m_?FKndx-A)oK@<# z%)cZYVM`tRs|j!OxbG->UJL6Lu1BITbT8|F#QO#ZieJWest3XGUdmtmb0EJ;`r-OP zKOd~$TJuwD{*iPeDXp`iE%Wm(!I65c;TC;dPXyO1_r6T!LHV>)I6nCGN@O@Gul@5~ zUI%&hS>HsigCsnSQ$hdlpZ`bW4d$2DTM&Q5daE^mw#FAfi+%g|YcSn|lRHZMc^LQO zLR+&#_+pPde-OU(H$p}4(>JI-7`|!$q94jP{jBgevObL?@Eq(l6F#_pB)#DNlwdmF z6sh;$k0swiC0~D*M#d9~|7^Vf+rrVlkE~BECC{H^9Vp|TY1d|+A#&owbK^p)NAjHo z83$xsjT|>bF7?6G( zU-U^1&tI`UcvQmAM&GM45c~K$5itJaJX7M6{X3bD3AI)8KTLRs<8jqvIIsKj=|<-7 zVC=P(UmXH|g{QhL-;wzLE1q7wf3pAd59}BEPKUQ8AK~RG&#UM;yqWir+|zPyMCN(E zb^9w9k0QIgE&CjQMBluh{s`>n8GnBY>p|o15m4V?S4q|I`cU#s-}4Ce$J9>*_Z1{v z=|3c#$&cyZNAZ5y!SH{t-9}v@QIx({&Bk?)PhA~R-^IScpO|(RESI&oet`3Fy#FQrd-!)2g5O_| z`YO*S2uGHCu-}&cHd24}9%IM8{k-Ulzr^kZdr4p9lrHQG<36&ZBtFuE{V49|ue#NQ z6TN-U(NOqcKPBUhgb%knGQ7;YXr5;J1=)8B4=4T!hL`pb>Ce{qt@)Yq>ut&J{?iTm z+2q&M^G5Ke=`YDYLAwq%o$&GrhL?UIGG8)3Abzl)JrI`sQ2UquI#^z<Mn~MFd+4KALP3p~o?LXLZlky&f`{%*=6ZJPP&y#}f=Ro$i=1*E5k^N@> z%e+@*`W=Z+`WwO0j%7aC8ei(w|26vP8|1%sHAH26p>Z(SpNsz@`|q2tqj0jWlIJ_7 zU7B^okMELP+Ntap$vnIFjU<TN{PK-Z@`%MdvPvVWFk`6tOu=u$|kV-kX zwjU(&NJ{n3R6z%;+Fu|8^Qmf;r?mOAM)M}o!bq*rz7=8>Y4O!@?MotdA=m? z%Z6ezU$}lV*%8V&{bV?H)X-H2XK!oy_`kxZelge|zV#mYP0E9)t%OhGOmJKhzEJU- z#4G#XQl4_YW)tsg2>zoqvR~XVn(QWe;P<@f{jT710s3B`hrbsn^VA?M?M?BAryKMO z@ojZ)UZ|ePod|w#ze>Wbj5ue|caVt(`cb5!5ARViCO-$~g%S_V--7yrThkAZFPL8` z$N%Z{^*-e9x%j-u-se60b4M9@kT3m&jQcX)(0-uP5`GDXqjTu{@})kDo?toG8tFHY zOZtL^N97k@=mpGYKbDKoY?{H~_(ss0D|&E>rekqedgHX`5e6Z`(GA0_@s`=q?Z&oZwNKkpw~{N3i@ z_;nz^wN_42ZZ~~P=ep&6RNn zBYdBi<&otnI9%US!ycx7^mBfXP~wd&ce9Ud`dhPqZ|bu=pQP}X5<8{+36}H-2kjGi zI1Sd**7#BmrhJSYOFuF+818I7FCkR&BX)#iX*WXmZ9k$P=?~!_sN5ypNIl|9x*#FAck`3Bps z_*MKyI9PA?U+;qD|3f!=&L&jWCz9XD{*%T}IY$%pKh?9~{8{|>ulD1S>CIkFen0X( z0+PEe|AX*fRj;J}NV^EHC&A~$A{Re|>jmqR$f-UC>yeD-Qh)Y8?!dWbo(D+&WZY@3 z{z!cEo{*)!cB#JZp9afSOCH#D@K$$2^{ z50l@}`IGRk=lU)Fkb2r06+cGSFX4y!H#9wppUN+Ee2%oMH9fIM%KZsE?`x}?PE`Lz zE>y~0sEpU4{xU6D^o1`tGC%ac9~UK8-<4oEN#{Rw|K;}| zzwF;HQctD6$$ErvaNZ|;*>?}ewh}DuKD6Ea-g+ofPr}RpHpn+q8 z4!%za?}MOUoR)q<{B9^&(XO`;ep?XdIpqz&Y+9~l#KO9+Jk^KG3VSk^?Ei%4QxL*SA zcksRmg|}5+MEjF)k@<>DFH-(z!yPDIY44;L{2ww2Cw`HBmd5ve|Cdb0Wf}ili}yhB z{8xqlSL2cQPXBB^B%k!%prBvHPZGb_DSj6EXVaDV4j3NJl7L{n>E;ZvWFhW$<~P*f|{Mlfn54;mCR;|JQUN|JwWfUtnu~ zmhY#C9g+RO!Pbv|HT)O6@9{D}=aczoBo_YUXH5OI)!TSp%TeWgj!O1r@&*{WquxjA zs%)t1roPKQsKootWk%0ZIb#il?xeJ&KA|G7%ptktQ>fT0Sm^&0KZyN8BmE(K$=`weBlSV@DfEB3A0&TbujD%tzry?V zBA4}>)CY-Y=&#}RNciGk3Ex^h6n)W?`YAY)w$_eCkL-i*EWRCDj}L@{{ThXb_i8b` ztBS`{Jd!T)9p<~rx7o-&>TcZU3dR$uNAd2f*IIhSKk)b`{U6oGpxv}z?om~Eejpf+ z=n)^z+2c6tY4KNNe40UHBg(?9ZSd10qkcbUWfAs-$mqlBk9@x}xQ-I}H@q$kkKb;wFPv|w6}azjD|t>EDHkmMl5!LKr2mxttnlY< z!SjdGk5YWWd`LW!&i@t~={H$#Z{_dR{)bX~_HJp*V32wg(ARhNEN-p7BN`)BdL*dKnb9@ZgTE{pTYuVXJV)KUEqNA|-(EZ^I?0`~39 z_#jmHt(C9XC6w|7>ngT)|5%>;2(^{uOY{XxKTO|qbJVf?-3`e%`60M26aUKiF8N4# zh4S??pMw${N$LOX<@-)SD)mC*6I##b8w5+b60fu$$rn8j3$Fi&A514)U;HC9SU)5_ zsvq#ZDK7Wco-2txkyPw%p|}qW|I^O%4mr0e{*J^_-)Q^~o}WDt*UiCv(R;x`Ecujj z{*BkYtx>6meT%3Z#m|CUtDmj$C7gU;)$|MIoQyp82<4mhBmJkGvxtmW{3`Lvxd@@H zotqK4?C*zTIcFg>`20UIeZi5>F@-O79f*eJ`}h1|+F9sxq65V%-?u!Fp2)@DQqDqU zo+C-TcUBuz50#>N!qp3Y4^n@%2B~Y|nrx-3IF+v2z-4}K0s2><*IGl= zBXAiy+4_s>r2eA1!gVNI2D@-Q0@t#Fr*7~d3XiZdg)|G0Dbv0bY zYLPt)aH*=X?g#t;$R7eb7D1YeAg<@sF!h`|1Fo~-nrtlwycqCez>5*r+l$psxc&;V zYvI~sFHxh_5(vKp6~JEs>8?=e z!0Tzh3=5N20Kca0hU*8oPHs65(nKS39`c!_@(JC>A zxDJKuFu0Q8>IqjbxDJP_H(Y(->I>HqaHYW253VEOIts4-aHYa^G+YDVN`vbdxQ>Nu zAY6msN{8z>xQ>S_1FjR`IuWju;2I3q5V-yV*U4~Y!gUHvXuX;TjIt8F1ym zb+*+`oohX5ooh|Ct^r&K*R^onW*rIFWa~cbIQ6tO6t2nE(@+DSwl=^u)mjL=g}_?~ zyoJD92)t(?+_P|1z_kdj=iquCuEiGAEzn(TodkVs$dINZGShoP(0M}IO?-2Iy!23Id{X6jf4!k#k z_a^Y(1m2s#dlPuoz^evcHSnr|R}H+kfcF;g-U8lRz zfwvlXtAV!~cx!;S26$_Lw+47?fcFmY-T~e_z}so9u6IS1K21 zTc9I>4ti3l^MS4bdWPC=Ll*{p-FEw<)o(0e@$Mp_a$Q(;IqNldoKruP%kB{JQ{8fm~WZ4W6LJqn@P- z)w5qI=)nrr!y_SmYdY(fD3e})Yo+HB_=?@RK$m|C`G7IN{OpNr6)VCj2(A6ZX*LMbqSS7S=&wM>ey)_y?&F;XyM(bo2Y{aqees`4B>-)JQ?>1ZYP7eH zH|Zm#x&Yq%gHnevO#%AxDy5FL8`$pgUaG%MSRPl~S?-~~D0QPf$$K+AEt;U3SudIM z=UP-hVk|1}$=3l!AG`S#4mV0P@xw=-k$vxnx=o+NK_7V!JK0vYDUF{A}juGC!C3xy(;2!K0_aHmLQ(%Oh!DXrn8yOVcO9$;pRE>882kI#Fq@G?-w{rd~Y1C zfKvRi_6py?-AXM2K80K1GwrC-A^r+yCG*!X?ZNT)VM_5-JL%Td@D<#(KzBZ9>|gIQ z<-Gy&a~C{?u6GD)H5>Eofq99M?}a%~5Ab`8yB+nl+Rpy1S0=u`?sv?OVg4ixXDOnZ z>CrCXCS9#o_`ZjBeu+EVItJS36+lT&_-f`)b_*=( zKME{A>^_fi3pxHmj=uow=i_b>*ViKKw{z7V-(09SmF^1PCuK^#1oV=pj9)DO68P7k zH{9tQ&vcGwI@?*o{1WDuFu#=frOYp7ei`%2m|w>HO_p_oQXM^;tWD65cLO>A>T^HO zdaE;>iW%l9NBJb6Briw#G*1QdE0|xw{1v{bP=BJlg&cnYQuyYNMg3`kMg47p-?X#C zyeoWJpr7WQ?3)1NTDo^T*OzqbMyw}&tSi9}6TAujtq&-5rMHUXtFj8<-|+4LzG=s^ zfKTyvw2GjgeFpfZeJ=4ab&BH>hT6A)lc=Wfy=Fd%dLUaX=HvQ^BbAp#QY}aH!;7N z`OVC4X1;4v|K!@#Ke;$>D70djAH)0@<|i^gk@<GZ^PG z&SjjBbZH=u`FYGQKx(P=R_2dN)ddRee_%geWSe#~$x~!gyC||vyP4*h&iv`jpU(Ue z=9e(Pg!!e+FJ*oy^UIiD#{4qomovYd`Q^;7V15PjE0|x&{7U9mGQW!XRm`tqel_!} znP1KP1pgXnZ_%+s{DCA(CB|m?C&N6ZZ)~dVrolWbc9PGZ3-iO+1iu+)r^c?p{`eN) zd%<640KM>aBcJ4Jhd9A+#?_6WZ~B2xVtZIuLHla}YU;fQ){N8P>&!bqZrbBdKuvr8 zHMXPmS7?t;+zQ`U@b=&#ajCW!u%*)NFZ!8&i^ii4aW!0zYPdXW8P^Kt_E5|1p^kAK z;~K^_jH?+}i$2F!$MH2VZeZNVxREi9x7AJ)^P8C8%($7c>u`H?s6ECoj$xe0IFWG@ z<0QuQb{v#XX?(hU{9N*j_{Yp2w94{tS*W1gXg+ZZP&59R@!k0SsrVJXAEBHp;w|on zE$dDg_x>KAz&OFG!hSHpx*5E_I^M;3f1#Di@?_^oNVm{Rc6Psv{eeU6KiN41%5j%U zLH#tH#(ct-%E0wOe=F0W`CPWM1LjTnphx|BF3a;+p6^V9r?I=#N^cyb_o6S~Sq9_4 z{kj0x9TP3;XE!*>m>#SX*iVIQZz21u2=UTDj{k}4VcwdMTR19 zz9={imENX;^Hs^|R9hw=yP%xDfqH#an=F6o$A&KPnRU*!Z8~E6m;%&={^+JQ)Q;{1 zy}b90UV`7u&mM16;?TUm1lM2Bw8>_ijq9xq)=KLlTxTTs&AfGYn_BMgnwT~-O+vd1 zts2HLj2jszGOlCXz_g0_)m+ZiT#nTajoT|QKVKiR5cQV^)?>b65^J6BJW6#1+O4Nj zy@2ioyi3(#d`kljNKZ_JdYhuu=}gaNIw~>MezUJq7bmW_+QYn|FfqZu8S3*5iH*)U z=yx7TY+~As@vKNBx;D|p`QCQGA47d_N{ng2y`Y=}ZJV8EM=O}uG&^@AO;c1qlU=T- zxSo2ZO|on1>oaXqTpssaT9;(FRIgJ|UTD>;8(^MyX4`tT;7X-N11)Y+s;F&(`{OR9 zX0*-Z@YycSE7#jO*P8k98r#e(9&4NHQhxGWTL0#|W?cNLZ2{|dv<-g`V4ja+ek@q8 z6E0#qidbH6cYyXe#;v!1f_B%l9qf3*yd|Ywj^C8mDS#)QtJFDw&HV1-b|r2t^v~0Q z{s!&ku69Yho=oEPWD>6@lXyLuq$u4aURNgZx-!S#2f~*@JTJgk`m1~;Y*z`}RpMR) z>%V0nr}cLU&XcBCB`&SQOWaJDx4zbn=20u#m2r72Q61nZXI;DTexj*3ZhYRZUX3|N zDd^)I<44uL9R0F1K$h^VEaitPow!`Ch*NX@^q$Ww@>i@ z4W3qwYESdIqunLSj9=5*FH!4%g>_u}J{bQ%rm%m4cvky*Tn|0eewyE`rypw{aQrWs z`Vw%Wfj$lR8LU46XA#iK_Ot!h-=@^-?JL}WLjUqr+j6cC9UU`&ZD>#9Yu^q%tj*Am z?SOH1{Zcc&(s-K+{IxJ2J`U(eI7O5RbOiKIMjpKg*3*EeK|e9FLm%tGX4psR0Dgx4 z3`&mcdnNm^0_oHamh}tNpT4mx{pUixx}(EN|NWpn3-|-K!#)R46aEpPmq5H@e3mtd zXERtyt#e*hY9R2JLp#p`zL|Gi0@$?MiGWSK*MZ(M&>rsuI^%Pq#$WdW_TK>e1u#yU z`u9plT2EIy7OpFdy^nun+7aXv`f)?oK{{jHRBIl@H^!y@{9TA=3dB3ct#U7iw?1}u zta2ZRal0w8$~_M7u8wQ4URkQzrG7k3_HkUZkK^l<#``(x4(-#WaeJzE&Hhe1kkdX- zHTDNzwN1nQ6hqDa)-!D~xV@%3v~QKc?Uu&3zMV3-{bo7+pd5yG8inKS1T_lB*$Ju! z%h|+3?XZ^HYX-OTbcgoAGGrggrSZDPrE!|(^%p@pw0~CTCVQ2-zEhoR`u#hB9trq? zP7PeIGI_tJ3j5QyJ2fKzi%wPC{@VYf7C3c+ysAryws2C^fcoB8FQUXm)>sabr^FB#tME<4MAJo&dgi zYPJC4nGEqPf_UzLcvb*^F~-yE4ut+~b?0ObpUmNtG5q%sZq=(W{(}5g*6#)DZYwE; z^;1|s1@(I;t#qz|{lI=8FNrpGrm!qRInMr9L^Yl0u^k+l-qXAFk_*cTXcv(^g zhMSU<=rQAliKlCVq0R0t$nUhIOpZ5`ld(o0qS4SrGWJdTFUoX2zPOp zX4m-d8jx?r@P!<{ki!>Z`1`sPwxss~tdkxB{2J;Pd7^!=580*2W9s=EK-&Ud(`7ow zvox^AIUfAK74kI=`rlu=tZ|Np`2mdkP9>DP({+vW6x5G6ptIhA{r;{coPMc?=E=>j zk!N+Kc5rsrP0sa&CVagz>*v1iO6S>cl*;3HF6v6-;dsEOJPz|mpqrten-0_m{r3G` zo85J&zuoz9G>ki4OFcA>mw9Mjvc}o8P^ovimU(F3d=0k421wtu^9gDt&%0MTi~nZq z*zWXz_`mA9-H8JFLs!>xF`N?q4eYr6LYQB53t+p}OuKfQ??zv3!UfzLpDIE4n4PX&}#43GPjO4ejV&2!443!Y#Pd;Cl5M=4-v3h0iMjf$tBe z^wuFIyH-QIyD&Y%?*VRRy?Umbkj{6PfFEH0&oSkt+6Mw2h}YP^o%Q-XLGf2XeUN;9 z41SSvKI>8wKH&baU8%Mz5Ev9g`tQPNS;_B?ZmI4_m5D^P6hVYcmwguc|!-P=AxUS8+W}XMY3&cf;EcV#lG~1A$V+>FyAi_dvM?Mzo>y zA4h&5Fc)d6dkLn$(lOLY5vkDupIDx-D@#l zD-!F~(vRUeOZWM19E{J;cCX|7=J;=e^xpx!ufU!UfgT3)nP=L}cQ+0MKlVuQo96?G zJqkG91`o~q8$C4dZ}QN(Ziy8ScHZtZd&(T8PVUi+{Xh=THvy0C;o|cTvmQ0+J(&>0 z&qETu)ZUVqCL{li9w}aG_i0{gml>>|!Te0dnT)f&G(TM7>k9GrIh59+{SQqI7=LJ0 z>p2GMTfWZ4a7zQ(NT+tl^WFpN{wQyr_eSvN`G>A?PU@{x!J+Aa^P#@paA-cKv&Kn; zdiD{jdVIzmVf8@{<3id&z$#E%6xr zvkog|y;83^ol*>VXp~teQaZN*9-Tn=E0}lP1L@3!dRGqA*uD6$GOw|Fmr8g4fzR>C z9xHi`vmWd>{cI)7<2nFNf_7o@^BVZ;u;g;D87~JUj|&|2F3ca3r@7|2#aYSqYGZdx zotHd5Fzs#d56JUCzsg7b>o^E!{JS(@Imbi2FHBCr`T5l33eHD`w=48(&ja2I=(fPnb1!?3w|;E)S=jp0|Db_BY*!lL+jP$FPQdN z&35GYmt*~^S9_tpf0kUs{93lBmi=AleICY>Ey|5(+_Qn@4J>bDn&Z!b@hZD# z6PH^vmm96~U-Yf9O@H=STNn44Eam#lzqW1a>H5qmqfdY~!o1+~o|T+$*XM)s`@Cli z>&N)0oMU`c&N03YFPm^NJ}T!#)=Tu6e`WRbO7u~GmBjocpZPc7HocOVpUnJZ<|q4# zpnvPutA^80VR;J2m%?(|_dK#!56i5tPwF+4;__3BEPU+(Ia zP@QaesA_AQgK|EnoQ5>j&{>svtMwV zN=16%;puEws{0F+YcBAMiVV%={N?&KkA`tv=lZC>BECoEu^l=7pP-(7MJOey@=Aidb(t$2*7LPd#^ zras&8oP^ouG5f@cvGsTkq@m9WUzAsBc+*P6iuko$GBpV%cO&CmOferiYSZJKAT zxBvPoj58_q?#}Z}zA{noaW|Xw5?u0UF2)Z%f}h%39^*X5*?!vh&SZWj^E3U|OfmVb zR~p7Cv(K5DYxO@X1}PocfGn5#`&9$Eb`MlrpQn8H98kj?G*WG-qr*6oh>z;!tC+*j5Ju(yb zOYiWO_^Ceh!0`mWvEteEol>2TS`jeiaiZ$u=?DE_F3`DfPNv6E9X$i)!g}tgJ|22* zlgi=X+yk_iF>VE})0ZbF`^~tpOO3- z!12GBekd_O?E)y)`@{gXhXOpmu|3fZe7OVm=~4@LAF6=&uiOCb7r6ndj|J)^=*Nbo zCUbmA0iGuZsGm#;&^~z)=4Wli(1m@2>XfC(xzj4ucwt@ zd>^Kj253L7G(h`tB^*y7mg5v_I+sUA%esR4pKN^oxwn77=?e3l%wt^kcOLK0m2tdf z9B&fF_f^{rFP-~V66nLIs)|dY{rruVB+5X!-6@6eI+MSH&WxhUUHm;wVj+uk& zrwM9~hu4W7%6EAn=@z9fKemEtCDW<^wZH0sX)j;3t!97JFn1YG5Om>ul>**!P|WnDW!ZUIgRWZ3BDQ-$Ori_rNBOr;pY4c<8SO z(s`=6PBW+HqTQB?iK6z9i1e8@F;P_ilcLD)G%mc;J>Bv>2>auMR`?)ODh}uZcz$v! zP_rH!K8ViYj2M&@#qB7{w9Ct^t(QBCfl1BMf=*>te1;?v+gzX+b0w9I9xvK=X1UaIG+Waze2XNkn@=uwdF1cOGLE;LC^J(Wd?yzngJ)#qmXaelCgmG3fcopB?RYj656V#aUzd>^ZT3OV2WrAC1Nss2^P(?u z4L=Y0Zv(vo@O2sa9A5!ak1B{>Is(>pClo}N!#UU2+7(8Bjqw#?xSl5zM(@V>idesh z^-B<^>C$LA$5R?j=Xgq^=^Rfcms=*6V;SeSob}6Dznt|g+!t_9+=JtEn-c?wyPsIb z&qK;My#!o8=bzXSX#vyQnLc%5y-nu}={fA86YFIj;5p+rv!7al@g$v85pCN06st1& zh4W4RE2GWxk7G}&WIM}Ruvu@O3Vc(}X}XH-uVVYF*nYC7_M~dmTN-G@`aaQWWcwSr zf6w81l!5e_Hr4$6W)xzrMq$2>7(9;gINC26ydLv05~#6z?BG!Rs7S6wvqJ9W|2{(ypCwkI~KVNaQUt}dF^-;JEFMn&@w@B_#_5D(2i8r5G=e-itn zF4{bo`(SWgw0Z8fDWNW!`rkS%kJr;0v7LMfl-g$#=dX$L*Tng2W_~mCo0(r=(R@0` z?_RCoc{#1yo*F{Wn_nD4=NVrel7P>-*D$}^U+6qmufLGqk${`vobxe2KLmOL^G{)# z4SaJx`W&Fyz-#uz`sID~Y{;Ced%^OGqj!#Wh! zPgyDv`5vI=IozWsCm}Ahl459HlN3YqnvRy)Pf5t6^Dmhl=y|Dm{%rUiGMC^!OSjB9 zNOLk*_}+y1@p+k>5a(rDs5dS%0qNzLeUM(6nG$2>fm4Cbg>~j_nW@OXC$l3y2fqo< z)0p#ShMMQ&hMMQ!H?>J-`;ytdWVU;<&%AFi#!ch=W*~)gOffVLukiU`UUBLmI^Py| zN+F+X$Yl8(Ja>A|DH$;|u4czj|D7E}^&^wx%Vc>j%X3*y=aIfSWwzIh3lqGvu|FBu zo}L?Pl^J%_{3@xBc4X^3|)%zHKrosaQ-40@(M zd{q0VLe{&EcBZ8Ie5TA?@V~^4)468{M(`R>fY;&ynypvz3KQ82USQ)n9?%&}!A_tW!q+kV9B9>za2|u{E}+MQ zeD7)Ny}clQZ&sF-2l35y)_X@lzY6b{crS+f8*6X!R+JE30aOEj2E0dM`1b>a^MDqw zU%hV+F#LM&nM~86bYkr+%REnshxprLxo262!8$k>!X*OjkyX#*V-@N5VE>4$@4S66KUsMG&7}J})N5nk0$9(V59xp1%hy8fRsI-zQ~N#ZW(8#r2>nhTaQG!2KJo z0!;Vtc(w=2|GF#-`8Q^DM7qJTqRlyy8Cj`_@5-{GO}#D6N=IClHO|@!`kWx0-## zM(z(9F@Bg|WBf3`j-mN3zw?9lvjHP&bM9)XN5@RX;A-+l2E@NV;UmxO|1~}Fp;>*T-^@uj-HSa&2=)+9s zGkuEbvrHE=U4FV7OXIB@Yx>t`+T{3X-zdjN=Y4a0=De>*C82%06yfpNL?>n^GoRl7 zsdk9pyFJk<5T6MT?>izL*gng*9m>Cm!_UYjd^gZDpk7yJr((IbRim(6*JP)#eWTc( zlvv)6iKX>uN-XueDQJJ8HOhAlw1;1^X&%#kc$V*j!{9j^&>paFmOh-`x5*qn%4g1- zj~PB5(}DiMHwV&BX*bHZ3ifL+2KmDjcvd)e^Z*q7f?YSr+(*mZ+UJ=tWf0J;(IDe#rSuCp{X$N^kkegn8TtA% za%^MY#xq9QWZx*;*k!3Ao9ryI$-W}n*jH#3+4SCM5ywBB<1gX(OE~^gmY1=-oaN;# zpU&}5=lG{{{L?x9mDVZgrroUY-4E%;+9j-C!ulnwU&8u@n2(HeDma}Av4g{va=20s zSIXfk+0H7qvzo(KbNDh2U&i6fID8q0FK2l<%gb3_&hiSDSFpT-CRU ztQ)b!xee&H5!0NFuNpkwxe3mx)Qy<$JP!CLpbx>k@~07#oZNE_ox^yX(*@3ZZ5y$| z*#hHZ-H6+ryWzamPa_sOF9G$9oa}rF^UI$`6!CgEIgZYyOv2{?v35!v^@k~OCVx3S z(&FfOaYkHH9L$eLW+1;9XfMEbkIY1UINuOQ&)qXPd@j;w+N{C%kCrFr#nJQWyf}JZ zozL;+$I1;Jy$D>GvzR4R5_;W zQRQ)FeN;NCEY6HCkBzeYW}WfUs0y~XiT8=~ct5R@?XJZ9P0XlbT!pwiqndFw;$;~% zjB60TolzTSzSiN4hUe2T?>oO&ZQRX3ozb;%?{zZmwKi^HTcQ<7M9shQwK)O!xZhG6 zR}Atb(ElhN!XH{2cRP%S{Qy@$_*9@VFwZvenDX%erTv=PINGnNjT`&{JRcfe$9C1B zT|G}|V7nUFo(8s~A&$~-;B*@}y#`LFfzxT=bQ(DR(rD`cN~5X&D~+c9uQZzazjBtB zv%H+;*l^{ZIFiuJ2lzn0~-EU#sGEz6r&-o)}ImN&7yS>$ol?>EQM zxZ}oCzwXA(;+WXk< zDLl_A#Phw6yLs`{59P)4dKk}@z;i?9=QF>Y>q$A+k8-RRb1o=gy)xVdXqZ}E2%YVO7u5^ZB!2fQcYy*u8M@!lKnDR}RX_cXj` z;C(ROGi_txX|~B-Hge9wdoJEb!rfM5?b|MlQ~CDo7dmR2{Q+n;+M6zHqdGd*z`YCH z{i-|Olb!2<(-VL9cBaDbKKMJuF{$)-J^@ZDa?+g7;rB84dyumYey8K_3}+|&J^_CZ zc6Pz*W>RZNXxHohE)9UzPpKkCdBVoB@nY;&4M`n@LijoaDNEm z@x!-nn&CdrvBvu0`!-&L!}f9IiQK5{NcP62YRa*gHJBfkjwHzR*0a!Qah3pu5z zS%&<1$S+5J1#%W6=Oz4Ig}>iGX*Gsg?HbRlLuoBaH=?u-rCU(i;2OVebB*72yUCFE zX15RA`+JNB(mcikgFMCq86IQvV2_D2(_=!N<}snNJ;vK-d5pJnJ;vK3J;vL49^>t? z9#eMt9^>uHJ;vJw9^>t+JjUCF9^>unJx9X5$TI-$H+u%beY)oaxX<+b1@0xDQ{g_# zlMVM$PY&E4@|*|vGS3*e&-09hd%5QlxG(TbfP01KO1Llf6vDmIGa2qLd2WPzm8Tf) zZ+K?Hz1njZ+*f<QL4=QH^zM09;b?YcV7|-G0+Q^a+@lv+zC&@8j`474Ns>{Smw`!uzXue;4l?@csqf zf55vZ%EZ+H;4Bk({`?+|(1n<}4{dT<1hI<@5E7ahDc~R}*ULMsQa{VOo7epNa zoQkMHz*&Tx#ZjjMr!wkN;Jk`4yo>h@c>e0jw?k`2JgnL!=dvJdv`UkjIM|Yjj zM!kjltD}#a5T|OQPXx}p$XORX95}Vn6XCuw`X0E~Mb882W|VG;UILtk=r`cLE&6@n zZ%2M(^q25^C;t96`WyKD9sX{LR#(KS|Btsf509dF*T1WJCbMNSlVq|%2uw&IkPrd{ z2ungHBoOv}hv0-Lt00T4f=mp8fQZT_0x~fm`@ZiJ!WMQ2iip6(fQW#gps0YpcXdBK z?>SuOd!66!{o{qJ?$2G-PgnPJS6A0ece?-d_a70={*p^x_*X{>Gbcf{<`z(cxhvFc z9tsUKkB5esXF?;)i=b7^pF{2DZO~Zr!4YUtX3?&`H_L6wEVm`IXhlDnMep>$Ec%?s zX3;Y|HJ?QMpXRerLx6l-2gt{DfS9X_Tw<3?YRSG1d@$#yyaA$DDVP220D1ib#Ch|cT=F1591D*F z#If)+KpYFd%jJIth`#ql07tL#QZ8W@(F1EOq6aou{84VS$e+|A`r$x}=!ZirVw*%* zs$ps)d1@0`Q!V22rpex65!)ooBG#&vT+#s=%sR@xiyYZgF3FMg4OvIZI$qXkQ1tDx z&XD8Zm;DEF%^%7&&y!0&wusNW&>}wXBDv%n>Rj$$A`$)@!+h)^$$y7tyT+v#(|Ut;PB#TCXJnB{$^wJ97C?mKrF3U>Sh&hjPhd zOCCy|THZv-?{dit%WN$1r979PRV>A974ZSG544KNP}xUVCt}_z)|n`YLJ7u5vL?#f zNY*r2Tglo{)}B!G$<{@fD@XQDs~bL7_ODyFq0XV!^C%f6m%M4cgObtKkdf%Ctx+TW z*ay~GulcbLt)t;TwvL4^w7w1f%sK(O+&T&BwoVy|Goy9tNG)>&j)rChj)k@fd>h&! za00YT;3Q~|z#_vv+n0HfKNX z7R)5JXAk6jcNVrsl=o**K;*B?rI)a0hEx=B9j+obOcTp?nEV_fnqW?h`Seofre|U_;9sly?&I0zPuQ5# z9?E-(`F=`0MWEOYb{($DW4k+unV={y0R2HXl^23y`NhO?Vg)GTW@8-pgiX8R0Y!Zp zG(1sW8+^j{T*(CU_{FjkDnDjqtOV1`K~Zl7DB`(^J|{626mc1p&m|W5EAblq6^p1h z8Wi=!fTErZ%4br(EhyF_m&)^r1vI^o^7p_e%=~rR0Oj+n0>$#PEDAADmzU$guTo-p zULr1?$$2|5pXdly%5jpEr(>v%{rg>+i}G%whv+5ZU{dNMW`g2#35xxiM=T%~5m$j? zeM=}`LDYmO^TiM|iFw2VViC9j^9zdQln^V38vH6J%43KQP;3V$QT%Er*0Ttd_cyVE z7=x=QqC5i>^JP*#m-6{UH(18v_7+mU2o&>qbVv$ir!Sfn{v*-WX8CGyGaq z#=hOF0mbKX$oWe9T%cIKo9H2WiJAD7@dh`euM4Xx@fDyb*Hlwj2#R`&i3N5l z2Ss@i(Mzl#vS?+xhG-|o5HpE+!~$Xwv4mJb)KpjMiy>wb^N0n+B4P=#f~bk1`H2o< zCecaEBNh;gh$X}dq9&H=BW4owhy}zVVhOQ=sKKx8V*AAqGl_Y`0%8%dgjhk;)TH@| znZ!I|0kMc!LaZQa;%I(iCNYm#KrAAb5G#n9TFU%JQ1m-7l+PsQ5r@gsr(G$ad=asN z7*kuRM_ip3+ar%yKrAAb5G#n9cv^pA0Z}}~M&7OoR4*})SU@ZymJln5nmRN;F_V}_ zEFcyUONg38nva-AEFcyUONbhrz~%KMW)ky=1;ip^F|mYLPOKnmlBhmnCecaEBf5wM z#1di!QB#lVA!ZWuhy}zFqNctQZzskO9mGtclbA(x2I>143Txf`P zx%`6z(Uf<{`C|t%D4$7m%H{lEF6HxxF1bAYU_Rvwh;F(3or8sxFCu#6^4$lEDPKbL z%H_I46_nTDs=R#s5;KWTu#B}llt+1&oG&=!mU;A$N2cX)2~GFP`F@8hC~t2j=3ji+ zA@j;%r_4%6Tryuf;+DDmh)3qtBVL&y9(>8bd_6o4nF~EGnO8gopjc10oDVK8qI?O_ zE0+%_uAsahi;3mL z+?GmQIgw{7`DkJWF_)N6EF=~aGqRNVa*4bZ)kDl67OUm0mFXG8Tw*@alPx~4_o$_zTajN}QVfdiP)_9SXnDj8q7%e8tt6N7`9!x|UgcOJ<%@~sMAlx+=RD?= z`Q@>EP~M+%{?0MhK}=6P&OuQgP0S$jj#N&}Ahrdcus6POf@N&f@mwm;Cl(TmiS|w+ zZtHQk%!kJdL9x8z&I-$kybCRlm_c-cWi0+gF6Hxyg~VcFIgxjzdWadsTw*@4kmv!$ z_p)NjdnsQ|c|7V~**?S!VlFYCSV;7MWo*caV#=2ju@IE6I^hJx@?1m@(Mxpp5OL)v zT%d?^6IoAD9(&Rw^YxRty_EIJCl(TmiM$W3H!*{lOUx%05{rrDMBbO?CuR_HiTT7r zVllCt$otX!#0;Vn6rU@X^7%wJl^0UJm{?Ba{i!};1~HfD0!6*~lrJO}6TLLOobr4C z)kn-F<`ca+%5=PHMBe|oxeD`%g~VcF?jV{@EF=~a%ZWTsiHjy?5Oaz7#6n^*v7E?X zr}>E)#9X2aEMu!r=2O0qSWGM@@;9g+Vjw%rQ|)J_}zo&EBR=m0~F;Mly_1-m+~&k=TqKI z`9jKjC|^u@FXh>Lw7xTyqKoLALvf!gbbX=3yNMp6m&jHs)9pkD(Mfa>-9!)3 zOJr`EpXeYui7uj>=plMl7Aot>zNGagI*3l9OU=cc@e=p{P$ zDse8No9H2WiFoOg+`jBY2hmA%5#2-&(Mx3eX?~)E=p?#`o`cGE@)Fr0+RsD>(Mfa> z-9!)3ON>6E%%4HbCFT=plNE&NE89i|9V9kyG8R89Ym*E?p3Bch)$x5=q7rIULqctqHJ%X zgP1{d5_5?zqMPU;dWq}@s*mU(I*Bf#hv+4;3Yw4TAd0vCi2dv$x{0y(m3F`$Df`p& zw?fBrCEiKI3w)H%M|2RKL>JLbEcV0Gps+kA?jjZEXF+jY!$o;Pk#|#GP~<(77ZiCf zDC)sW?v&*d9YiP5MRXHAL@yC9$W!JgI*3l9i|8hLh+ZPY(-y>f*oh9JljtJ4i5{Yt zh?nyz^AjCJC(%W86Fo#P5ij;r<|jIcPNIwGCVGfoB3=rp%ujR>okSPWP4p1GL_D%Y znV;w&I*Bf#o9H2Wi41SklD8kxL39#bL^shx^b+wRLuG!V_^VY>pNr@wdWc@46Hh^x zokSPWP4p1GM7%6gnV;w&I*Bf#o9I!e zM=SHWh;E{X=q0l1R6o%{bgKCnWxA8-uA%fd9-^0s7gs9dIHH5-B)W)hqKD`uvN(?S zLEb+tDEc!y(Lr>|)9q&j#dH_ZP4p1);!IY?dYy5|oO8xmN8}Hjam)Puj6F%@>zsAS z9Ddf`KrDCtS!b#!zjM|tv+_AFDB3SxnyGAmqJ!vZDdy{N&YLCXD>&z9CAj~b3*3M^ zwcSK#wvu;r5YvA-7u%7`;}lmXk*{{1b*AZEMSVTaJ7vy3?~-}oJYLZ!f4{U7okS0j z^-`w0i5{Y(w^HsT;tySwdWfta<%z66<%tfWljtR~0Th=j*7uk54w*GBcn4GY5QQG1 zeW;RW!xbJIt$cpGcud)@LLw-u;pTl$S$v$>obKWxcPg zhYJ+b-9!)3OI$TmiFfetE}}=}ab>#eg0dVp(L?kS@hWhoJrkXm zl=<95FVTKg^eeY6xo;@(9-_0HmP54vK#B{-YA-BD#qlqE{`ytHgPU&Yx&LqL;|-Ddl#e1H?Gsvg1C*6Fo%x z1Et(SbQ0Y}57A3x52=2lgXko>i5{Yt$bO;uhz_EY=q7rIULt!$^AR0HC(%vx5WPh9 znC2roh)$xL=plNE>{ptP=q7rIj^C8&PNIwGCVGfoB7365yNGV0hv+4;r?gz6gXkuD zh+ZQ5o#KfOqLb()vOg$}=pZ_YULt!&>q&GIJwz`NuM(Dzb34&N^boy7_7}ww9YiP5 zMPz?d9MM5^5?w?$(L=O9SLSmNokSPWP4p1GMCS`-J{QqV^boy7_LBM`BKw!tljtJ4 zi5{YZNlJf9bQ3*9FL8!ZlFxsf=@?^|Io`brmVsvQ3K$4}4TgZ8Z~A-`|@zW4jZ@0s6ozW`mhEV?zyg}zNJ1_KTZF+zF2=! ze-_V^4l%?U8XB?;Jq)iK-Zp$^cy6#8YZ^xx-!Z;#oNrueEHZ91?lm4ZUNqh_J~sxK zs+pRY+L`*A2ARf~=9re7Hk%Ha&YG^99-96&S^T5?8~eBM@8>_v{~iB1{!9Hg`0w{G z^}p`_(BEQ?HrF%vG*21uIWUbl?1yl45u;a*u$`}@U-x} z@ZsUd!cT=i41X5RBRWP5iC7)6A>wev&4@oEQY-bWG`-UMmAhNxOm9isB1o<)UMjjFn}>Niyrs&%V&r<&gWuH9>YH~MehS8PI!i8ZFxm|bIGjiMUcYZTWw zS>t|GQCrtkH>mF5x)bWoth=P{-ntL# z`Xx0;YLe7CsZ&zVq<%>gljbI^P0Fq}s@`YyF4e1A-&uc5{Ymxb)&IPHQT2 zQCg$6jb=6aveDW`M;cvebhFXljUpPSHSW=PRO9K57dKwk_(bDx8kaZzrEx$?d`j08 zXUb zj$^6gg5w8AR7SIm))^f#hGo2!@lnR&40p!SjIxZI8NXz_$S}4HY1zN!;Fe=rPHj1> z<)xq=rY+N+nV8uyGcB`IW{=FbGiPMZ&n(K^km<=hop~km zM&^@DzpU7-#aZjJ_GTT)I-m7*R(V!ftEg7BTeWTFY&EpiTdk(FTHI=7t39obw|d@6 z-#WN;c4U^~lz8(zmcDmcCQs=bJyE-@RlG7!>%h@hrUE6fc?fOaA9bI2^&FI#@+q>P| z-AcL{yRYf~wEN^9U-mfD<7tn`o-KR6(evG&YkL*)$(N>nHd$N$Q#68@&B zHqIhq*$PCgVrlFvmciDrmTWD{VmnzY zwhOn4?Z)k3ds!#8kM+RWtv@@)2C$RtHCD=;>?|A3F0xVVDjUtdWnV)mRLWiNOM1_H+zla4bkonVqw$~4kxrj^bx zKj|#fOXrwDy1cp9)?RwdI!V8>Zqje8pY(*iCOu_u zNPn=Q(la(p`jZWp{$eAgzu9Q%IU6IrU}L41Y@GBj8!s_FQQ~}(gjYgKT0Tu`&EJ)} z@tIOj{(@N=Syq&C(=5;K-$U|NxSfD@ZEf=bdWEX4)HIf!`v+$;a^G~zDhdE zzmiJ$TIm>HFCFI_rIUQKbc%14O8Iu_G~X$m;k%`?e6Mta?~`uv189q>NAO(3&3K2w zPKBNaXuHV&os8#Jg9WcCtc)x1B0qmTo=XG1{~KPL1zww|P(`njL{ zi9QPX5sUDAJ1}7(mIbQYsqX^3_Zj(Dx1+lK4q^I1Odq@$&({QhMmsnOj=ap+Suh2C z-DPmn=NJcrOHls}@IP&r-!c6MOkaxab{AB)Q)T+x>h?-CDckwg^;FmE)%6wY^$_)` zpHKb#>UzJr9n{aIehziJsoOXHD4wf@`qb_E>h>1r0CZ)(&#!(Cb^ZUh?V)Z5wY{j@ zL){MQ=buo7KlI0PUTqI+vHwF*u1+6}brtPMZI@Apl=gY-4dwV!+uf_}O^sLEr`j$n z;SPezsQ(e}G!WF`_^bh5^k5r5MN-9GAeRkw>e|A?*1aU|YnBtG|=NTt2>nXN3p<|;gA63d;}Ovyh+oH*{( z`3fc}$6w_>_={Y`z5W#MLj<)^O5DL`jI}|2`yIx*fnC1Bdv(B9mzRa*3DDs^+RGmy+h?La6~0M4;AdZ9>+Vl`Uiy<(XWeq zckB)F`XT*v8OPjJEE-Y8##d69}{^=%V`xpL*zEk88FWSfE z?h4KCDy)IeDb6dG&oXukaV;Au<>ENIgM8dS%Kkopb|?0u+79-lC~*&H`nf>-GJtrs zo;l-`{oF82S^rMq3cKP?D6t;*<|u4)Mfu!wiLF2}eXU#JJlu)#E9xCj?0+8p1M=cL z@d6a*4=vi{1}rp6ciO-#%BimoW$Gxp_&cuarLje?1Sk#&k7q z*KbO^x}DVew_Ze>KwM9-7ubW=XARZ6^ro`j>hae4g|eRN`FAnetr&NR^RqZ#8U`!p z!@rAh+@Zd%;2>}$9k=Rsd_dcAWfP_TqyY+_<|usNQdl%oX*cS5U)>+#JTesZit)o( zP@HeXeiY}KcfbuFDf@FV+R6LKdx!~WcOu^v6vxf0?Lln^YP&ds_Wu#$)$@ybUQy3G z>UmWi$EfF}SI^Jt`AZQ-!vw zT<(9=<8#q7W&iwub|{XwM!4fjKJH!_7rlC(QqO1V`Rdj4(W~QIvERkuiH zu!joUftwNk>qh1CEyZ+kK3xck&s&KojeuK-1UDk$P+qW`ymL$RFWD9;VX z+v7p;Ud@Z(b@cOMIpRHZBJKp1C%7e9VQ=)yB7X+^L)3S>ma?2z#}{h^-oUr;PJ1Qg4u28!hf-oQ9WY}d29vAvL2x6iqL z%JvlJ!vvH&F~8U^V!NauFUr%1S)e*jQRCF}{;Too^mj4-5ZfsY<14X$vn>iMFfJ7J zHLLvJ$33$tua1Az@ye^?kdN^jwW#+r#_xjrKTwu)kM`>asJlH<(`e4Rf{oCQM4SWd zLD0KY;s43!?v42;|H0Tm@V5#)M;hFT^S!7?{haD{5XZInoa*-IK2bR@sM}5L|LgTp z#u;MyqJA-66ZMPnnyCNiBJ}5AD*E$D;6KQ}3;y{r-pdV&es>O-=*QW|U|X}YUDf5P z+kGc(cRSW!te3jq)&2VFep!kABHF>L{n1#k|J0f4Do6^tR-mg&Io{P|*u0-72Cm73s-(JNNIl$(R(64|Nv;#4o>Q5}+ zz}PXAt9-Q{^?SUJIDSqeKL1bUI8evwFX{V0Hnrb$Ew(S>)N$mH^-BDq4;3yQrBGeo zK-)=R`QkmD(CZ&qtQR1UbVd04fIFI$AO}KiRbN$d`(c~zruWX zkr&%j)b}mUGlJ^+{eN9A^>h8F^-^#i`l#FEI=1^0)c5Lk zQ9o}zjFilZ_|F(T% z3h)~X>Q|Si&adu2bvfDiyy1vb>-$gf>i*g{MA`on-c#B~wSN`rKf-Tjw7eK_8^$f7 z{Zymx59)MreAdEr(T~&xlV>aal3M;M#rlZjO)c+A-(Sm@Da);n`WlMmVf@hyocLIw z8ZV9yQ7-Bc%Tw1Q66K;D&!PH?LY4JRr}I$>ejjomUYz&Dd9@D4kK{T`=7pq4W>xdgtT!FR}hBUssmbWst%s%8T_B<9PM=g26hx&l~kr*DLeA zn*R*bMZc;}PsMiZ|6k(O^OxHHi+)#}_gVy)bvd_@7oS7T|8MjE|2_TI z5uC@c9gbjojQlU#A|I+VNzm2iDq zkDgSI{|5Gs5l@d}Q=t;BNElHb05z~_Mia{4g-Wz z-8JH=lk6v`#DWpaaW%t=@_R;cb>nBKgzM%(C=Z27EDY0eltLvIfik?;6)NG%M>u>W zRKnGdO7KxoiB&}z$F-11cst5Ci-t<9I?C`id8mY|BGK@1P>H>TG6~l;#Fd+|D3jPY zTu+hkM~~v|tJ9$pbFoDDe5k}`uq62Rp%R

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

`MI5DJv^CQ{_66yrIsg~4G{z1xx>I3rKPzUNb`u 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%0DeKP$N!$4cumO_bK>z+Mr;MhaSC^kyRDP5# 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 literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Memory.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Memory.dll new file mode 100644 index 0000000000000000000000000000000000000000..bdfc501e9647719549793297acb072d33067d4e5 GIT binary patch literal 148760 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 IXGb{$00BiQzyJUM literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Net.Http.WinHttpHandler.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Net.Http.WinHttpHandler.dll new file mode 100644 index 0000000000000000000000000000000000000000..8bd471e74c6e0f2b46464f143a2ce56dbf8cf389 GIT binary patch literal 117656 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 Z?bUi7`L|w}{ZgH7iR;QV{^~vc{{SmAX$1fP literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Numerics.Vectors.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Numerics.Vectors.dll new file mode 100644 index 0000000000000000000000000000000000000000..08659724d4f8534ee97a543e93dd6d3c702fcd15 GIT binary patch literal 115856 zcmeFad0<_|c{eFC<>BFUC5+gxnfc*C{~1{>ReS&bKvWm1rBVGGNWkz@h{ zr_P(LY1|S*;0-Bh$U;feG;NkPdqNUQNM1q$Nt>i0RLM(7($9TE+N5pLCV79q=ggTi zbME!M7Yp%ye|&~J^DMu4X3m^BGtV<;(UpB~Q3<6~62IU5PN`2I=f91TR!&Yp-8lDC zjp}3Bug&{J?250=+jVGgtn=vT$idP6Bc1#EhlfYTJNFHAjvgEC931Z4a`n#6BO?a} zmgV!g1={rXtx8=HOQ^(!|J4`NHlgNs*2k7Bb!!Y2_|i|^3%V2ZgUFR?7CP>?n*z39 z{!Ks+`Id|0IIfMaCzSt(xn_N|x(Rl#CJnnk$!Q_8H^kIiEYfz-{B;A328hLMO+HcH93tmAY}+=-B9f2&HXkqcr9=a%h~7wnxx{APZ8J~V%zuTld(XJ9X+l15W%}1`JNLU9>7|VHG)bXD&iN2V@zL@>$nSM6Q&u05s8#BKz-h?rO z;pVldJ25@v?(ATKPDoDFLo^56L_;RMXU5)}2lLYl$#0+!+N9IJfsqvxsyG*@?#zrr za@~4ZvmiJ*C6E~|1gFe_%!HL+;7}|pIFb?wMuiQ*Q96*>u<{`nf*vS=yxE1IcWg-A zoI-NRVXGnNwi5m2mLA>a=+TNLODsLciKD0edR`T&u}*a19a%5A*B_$^buCUh&b=4^ z?Q{&)w&J^h>Ny6|vKKi6E92qWt4~klS{s%WQkmYwNuINZ2;PyI(c6$I&O>D@f7Cir zzt}PsIalkoF|;mONP5YMd~2a@No&@t3krSC}ZY zv=*kpa*H?Zn{!N?S!%a84VI^Q(?ZJy+j3;g2bSSkBnzz``fhq_VFoNu_hwj@S!%a8 z1D0oaGeXO)w&lpx5?J0y%d@;$6NQ+CpMnJks! zIxHharDddOa~UaCjxtiL8)c-JK*~t5UX+ny1t=rM{8L5>hqjCqPDdFjypS?dbYU4O zRcViBgKVLMv9fU zj1)_887Y?JGEywTWu#bD%1AN&myyE3C?kby;dH+{q4#_k3#il4)E{3EH6_x8Wu=SC zO3x}QEtZv@T~>;9)IA(&!xBjCi`iX8N)Lzn<6KjmgB0n~veIQ`rRS8DE-x!xQC7OL ztaKHm_Tfa9u02kxsXWeAtW_iqf*AA7(xz0IuM0#Pw4i_cM6?Xf8%Hv$s96KW2R91RXS?T6T zo$eyn-R)SX^7xjh9g%LOokj6PYY|s`ZgF9GQr(K_AG3PkYbKV~GrCKS;o{HTk!)Sr zkoe=ly4ml5J6(r$t~jh-onx7+LBwbsxQlw+ZsF+&9p5hF_<9{qEu11E9x!XE zt&CfwuKcINaZ=9I(F&GshdX3J`F(B#T$>Y;HjU0uuE251_} zmdQhtFRN*U#=S}dYfaEJm6pNjn`=7>oc+SZs>eEgGIh@L=1mkjy-w%!`7>r`$?4Pb zlGCT+7idaP zU!W;HeWJnXn`fUst}NE+`;qa$@07Kv%j=pb%=hLyr_W!F=HoQES6?8P9TN8f)T&vc za<4(Hnk_2#GSsRzQMp&5R<(=Dy%@EsLsahdC@OS8m)!+i`O0^Jtep$Jg%gDZ-U6o! z{MB+nNf!iisoU)Wtt!_AT2-zKw5nVeXjQo`(5iA>AS!ghLc0sNGKXEzeY>9KWnn+d zJ8Pn_$XnzbzrU0(!jq*dkGBr3G&Y`aa7NFi_%#dTQXEtx1R_7*#B@|}gnm_gir5;?3d zv8_kqhrqgc4NJYH6NPTC+p+HZ3Ed^uMGosrZR=d|%k-x>4Ci>~Oca)R%N*;zi?FPu zKefDEe`-~^{uCA3bdKGoNYrtW?Ov?#R!kI@d&`|R`3}YMk|P#5tgrB65o`|lvB-B3 zIbbg-h()XoYA$nDcdSU{Qpw(&ZU7paY{*R1x8|2Lq_e%LZ0{vIvNL+~S$`MrRO>{8 zeHffsEn6EC+~Q957Ici}2N5YRHBqQ*Eu@#Ucy(U7*GnR~c!!t9{vbB5eaqNJFQjbK zoUts^+Y;QwPI7uFWOQQ}@QMgGsb>ZrzL)VgtG7km`hP+lj$6+u!L6ggYw+u6&~?a6 zh^=UN>#c>RB{RLe*ThD^)tCIzon8};qseRXkArnI+Q-35+^qv!)Je_-g=Src%r-4v z%S6FzEfi3P=M@O>n*IFpU0wloU;{d=qs6X+m#kX{HlqDHrs+Cl_6RqcXNm{TI;LU6 z8Tn5;bsaJrU^^M!bZemv$1%%mBLJ?rRPW0b-+ak>zHrX5xKf?99TyE<5-~U z*ut@k#Rcn8YvC-^vCun9j$?tJUwxf-7V5wn6xOk5v2~McO+0Z6H{_4=PNRSEFCqm$ zrht3l4`VL^yT)G0CPXTUU5J%!qnC5P0dqkrDfH!+Sq`!-HG3k#`kOf;w`g^^pgq~1%l-o@!jPd%O3yTG*58^?qbR_FVS z&P4R>X%*+8y@_$$5NP9Mw6Ksvl{sBy7FFh2@8YzjZ<=ApA?elka<+)$E?HQs@25F; z&%QOS;>?6val@glfaz&rp%Jw<>RR)twXyXsPGow9>hkhQuSwV1WYy}sM$Tk~S}V;} zs1>8AjoS|k3oWR%Mc3+~)|S@0IJN0Hs|(u^UZIy)NgUHuc&x-krZ3c5Y4$>`7>jMZ zm$tCbidtKBt?0&`L(i{uhE=QY-Z=NoP-~_647FnOt&Nk~!oqCS zI$PH|3$@N}y^GVIp4Ym(SxK+0mse{XQ(1VdzR%-Kaj3P@42N2=NVjpCTUeNbTIc9m zJ5cMK*1I?%>Y1(!I}F}jUF%${R^JzLCOySv`oh~fQN3HX9t@BXp{MNfT zMe4b)%bS<bLI4=G+&V~yMi%{_*UGYLxyr}gq&YOBd z?D7^Sy|eV;o@G@m4v#xGqT)sN^y_*!J(%fGF()H>&cSrVY2xf9xnMq`XPxZzC+An; z;F3GQ&%k^k&jP#(+o>X%X(VWeNM;!cZ#A;iY$HLPB55;{td_JJ32!g5RELr9)*>Zy zj09JqNDy}i4dOjTg68Io2;rhZ(Uv~zgu&?I@qOh-d z$50A}eT_Q?=<7-gQO`H9(Cf7b(UH3rEk$RWwFm)}xU_mCFM#Qt5MkQn!sHKcgbgB` zX$#>_h;WuI0a%vc9-sR z(JZrcpX;3~9=PrU#wxoZLbJGz`yIpkn!78n*r-fa>^0sRcg0?d%FK$r)>~^=#-L?4 zL{4SA`H9LZE!606S*X`}>)eI92bGzHy2tCWJDkzWwGcTSzDWz64(AP0BApK3Oku^9 zy!#rxjIa0ByUX}_XqH*V&-2c+`(O*~UI&rW2U{uR>Mb$LyW$8~7_&&ob51hRdQPi^ zC!TgoG2XALjE?QvTADgqD=2OI@bC z>>^~n>;z+z1h4GNPZC;Ep3ZTZ^1M*_I3M;%yquK3OuD_KJl)(fY8?{rm34t+^%b@szl) zO))<&V!6w)aB4q-m>FW&TB+coY7s^SR(?`Er+aYOAADwG0CmB6`?)2XCm2kXqhSvp2+K0I? zRFSj~b5W=wX%6$OP)^buCY@cMA0`(f zZIGmWnDm^rillv*^q;kgq&ZBw&{|H?945VJEhlLXb44g8X%3UVw8oP(he>x@%SlEL zlPh32mv-;hmoOJgU5ccs{oGJa($u~tl#?{IuMOoSqqRqt+MsqWwYqkaruLptPSVuA zK9rL*wVxNtNk(hO6>J~-Dt+u+sCDfmjkOJ-oMhA*F8XrTxNK`{B#kw?w^~jzYK<#% zne(zSEJf1v%%)II()7$lp`4_teRC)$8Lb`5pj~^=GjsuTn@JjLTSGZXv1U00T=#Fm zYKKJv?x|GXo(kb$>oZl#;$t~+tT&=?%21STVq%t zoYv!J-NKZ!jZQ=%*^(^cD%IAkP4#a&*4+87dmZ0TDW>9h7X{Od-j*k(kZMU4acOIN z?i(v#cTBo-3r(iQqFqsvT_RRxg3b~eC5fe&a5{F%Y zQ|#YFaZN@pPMEA0llE3UF@=Vfh9c&oz@)Qr@0yHUaWI(|lXa;Ol58skZ`IDK%dDb-(i0g2fmJy=~ z<-~M-%b@A@mJw&mi|Ou`LDSVOBW@@!ri)t!P4~8pnBHv}F`e5oV$3k*#F(|piRsze zM(hB^oq(M4LBH0Tb%OJO66M60SIUVoH#Up@*Gf4t{nj$=rq5bN zOn9?Vmhm3#Pn6mi0P`@V*7l!Q+Us(;IalCzktQUSvwHZNi8E@R9;N~ zv<#Z=X&EuS(=uW@r)9+SO>MD#T<$vJ92Y%PYv~A%i(Y9NF+I{UVmhQ{#PmnYi0O`& z5z`wjBc?NIi|ylzEM~tKw4Sc0wRi<$%$McFYs!n)M#Of-ktNSmypCnUB`&DAr@VN5 zdGUD>v0X72J^ZhAk`;E{{RQbUJOZy-Z#lAH}N8ZV}#dUY&|(LMLDxlX)zW9KlJ- zjo_5z7NycUpWEq|315Vsv1jEMQ*rTNX6&hGW9|ih+0+P5ng9NLQhg0e9IEs8&3ewk znK|wH-@RFCnfPr}4sP^WsdR6X@;%F@n4cGM((MOIEKmBW)ELgL^Awo7nuXRI;8&lO z$-=ttWH!b8+_KK1_VaO1WlF5Ob946&zwI->``e~MlCJi0JUCIu-Qp&tUGAosCaj8R zWvADK4DcxE4$qH z*1zoKO1d#JTj|Q?@W}AedLETEczNz{G^{>xr-NoA2)&OS1{M_)i?EqK7uKQcd1KxIB*RYohgvCpC)(u;^7{;j`wj$$=;{sg>x6fNJ3*s0>jM3posy7Brwce3}Xy!ha@n} zTnqyajUfpPGZ(|?Lt{t+!_37n6ww%xz%X+$j7v0zBrwce41*MnAqfmK7sH4}V@LwS z%*8N#(HN4zFmo}CWi*B)Fw9&G0~?JY2@EqAWfnnxiumA)YlE5%?F_^al3`t;^xfo2h z0frjM3Fg(*3lE5%?F`XfXBrwce3A~q3-4CZQMfuZL$X&sk>J*JZU`aSdz`5YSrbA?_8w>ILe_>5 zlD)^7uKQyw?$#NnqgS!H>q09ed*$m2ZbdyIgkZC2qD>foT&>rFNBcnJ}6J-)wMe zL0A<)NcJ9Qx~|~Xf=kb;rRS|BBV}V~g=FvHrT+G%GLlPKf-ZV^C5_`Y2u`N1c3S-;QI((3+ zjBUe;xWG+uY#Ua_rC^F<+pscDno}IxhLv&3o8s6utc(-Z6vwtjM3Fp|}F zNCLym#pFT^Nnn_{7)G+%4oP5`xfn*W8bcBoW-f-2tj3T8hM9|DB&#tbfnnxi7|Ci3 zNnn_{7)G)hLlPKfF2)NnB!OY(Vp>8BNnn_{7)G+XE|S17n`~^mr-s-T7_2Li=3oH` znnMy8W^R))ZwDBXz%X+$m~I0MNnn_{7|fCZh9oe|Tnr|+07DWOW-bPEQh*@|3^NzQ zNLF_jL0G9y{t%_M;72@EqA!$?-!Aqfn#$;P&OYKU!tsT$h?Q#G~)rfO^pOx4&Hm=z`6 zvoh=+lE5%?yO5Er?n08lFq>>_yQg|=yQg|=yQg|=yXPf|ZTD1R`O!q_&nKE<(ZSkcQ6+lH0B46$uk*~<{yhLybxv29q{%Mja!mAwqHZCKgM z5Zi{8AxwOkV%xqNVq0LU#HMRw&YHSNk)z}u8sZg!%rCjT7|H5OkR&k7CL7!K)ezePQ#G~)rfO^pOx4&Hn5wZYFjZq)V5-Kp zz`PW(ZC?$sEihGMTVSfjw!l=4ZGov8+X7QHwgskYYzxdw5!?1vk8S&^$F_adW81!$ zB)09V9^3X+k8S&^$F_Zwk8S&^$F_Zwk8S&^$F_YhNo?C!Lu?C7)z}soIE@hxhLNnE zVo3tS?95}^z8Yd%VC>iy-_V2ig%w@D%b!n-p$)ls5%+;}i(6Dpj~l9z#|^{p+`%=0 zL!QK+2g9%I;k#3+*SueC)LG>+v;HGq`H_|-B!npJZ|WBA@?}ono!~nF*>QbDvhDU#n4H0 zG2*s5bom3YiZmWZ#lj>r`ZFMko zQeBL=tqw+R$vFKiZmWZlTQUwt+*Su8w`3fQxUCL`PO94;aa$b>om3YiZmWaoD#1`v zi`(j$SrD4x?iO4(O5EW?Csj8`V<>SkbW&Z6xUEiIbW&Z6xUCL`PO6I$x7ESWNp&&e zwmKL(sV;^Rx6O1?T}-WRt5a2XXoh=saNQ_ztD=*ttI`;8TOB)eQeBL=tqz7xs*4e~ z)xpq7bur?$Iv6^sE=Jr|2SX>-#faPLVCbZ}m|ERd$BaB~=wCS8iPUbZ135RW$%jzj zcJi7igaQ|`HVUDjmd6d9wyX=Sa4%E4tq!Co3ZcMl%lasU0vB>#6hcAO#|@o^oFAIN zB#X9E;MTGs3ZbCtom3YiZmWZ#lj>q9sqD5o2DXF-;M2tdx7ERHEx}MCfB&|`XN`-`nm7ZWReRs) zj%3`w&fwU@T%T2A>Pj$_=yRzt^iW+pl(-mrs4m9xS+yN{s4m9xSv7_ps*ACFR*j*D z>S8RPRb%L(x){r6)fjrHF2?d%HHIFli?MuGjiHC?Vl1CkW9Xr}7|UnX7<#BK#`0M; zh90Vmp~O8G^iW-l<+Ex#^iW;Qi}P8v8G5MNjP^$@pH*Y%p}H7K+$O`*h+rsjF<43? z7)o3WJyf?YN?Z&*R2M^ui=l_=VkmJj^iW+4B`$^@s*ACFR^31JP+g4WvuX@IR2O6U ztQtcP)x}sotH#hnbupIDsxkCXU5w?kY79M87i0OX8bc4&#k@G5RhwB5n!%We_^cYU zumnSidn)Lm>gH%Wl(-mrs4m9xS#@3XP+g4WvuX@IR2O6UtQtcP)x}sotH#hnbull_ zXVqrtp=vX@WFkJR#?V7`F_zD&G4xPfjODXx3_VmAWBIHaLl4!(SU#)9&_i`Gl(?sh z9;%D6d{%9T9;%CZaXzayL!VWf@f}hM+}6-Vbs!YDkTp>V1uldxs$+$M+I?2tT>7lq z3MMz#XVnn8s1Aezw=Hy09S8+3gf6NBp`b>eRX2n#sy2a1*7aF6gf6NBc@aLVHbECv zo4_>f`m7p47uA8hIGv$X_6iTJE9^|v2jcnY5(3a!HdnacNL!iu=kO!50MVP%}#r}+Jturkhq zQ~Z8RSQ+QADSkgDtc;V;6u%!6R>rw#ir*Z za-X$96N5WdB!OY(Vi?BiiI5~P%v=n^SdAeG3^NzQFjiwo0>jM3FpSk0lE5%?F$`lh zh9oe|TnxiljUfq)1h&riGZ@Bd3`t;^xpo-FY79wWn7J5+u^K}X7-lYpVXVfG1csT5 zVHm41B!OY(Vi?A13`t;^xfq7A8bcBoW|MtCW^WD85CJ2Bt<%j|0D|U_1csU0WX#(E zh9oe|TnxileOM%cVdi2mO9mK{z%X+$nA`#kNnn_{7|cllh9oe|Tnxil-5!#_NMP$6 zJHuFwAqfmK*ABy2jUfq)1h$SHhOrt$5*TK#9fq+QLlPKfE{0*O#*hStnTufj zVdi2O#%c^nV3^f%GsZbA2DaJ^$-Ol^Lj=r1K;7mn3hj^thM9|D7^~|d2@EqA!!TB3 zNCLym#W0N37?Qv+b1@8KHHIWG%v=n^SdAeG4716;AG5cHXNZ82z}7hx3}bb3NCLym zZ8F1HjUfpPGZ(`!R%1v4!_37njMW&Dz%X+$3}ZEhBrwce48vHBAqfn#$-W4zA-eu0d4_0j^=F9oR)2wNeTzw--D+-+-8(*%r_rJ)t_g8Owzi#`=SHow*183Vfgcdcag#UMDmf`!JmqFBu z@6fN&!)5GpVhnes!(HWYS3BHxhr7n%b~xNlhuh_FyUEG7PJY*<6g*G;9nTF(=QB4R z!nyFPJmHr%Px~EDEahE}lmBDpSP4Qk%SQ%mfROWn$zlQI4?)1OC8h*!fMTPHpN@dB`n=$qfO{5~5 zIgeHUkf&Xne8_V}g%5dJwIMD+ZO-TWAFKW)&ujf-ldrGJmpoTj_>!m8mPSyb6b=tT zPAama^QG!v^X#)aQ@-Z8uEN(mrNVkdIQ~CWil`|S+1dI0X};>2#vhlmzSrbVB0aao z`6aUQAM{*irVjmKPx~QTf1Trojs^4gcQh;&u9ze(7+F&(+7~RWBrOnPS}?N4T4M+!X~D=E z7*>kF8c7RA*1(!W7)c98*1#|<0&65K7+C{r31K8H7+C`=gfNm8jBLxav1_^FS)-D7 z1Hz@v9hH2XL3bNT-x!x1{Vh=4yWIHEFp?IGtZ5qeel(1v1tV)BrO6{%s+PTz7MX0F~$cc^q?f^8>0uRcb;_bo*TkQS}?N4+L{nX(t?pS zu(ctKqy-~e<_It~p7sdVg~mww#^~1S%_w~YJt2&w1tV*kwmyWBv|wZn?7R?0(t?pK za|D)k3{<%J=R zq>UqArb+~G2Qj@NvgBGV_ELMX`ylp+JYD1?%XKq)fN%^{Rz1WHkv zBZ7Zw9Z~m9#@d$98p&lPKDqw9sqV|IA)I6xIK@E&tgrD;!Ct_1Q@R%rTE|s8m3skU zMYy=8dM_ZX442hZ?*)XFaVDPPy@0SXPMTA^7a)~|Q`{8q1z5Gs#j#ECUVzl*%xY7- z7a$du%sW%Q7qGIny#NbVCsUiA2{EGv9tTMaM%K))jQF)kMHeEf`q?n-{`JS}?K(#)x0Hjid!5YhaA{HH@SMBOAD6)(#a$ zgyj?VRN4#hjnO};xEEl-7TQf)6gG{d1tV*YfDykw0+JSttbsA&*D#V6jI4n%;@2>e z7L2TcG2+)Sk`|1tfidFOFp?IGY?>59jqC;Z#^{h$+zYT^mG%NGSf#xH3sz|_ zz=BoU3$S37_5v(erM&30X++KPJt7OY3=)Sk-v&>Be#M%Ik*^FkO&3r4og2*-3_9l`1M0@j9(a>cy> z8@Hi+mAFRASIG?k-D4zI`c=|fuDBOq<1Q>;<%`%0Sm}7p$1CjxM4*-S0wT~#djS#X zB=-VVmiXiq_X5hmU%tJ7-YMM+2(9C)oyxs{up(SsQ@s}uR)))Js`moI$~Y5G@m@e! z87Ivt-V2b*!YOWw_X4ciIJ-^pUVzl*%xY7-7a$du%sW%Q7qGmxy#NbVX)nNnRoV-% zV3qa)ELf$z01H-WFTjFT+6%B?mG%NGSf#xH3sz|_z=BoU3$S37_5v(erM&qiJuwawl3-FC`$*H&(V8JTw1z503djS@#(q4cCn<EU$4dz{XuzzRDM|7qHy%nvYl73y44~?FB@jmG%N6&`ItE zEHClNEA9o9fuCkCU~5ih<1Trysa;W1?&$@gdy>eKL_ z;e~kC<~DpedvwI(_OqGp&Ud$~grU=yoL!=ncXoRIAnv@^06)yOvDJSx`nOGdui@-e zy0=NCi&%N|XDI~zdt^yH#KeBH;p?d}3?Jv=Qg?H?`!e7D%(4A~&!SQV%iNnVr#_&q~>qPh?6efx~7WgnoQo9w<+?7V4I)@RDBLH)pdVug

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

rE)C 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%0D#E?oIaAwZGAXgPHTQ38VhErRGn?t#?cn zm7lIh^O9=N(Y#w_g;gzOuUBQWuv2BZ2EbamE9Bn4$4H*K7_?r1e#4^Qk(eMtzvsZ= zdU+plQ(c zw9q1%v+CE;S@lbG_F-a>RYvw`30fLC2PyLbbT`yxT^ubs){N-KRqAqho`Ko{yM^sp}&mHyTD%s>~j2J-0%KlyUq7KXXDRP z7tcn*^~T^l&k_+^sYVcNWegl0gI|iVuNDcdz@zkd)7 zQ!*51)s!s?=Mqr)>!=h&??VrH3f6E)_K-tt8=VYCr=n( zebFdhmteiWrN~M&^INS3pKNX28?#vTTOBj_IIbz~!tu}a86W1Ujb+J9q;<8UEh!SCbV_X z__`qOCAX0C5uf<2{1ueyCd5$RaL97fJhXyV`mcaP_tRdKo5c7WcLJzyK`*?o0ck_l z?T}CN_6N@QZhx1YCqYuBn{t=&HAa;^0M}E6tkGP%*SviWsooX+`LR%_bdzvw<;M zcy#!UfqcsOWXJb_bwS#c$JIzpWj?OLZ=HJvHFW;y;$}Au^`7fubS9rxUN(sD04Ob6-Fk^TduX?zlN^3lVv@5 z8>KoA+Ew4{ZaywK+vI%RaN{d&X(T-tFZrm>g3(#r&{UGIgugF-_h*J$+6>5~){Y2m_Tx%Q_C$-FP#ap+^c_FTLVNJ=k1|6&=oolV#VM=DSo3~f6aHcVQlTB*( zxLP}Ap|O%b@5eXB7c(D!Kx?Y|;bGI3^l^PJ-R`$e!yBt1YaHm*_aU^QzW3*u&|}dy zDVM)1a-7f*>ZM|(=+ZUD;9re)kNLsGSmT!d&Yui+0xrqZxR-xxd>>5qTN~O^mb6=I zCqYszkMX!wNMl^&wt5e^zSGe@YiRS$rk$LGR!XtyXxr6yJaVb6$|BdsD+UA{=?_D? zYGJ3ibVG+39h~K~Qjb{+>(~WZ)(n5PMLGp>mGjP#MnjLgX$Go7X%l)hYKn$Fb5+3cUE{`xuQJ$SsDG--gP|dn<>{S9yE9PlwRK#MgNN$- z^B&`S1!t-iYu4GcqFc}=Dt01zEA{op0X0qI033Hz-(T1~(9q97r>##{9C}pWw&RRc z>)yn>pVF(XdjL0ciVt7>b-29bw%Pyv+Qf*WMOQBO!T!#czV>s}H?6f(rkT_p2^r4E z;_#$O^*(C1rt$vG0jKRedt8pwUcKYitpVthHOA%DrcQqXpVrWXV^=kStTlCC6tL=^ zXI;1`VA{G(Xf0IIqY*>-O&V?bl$#yjW7c12BlvHYhu__I;y!HYt=@P0qphf0+Ui}3 z`s?^UGkw5QZj1TcrA9BmtTC<6(@&e0D{q_W^ESF8fJ(O)?+C3?(n9NVq`ne=g;r{e zPkbTk>Xi0Oh1L?-hKBY+`Ks^ljfSqlA13E(A+zS=o3^H8UUz$;mnIsi{`0r#g|2XW ztC_oePH8=X`l02v8vVYObfq)O2w7L4rBQ6U+YTM(+R%uZIZn;H!L{)lzcc0A=X~Rv zhpi5$6+J&-9WA}V64WU59f%sBzGIMIwd@lLOaD0m^ zP24Bl7{l&0SOH>m5-uNqXt-Fn7<;kZo}_ugZ{7PWQ(IMMljgs`BlH?$!4@T7LDNc!nw8GtfurSmi6UvD%uw zh&EfxGWSPQmg7rInIGrc#=(afT{XMh^v*}P{mjK~ziE+D)|6A@J!O>_g~O^;`p8 zX^g5mGaGyU2-AODJ;2NZu11@vGo|0}GWlJJI-_mktIN&EvOiil&C!QwLDbg*TdV5( z%%ywbDx-~I?);;V>svY8#JJb>b-*UDa%sNVSjna6)pYdL|F#^*H~UN@^Erc!4z5Dq zqvPlQv@|1g3nLWG`R_R5p}uDQ0}hwf&lulX=y5bO=8jpPc-_oqU-Fr_@4NFs-vFbb zcU&$XAg*#LK)LP<3C5Ks?5)CHD&$@#+bU!kaSze zzOW%3V;;N4%!P{Fniqy0(CP}URd<@6eK4$veRs$j37=Z$)0m}dNe}C1dW}2K+p7e3 z-)yut&Go&8)<-ot{m6hb`d{R(dDv)0)k|aphwPX&t-Lwb&?l5#? zF&fbrja=Wa80#r^rrQsm>V{tF`sPFpUD(CmM!%(T1DH3eZ6Uw6V{xW*I#8=i1~Rv~Fq}+fd)MuQ(L#u4?ECwUerGZi&3m zk9QyqvTlUtJB!TUu6eDpB3Qj-tX7|E-6Rrq`A}O`);mDJ%<2vOQ7_fjdsaojhqcxA z?&{i2K1GThq{_OtQKGUci@h)(OoWm_I4a65r>-dGlNoYq@Wm&`fHH zJ`J(@S<8Lj2IfL@rD&Ik;H10%dqF;GrF@9|Ajmck^0Oe9VGL|y{UY+5;P9zJtluT4 zi+@oG2U~CZ|B%#YVV{W;8g3C8k@eCltJ!@M7Sw#u`{x6zL- z1vEcgrJSp*&HlC$t8cZ5wZ)GqIAS%&OhEa3=kF%SR#!hi`Fjd-{*8vFJaD)m%`jhQ ztgEbkfg=U^`r0hQ*K3Qd3O822z_Efne4XKQRsh{NXd+ImD!j{gf*@D9NNwOmK^EL( zVqFtBMUWXz>T|8NfgyqnbT|_^Ly+XnCf3>j?jb~4D_nWr4vZA!CpYh(2hJ7!{O3NS z=RJW@g8bszhCfGmjuC z_xQ#DVa+{%a*iOaePe?c3Ubd*pCA=LYI1zA!+ARtv3wT>YlY7$m*(Q&HG*9KU%$jU z!Z$8>qabg%$mHN0DX-q6HTAi^DZvFo)6wBv;k!Ecv>;z&o=OR;tQo;IIn$8(Ueq0f zyetx~cVw=z?hC#wv5q_1(A*b%Q)pgsB&@RL2R}tF@UHlqnu}`dzrnA>HXa^mVm%Cm zG^=Y3&BMWOgl5GFhGr2EYHZm9n$s$4QE;22el=zmlyESRpGD@6Zpp^_U1&O^l^{(& z-&4WeqK%`RT$}>L3X*e`TNW#WMRd{}6{aMRizd{L0MM;SibgKr6P(o(+@YkTl( z;gjpivpu*~kco~wGkrUPJ0xGz9x<`L4Sp|tcDpj~4E`XozMi0I&Gh{k+$G2lm5R*v z{TkdWeC|X;dC;K|AHgC)?iryp>wSBI zNr|<XGr^{gTO4B$rO8C?{G~fDqhNcV6 z(9MSCu+XhS^R`QKL}<1k%U$G{(4&(2w+nKF^RK>vq31)isFi5hG_6xZYlY@I@zMetLPo&DaCe&JJt{vfXkoz3uB`2-H*8EVnFg5?31B9p$nwxELFQvOL6KFVJA@BD z!z@S(|BImq!?d4M&^?pp7XM43#S*LK_a+x>LQ4fnIr5D5zZ`l>kd>~4uY{hKe4Vz& z$g?i=YB-8q?8T}cInVK}4{emRTDTIv6WStq-}a!1^={}ZiFMh@Cf2*59YS;Sg+`u_ zL%xUwOSliCA#$#^>Owh@2+~TUN@-eO0b%JJH`nNSdni|sYS+eggqlWJ?i=1VoWBh< z2WQj^C#~1~--iYW%_9+A^FGi2Lugi%G*`^Xv3|p;gDTv0I2%{T6xJgX*?21kNHxwvZ4%_ab8v=1kWvS^897ztdk6r z(drxIVBymTGi)M11a1xY6q@n#4bANEQNsBZ%*U1U9pRIO^T-nn=X-&W^RsTOd&7ez zR-GGbZune@m2qP&0K!;*Vl{!B&+{(`kItQje9gaIQ(u_(-|#q*@FJ`=lcrnX(eNzM z^DxwRA}#z&!jB3v$wi(BFOyhLV?UKNg90nVD}{3iwVOzlwKBX~Xx_%CiO67Ub@&HC zY`45thkp?y;z4#vzII|4hOw#4*(`IqM6wQvU<3o5oQxW<&%y6_=_ zGTmG2fqq;6NED<<+CH)LlDl1h&&kF8SW*>Y?sgOaBrkuZ1uuyLSrQ( zM+nl)MOrxs=Q2uD?jW3}DALbCIO9;{Cs?YHGEE3LVPT$0OuX5fJiRZITXn(1(u`ePG^J!x*R+(7e5J9YVXrCFYMcy}& z#uDobw@ug{IV_(gc%j=S`~-xY?|#8>{wZ>V(9Cpcb^)Qr4#N0H<=GYKo6nYZDfU5# z;62R9Y5DWu)=bcx5*Z@M{aB1JG$RFh*MnRt$ZeNoV@(py-4D#hxMtA1k9rzO@Hr#(C~ zCl-B1Qt#+mR6P2ul=8uDo7ph>n#fb_mhu774I)ohw**r_Sb{ecYFcA+Qqd12t?6!B zspyA-9F2R&D9`&jmC?@y>F?NTmDMTweg0JBYvkdYiz@4&=x*Wsv@6e{(NF=?x)kS3 z$mcwNk7!;2wNc*C#Of6-7Md=_201d?uz=Qkz;caMWgQi5Uci>E)RAXU;Hc<vfDcYZmTRnPtAF(90$O;$?N3ht!qiW8W1SE^Mv(W~YpfP|Cq@U0JiXlhYjAX| zAgvvlugV!3y+n{nBTOwgBRW}-?JG>1FeZAxAlJC%b#e4zAei;z6$xsi+NzB{ClVI9 zrE@tD(k#ch4yCy~`n=FQ@6ucWgj&6;KxH1Ab4Bz8$;C%*k9I|LtspI&9&J$Is_5H- zY~H4^23uD}-ehQI6ft#b-1(}6a2!niAU?Hsq!xU-nzd8Do@F{dS ze^zjF^f$?S($(r6(O4nnS@)T-pZlUM3aOtLv4cU*=lSo8wl1V4#5Wt7`B8kp8!}JB z$|Py3tVe;+p5MTll_JZcU4-VWmfAiy2ri2rT*#az&oi;^%Ik)-ENdC|3>d50x-YM< zq*dv*#tVQjRvWi}Uy#>NV!h$k(}j7*NvwfxDL)8=xk$P#?Spy!C8y`OEz;t=p~5HM zZGRT$ohdY%-PD%>p@cWMCAchagmC@_`_+_roBwGdkg&Te;WK$>3o;M8RHPYiJ(o8| zwDD=4=6yurb9v*0W{XpIMg-U7r3T8*XqP7CAaA-fhdapOE=@lNxynV3agbeZE`~VBmib2J(;b9s@2ZWF z4zkll&U26gcbs{lgIwq$6CC6bH}z=_a)q1v)ee$yQ@_DMxX!Ps-{>G*=U3!a2f58n z%OG6mSDH^98m{vz^0R|*RbP>ULM;of>MPRKLAtuJj&u;N^D9lYgDiJr8HDTnN;BJ` z;X1z}uR6#UH`Y1_;mW_#{Nf;7`Bx-T^s(6C{XGoQ76@Cmf$j{bvgmWM!$WGdwW+c? z7vZDHs7>c%{$7ST>Lu2}MZXDBjy+T&vqRmBqD5?NHa_MTq{`}1girc{bK6(5NI?-> zl0$cDEX#LTQCyG-Un=J+>+qsRMU-dvc_vohqRvGe(@tHWGb* zS_6tk3e61cMjM(jMeLit#0dZ*IgtTHVXHN5DtBKCUo z(HAgQm31BvYU8Enlrxbf$h&1V>ZUZ+R&~(}6018_CN=* zy&*`kb!8vJ=Y1etReJziL8O`E`=sbp;e6=;MXIdNi-ri&9Xl+fIVkVTqSFQWq!sNI!1Y>WmLkP{HDd-W3+@VZkcu{ z?jNH(4`9Sdd9J|f@Bra6$*Cz7zVhNzVwCVmS7VjMXG*NY+G;Mw7FHGy6Xe_{HLWVE zdvT4VKE^4XdwkuCFOAX0PQ(a=X;oXji)RW=Ka3$&8-0N=7h9GZ&G#+7NsyB;J|xYc zKvnU>BF{6A8*Nk-FP7B%I5n=y8d$sxYnE8A`_srXr1%S=*>Z>Bd`9tB(Z-_tP3l(^ zw=bc_p2Etl$}^+50}#tP<84i=+L~QF5bsqLTLZAeqBM6pNUyULIW~G{@gSiY)=`n1 z$lb*!2@-R4xVZSH5^A;gA%@TL;<=Lgi?J-SpoAKmfpHzvs)_g*8ri$ z9>+;Km1j-ylO@wY^A<+$io8<1LSjAZmisHk&kFLGhvs>aF#kvs>($~{goY;sl+W7Y zwI!@6JViicj_=Llyg23InE|DFr??pJr=gX=${Uf2;&+Q61)o+dU zRdJ^{wb2K2J%bz^r)9p`T4`E@w-z5KoX52^CAhnIsvud!*ReqU5}6mctqtz`N>I;p+`4l}taXCD-Z;0{>lW)E z$TKd|Gu9=+GCjrVn-=CB5$ly;>8x|}-X}ItklUSlG1J#KHc?_7hP`!`X~NepcCXOf z|BjZ$LGgaExk6LWPwl5Ta&+uLLAZC!SO>+Ajy){MX2%j*M~;m>mY_vVa*z~|B|_8A z=`YrVj*Tr9WQ9ZXVEEYB3PDz$sq*}7oe+CZXa-=&IPixgT^AV zLQ-%0rXousp^}xtc`VvzrBFjpS7Me9K%_}7r3eAKkl=JS$Yb6&8=aVipoIfd< zCrB$R$B}Sj$-{!|7^yVTQt>kr~ z`FWY9US<7RvR!E2b&+V?hcP)uaa|4PvUnRoGUE->IzG4o^L~0?gS3yIE;MJ}XgGI_ zj}m0V7(>%JKDGg^w@02Lb9@KKGeYz8*@mWD{3_vG>d;^Y6u(}OGMDCv_^bv~k@_Hv zQdl}`qJ83X8nDK-bjlRBg2eA@z*?D8tu#cI2~DxXhsYB`GktiL=1D>9DOuzxL3|!$ zrSN&m(KGoxBgj|}pH&j;I_&jRLee}dNXt%HzvXdvQ}c92Thu^-V&{z=-5~lXf_B^`JJX!WetdbEyyCb+y}{7p^)V*zcD%bFGh98}@m>w*g64t$n0(ps!yD4(haY5eVaNMnw2xJEN6!oM?D$cF zEUGbSO^R1HoCcaEjVy+m-o~cth+5;cTJHd276hASb%W_IPJO z9@}MV?vD5|f}HNA^+WtbLC(T2bGq2t6(8M*wlT~pL9`_Cae`dzB75VLC02=>({SQS zL1wuY6-itt$T~-3{i6Aa+XY#Ou@=+1AyAOGN06A?vXvz6m$arm9I$@J9KK1oEb*8i ztN->3Qe`zwJSWHuq)wVDt6gHF@HxD*K{_RV5t}~>iDr#y&kfNFtAss(P^#!IvC@fEf^5MXwdC`YH6!t{#OjH0rgEN< z_(C+_XRelDm33X>C!wiCtEDtE6MKc`uJ#7GBXK|zrZw8N!}}AbG-0`qJ;~5KkQgP% z!;4HV9!Ol+WEx`K(+a1m9$}mLVB%to6^pG#4zfP?p~SUKINsO@J(K27Yf<8sCR0Ik zd~=O;apB^`e2KNSg(4esA4@zS$RdYkWA4(#5F+QqNc#@q}gK?CT|g>+(G=l z!sLAtYZB&Y%BL_nUvhEX=NfBOUM%^zAhnknnuf_2o3aGUr{i3llzWrptAadyx}j;6 z+$?ELyhi!FV5O2M=`9_u8E9GN^yQa=>q1R@Lb z`X-M9XUry+7#;RY4sOO0>^j#V$0bJypB8Q@4@jOb$U&IzkWZC$Lh@okMm5z~sk{@D zmq=QtZq~GB=ADw9CP*CpBV%2aHzawZAeXuF3{BqMjFxb;Q(ht8(B%Ei*yFeRQq!8_ zJ3aYWGnU0l)M)a_^$kz15I(2hZDc+txmM(<8?Rd3SaeSE4WT&)D-0@gb@GE|oB=he zR+=hnYBJTFW$~fI`Llwl$%C4+cUbqU#;UfiNcL*ZekbWz3vSeMkb#c15IMFvCG>q^ zI8RUZ7tXz18=H|FBFKT)Da{Mk^~qs^9PP%sHCZdjF1K{QIuw1=t$&K?o49z5_ zk}_7;@%?!wsBWwqyx~NR9uwBF)Qzm!Vdz9)el@l1Yo8qjq8GoL9 zVf%=AO_`9e56NQTyToDz!VVEr61)^FdvD_f23u6m6mFTRCc%!AbGO7vvg6#>IAv{S zq0X>P!VZ)63ox^w($*1zn4C_eDS326f6!wgFsexx?@D4djhHssQEhXl;8LZ1; z(z7tjD9(~ePMqb$^n;TKB4>qn3CaV1MwpevoGj*~T2HAmvS{Bx%tX5ssC^?bEuL~x zy+uskERx?L$!G0;fvI*86Exf@*ZW=^k*?XJ=#$p+ustMa*AU6`%CG~J>dQYcXrE8s z{d1gevM`59&NKG-W6a91qaCGrJ|AWR6ok3-dLlI^2(Y0mixD#TFH3moyca%fxK9TMIH*h`CUTEsxAql2bl#pP1AvOe12-W?>qWWNVe9E0vf_S>iPH`JqLPw#(Ho za7|bX?xrwzdtb-3*U7+1sp0?J9^(E#fn>m$teb{Ip*85V}OTqf;Z8nC@p*WAK zvi4N71sRC57vGAaI6K1DP=02$mK?qh4C<<3d(4Ur%!fM8%4L=$!%%!jvu?BLud=xVUgT4)GAB$}@*k0Wj zb0e%b#hGoVDj0MlY+x+rvP|Vs657M$93c zf(u^|i)EkjgjhaX_+pAP(PmPDvW2fA#-~i)@b$!`DpMeQ3zchmF|M!pY!TsmSdPuq z2`UnPkeG#8n4_fKqke)f{F7Lk-|aCW)%e1Hq&QFM3>zPQgP1+`iZv-PKKwQ@PX@B~ zR1+WmC>Cq^{k+U{3Q7o%j>8%(oLiXU;c;YT>=S~@g;$8f+DVOLre9En@FtY% zCwoPYOmm8}t+2$Y8Qwk)>+8+7Y*pB84)08<4n=dEVL>&+yOOT^xtM{y#v?Ns&OUJs4gviq&CKvF z#N<^E?G<1!)$S-+%gjLrbmdded};U!()HAR(Y`c%4drmJJwEpfTphk8ekoYBguP-l zW@GqKVtUl$8bsz}O4YZU)ceNplcc?}o$5r;#_+F5*9Yo-Z4dvAm?6VO`_AwOBxjtx zcaaphD?CR6wx4|J`+Xcw51FcixjS|rE{p^)XM4mI@JrgXj&+~0KKfTS_ z@IDDx_Sxy8>jE$+C*xVJujPRk!uutl#g5rN(u6=0ahbH=fOjjXPP1i?Fo_uFTB67a zjA)XG+T)U#3CI^2(V61pwwY8@B%*sFYM-iW#-b6=Q>u-+sx2BZm>Jz&X&SLJ5zFq2 zVeOUjrA6$cIDO$+E#@aBU-O6)#QZvxnbP?>L|h}LmtBMVgStojo`|h3#+F<)U%!al zNmz=d_6|dFVDctmoLRQy8u}TI_WQa*90m+p>|s9{{f0%9BIc+)f33A%h)AJSKc`D?8W~ZA;_S3n+1CO` z0fYUkhxV^g5!I5=V*6~b`-{M_5e+F-F?-Z%6*N8~ol-ro`)t!9I#HZkc8|-M=cS0} zsa)f14=pM1)rc{apARoez0Z!ANpT9>?XZdUCNhwpj^9X}EfLF!DWc5Yh?T^&R_4Qq zwZyno^1+Dp#2nB#ry|}Y=6hu>Mrkn4f&gJc`&(OhMK4*k-=I zAbAdm+(~h^XsR5MyNJ1`aq>sLOJy%;dwOr@D`+#l?2&CrP)y`+War^_U%n8O5NVRJ zC9K#lx)LID6SFi6Q;3+^u#e57Xi{WcGS+hM-3}8^an6kwrf6h|WNcCAd)ocfq}$B! z5fUdOvLvNCsiR-3$g;`U3ohHf@uqw|BWsebYj84+wGWEy1PpvOYov^{VvlyTI~v@O*JzkU!*vt)(4nuVMfC^1A^X(T$_w@L91gHF}=<9$hSz&yD-+VoI}81oF>mmoI{cC zP@HFKNu0C5pbh;kInFuP`N)05tgxAg;Pa6m5OX?9oc$!{Bk0|%>+8r5Ar71;Su1(| zI`RnFd0{X!9@q8A>y#>K0PBKxoFi`oV@!gUv|ZF~%JYbhC=K6(?i%GOnhjb)1sLa< zc{a*h)D6sZ=!48W7nM+S956XHNSxtO$;7OEU6@fe^ZO-X#sV`D%047BfaI(Wo)3&0 zm?&kIMwKDPWML{64S+Z|7jmj*!Aqm65px!H@bEV;_>HLQMJGUEc7Bj~otQ1t#qxWjmJqYg&LPHGLCi~8nDwOV z-e6AkwzV(n9b&q`OoTsVwiDAN3-c~94U{<$wTGC}w&c~p2cte9Ydo*kI282}F%6VC z9CdN1{F_CMpYahL}%VIB~ur=G!dH1!8h(s-sbt$f^^{Q6Zp(AC0;~%;gke zK99OVspdUo$-h_^qwW?R4?SfJjN$l8HJ74(qg1cAlT_bFJt{g8dO=4RMLEu$sO-hC zCHP-<5fkkCH7aMZ+z{sicxd>`wC+a*7Q^0DzY!6@Jc!Cm%=b-&G12*o1weut-?5xz zSGMSoV&g!v1*aPDmuj*_hZe&=*gk>dAQN5;`&Sq6U?om?G3?9jY^JEm9vw-HuQR7A z2~0HQdGRe~S^yJMESm?~v&}?@WRLceu32!-oF!+EjwR;Z*<7wvlOGs2{E7XInck)y zFv}o%GI(+P>tr*o)(#U_EH7H)71o|~Sp9 znjhVVQvC=kApE78g}`8{C3f%5w3gV+bi40lT5kY@?eLMd!{xwWJDfXF?6V@eUojU5 z-3hye_)B)JiXK!9$KEfui>_7C!>FXL2#%9!t&V=7nA;m{O4tm%KNvldn5|PePO8}$ z?I-5xCxqD?J%Qwuwda&f>+R^t#1vG?yP~HOb5O^_z0uSEB>6z}Oe#eQ*hj)&s`)Vb zWnz|`=W^|E9gUt{3`gvAn58++(dgHS30fn}n?>dmb7QhFu`vsX*)u_yjWG*}S*Oh5 zm`tjR{+jA|%pzhUU_NDCpV&+T)qVyTtc&dMM2zEH00#T}9edo!v@XUhCB_B*F#a;F zD>2KcTz&1n11C{qR{V*%9txY@vRp8rJ7%3?h^C7mi?a1MDCP0_kqDSwtFHaf>aM|<`V4W z;4jrYin&j5j)PBvKab0J9#N}n3wz!88y4X5SjAD!)wkJVGl0oPOvDyp+@3td%uy!5 zQ-GL)nkt*85HZcRN~-K0FEOJvP7Y5JF}J|4!(YFkoSss|tc0B<{H2=Qo)lvC*=-E& zV)9fZW+CjH;ICg$kf$bI$Y@5x(=Pn=Hu*gDisLwTq;gcMJE zVqR$}aVmQ{7RPa;Sbf%&Y1Qy_CMJh64LyA*hbL-ts(aZRd!8d^u{~Gb%bw~P1d@%} z{Xk0E#50t1C5~jtsiuX^%+S7^;TcZ4Cfhzhrq#|ff+Tk=z`CmD=;#?kj0biV@K-fQ zC(k%8m-dU!o{7Y4d6MH~TKzneiCLL0%yXWp#7w9!%y7?iVrsV*W};^%F@19gGu`u2 z@$pa>ePC^czkY$QcwQl0=`pibZP6d>kEb73}nLWzl2i*56Sm%wpjl#byCJ&_P6tK~oP6fS`+ zYBj4e%X1t@22u^Tt$HH=$DRa|d|xG>@RTlrEurUOE=8vGnWt=t6_AyZGns*JDtXG0 zCDZ!aQl7%OQ4Um+V+-z$^NsaeF>Z$l5IJ`1%CE)FEJ4qS%Z`Yra$SDHAv|K_dFws zku?Z1lS!AXK_UwL=9xv3ot47xo_SQ#4*9uUsph_CG3j!A><6CZ#5kV$L(f)9H6Grc z#$T#==-Ecv#eXhc;E`w7AIkM}4&(js59O*+Ai(>O>{B?1du4;10p7eNu^m>1{dxSA zHrc!dOX3)HwG``uG0GcJ5-tBtbLq=rz+f8-f-^AqTWi9-QN+AehzL068R7Mm#1=Io zkW*z^k=}S>BJJ@o)AD!|Db?qiD#2zd!Z|(sZ8nMC;uL43t^FO7PF*gP2+BH4X9Jq5L?0)G+Toijz%8w&C9U#B7G=X!!HE zMtEJNu+10#QF1uSo1K_v;7Jz#f`i6*^OVAIz*t+ha^McfBLXhFfcMNna~?*E@k2%Z~F} z!H3?N#GKVQmTxvOezkKpUuG#>4}Prc!5qFtf6|`A_XgEzuUt~DK;J52Qgs#%@~tHX zK7nc5C!cRUG5KvjA=QNV-lQ6AJ6dX|fNvu)`?WWP``#v|Wh}=zkvqcoE-|m#%%OtO zzJ0`;_i&sGxr_Mr6XQ`P#`hsH3t~9V<=j5sVPfzr*!a7eJKlGktdZMhuH{bheZr}- zFsF!_=jBw_awq#v6Vu0z^Kc2rTcr zLd7#Q3X9oYTJk z#5AZY%sJlxVsdcvfl^%b!J9--%Lm}Sc>HBrSABzsX#?+yGIQNGgqYpR-0=+~W|Kl*W

* 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

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

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

ClTp zpy$o2NRmrZ3Z$R6lO#rR5b9@u_XX!ueISgxfS7^aQIZ`=D7asbdD&~Rte7Y~2zP6U zdCZ$i0^gB;3GN#pgZVD8qr}R2$)W+saPQzcOckurI?BJ3>^K0ca=|#g(cZ+jWsLfc z>KJd#dRbN-Sf2#P@{RSbkQ9bqJs^9MpY%#@z?dCLuYlBn^Z6++LL%D<10dBne|u&_ z9d>C3qcyyR6azi3v!Le|ws5>x_8rV8OWY58+7aYw??#e*aT|Q0wFgM1XCz2plG_qw z2*?DlCCg=4dv+|yb6z%!VY*odX)!#7`(MK;JpFPo(#jqb!gokWHN|U8Qk1IJP@3trVo_@-&Gb63s5O*k zdJnUxHI!z0eOS~QN;AE|B(fLuJt%9YH%^Mc(Z1VBekGCH^U0G!%=SvZkJ~KeFi5Uv zCCJlJn2+z>Nh15}D!^(s^SuEwCY)Lueu1h9Juu!dmQipX4yuJRR;CKi2B`_D7JJWf zOdi}5nu9Fya#+;$zQmi&snqqp#CwHBUGGc04V+4iD_G)fkul=leCXq+oG+0CE!bDQ zK3i~4gBI*7-ZU1qPQ@$U%PeXQiUO~IBv|?6HSZk9sHgesp4cjLR$sz>!_&5*1nZov z@CK6v>zu6g#*xHC?F`w%f73h6F=_>sH@#CVY6X=w-bGGzX_joyzvZ>wj%CHffon3K zwccnJwPMLyFOx;BShCKWOd_9F1L1A+ZEr3Ktju{9)*kBzUytzivZ$}uZS;zLh-KxA zPd>{VbH3EwaH9OPXugG8P!hd|!*E|SQyeg@g+^&ohzROJG|~JAsCa4PpchXKazM@wf*AW z5SED#$@MPc-e^uWc|G(nw1P1e-eMMYj>Wy#S&HDCAJr0L)~J|HDxc3-4mU{>F0@kO z-q$Qu?oSe#&_;@TM_DpJCXv*QQ*DHg!(Q|?;Jon~vEWKs*k8BPYsIqWHrXq?)9b*p z1qAnWr`MfD_0AP~eOb;|ko8mO4P&|IDVa~9HVOLe)xT(T`{r8JIgWZ4SJ7PwNRG6wP!MX%NKfbygDqO zgLH|Y+)WY_^IFMk=VPx2%lzd^mdjLPKeRJnggGo9d)HW=-3w!}VJ|-M%I~6cRdn4U zQ+?u1WqEs)?4|j{+rY9K1Xn5i#5>M19|ZfgKK07(micJ=VQomL!+l-`%PkX>*jL_%Bza;1#FT@W zuf3xrStJg~Vee9c)CKv`TlFc`s(2exwFEio#S^3p$nRe7&t%N6F!Esl$VG4IekpU{ z%EcP{%NzH(l*yN%HJ*b~KoS%0T!Js|!nJeByTmaipx+PQFD`ri4`8a8s0uCf5s>rW zUdESFo`vr!;(lH62C;O75gkuM%vG=H*D@yKcNjqlQY<=?r32IcPVOY2YN@k)-i zI3!d3F;Yo4mdEzV9+>3ldX@&zdd2-pj($OsC6@7?CP$BRj9MKoIqH5Rb1n_PT)zON z7mpT_6ou5ULgDD41i|;O)M(jnF;(y@)eTWMLGaD4bo5~s^()nl(P1pA=j5hnW`bbP zN%`nz7S&5rA-Xp~Fy~6q(08(Q)hDAzHIm?YYD6PMS(Tgl!!dZ!J_3F_pEaiCIMfGUP5!{|* zsb7B~V`@axq=a_7FIRi65!G3;K=4|w6|Kh790czGwWEzl;4R>>WU&y=mO9ZnGA6ax z#w4+fQ9jicfhDe6jT938`=uCFH16D;cbY8E|9 z5?oEqqn9~G{SMM1TIvMmoFfkW0PEzz`Pw4djioA#VnS&dT}o0I+5^8B9)~S#6)kyE zrouk;6YmMpCR#p0&VjUzLbmW%m~s!qd=0C3w~KC~m^`rqp7>`WpLWp?669Zyj?s%O zIC?7;T0EVj?yp!@jQW1=hFrUF&heB6cfij);%hIlljb> z484gE(>>bw6iOD26nhEI=SQM#N#bG|{GMAIVjhXMJS|iG-X|pP0_hp;&oUOauqnu+ z(FVWEn0mWIB)y{%8NmDxLtomjV|I7$7PrXlVEPdndh07m$E}^r9eD z1w;X*{Uk?12uKT|L^={66r~qwBE$#+3K%JZNHYS06sgjFv$M1JF5&+0W4_GJ?C#rM zW;2gNuESX3JzrNMr-;1od!I;J9lnAEE8xCiMD`Nt?@K14Toif+_@)!-N@Sq#OClqG z7BV0D)(}}uWRPzsk!`lH^^xxYk?TZ0_WdS^=RrL&1{m!7i%9oBMSnWjcPoVO)^D&c z?7GN}4&X6~kD7+~iiQwABKpKvhRE-rhqt1`eGZX(%S69C!dE+laLprpZxDHDx$wq6 z($^`3aLxboy+@>Zrf8oNe4h#uC3}Z}FNuik9Rj{-L}bf9#@eq&JQEQ+#g{k$uW|Usoc(oe+A) z``#ncAW7uLc;6>PO8h2e5@jgriN^b;5|O>$c;7rhJO|*s4flpU-uG1q;p3KxzHf=V z4>G)LO!XZkVglhK&s5*Z5W>e=(|nhSRDeAx?u&c6?_LPuqox_Yf;UCUY)^YzvwSav z5N>_8Pa|>|^zhdl=KHE4$@R!rDi-*f5RtD`eCcaPguj2m%j#lZPoXDj4&`BnZxE5f zl!qC<{}E~XmYBz7_$CNFQ5iJa$?(l0a-Bvy8NMY%-l37h65l!^^J(O;#J3BH=wW%O zTk6}3MC<{*1+CUnpZ8y$8v#}mUMS;lH>~u*pYY3y<~NWsI9629jKl^zpmN zcZ-Ph@w+*g_G9Hm`?JN@^bXe?VD%rt>Nn)Z7T+KwSswYe`&Qo!BqE=OgUmKxj*wwe z&n}<;F4vRFvR6c~SK`9hE?;FNS(x)YpLhAZ_qmMtIun6>?`tZEx6C<_8~c5&h{#>D z{l1P!vZACfg8ecTh2^W?`+Z$dCONoAw%^x}$QO;oD#U)@C?o;K34iJSfG>k&_&yph z&p%1ck#cPFvoGO49_M6sOc7=NP*A4p>~J<8QgPUqjxuhJ{p!o1P~0Ol-(x-MEB}D& znaPsid#!*_$9(l33c~#ZYzK16mx)B=^Upxe`o4I?WpbmGSH$hA3%*4}##R?)^@49X z68CJ_1>Y(pF!r-xp9sp>1z+vQTu;DT^$oZI0h%xPh7x%{NY)Uk_Pe-Ce!*Ay2@jRZ z4#3Eh`<1=m>qW$bcXK%T(>H@i%L_0Yi-WlOGKri!5C0Cf{_<@nvX;mt-ytNq!ShIe z`%WPV;1|3Kq5k&W3L(6HUG>2WnmiRKa~ov-@y#Xj)}t7jF}8_{tDz z6eN|2Oo7!fA#)uG+>U`6Jx|vS->NXK2hP$!*=PWM)o%Ly;X?BmIDx}M-SS;PlFZh_ z$p>D3Zuz=KaG7M*FhZPjxb2IM6rsL_-kgWJ<7+}>6?iNWWE2tOQaF1I>AK^)jwII; z-cYPi-Sgc;lFZ(L^~^#;U=_j_RzTQ#3kZMB;ejt2Nr1)u121QS%tK#wA{Sxpl#?gE zUP#i|sM}$TzXcVhB$CXqD=>!x5~*xKl8Q2QfD}|t7v#25**yr=5lD=34@s_P4V=dO z4Du&dsUF2;ay^xS@N~VT>_rk_{LE4x2=$Uuxsb?>bSMd2rnK@lkymM5tF)3tnZ`=j;v&@kws0Q} za;&LRK30$!Kx#b?uR1D2h%6-Q@ybymrRWRBE5)DVq1^qZc*TcAv~0XC$19DHK-qwn z|8ub3LYYgX=QJ3_0C`ing#>(X!TG2RAgz^!FQ8^t4bFY-hc>*Oa*;?Ptj=u!nf6Lb z2`-cC`T7C0&yb2PNIRSnT`0JUyl^i1S#l7B2`0{uQC@2?Sp_!KV^Ri zxeR2W5>bllnaQI4u*U&psL~z@+*{9p(GK*5pDM$VxcT#`5+EXT<5Oik5ih(+x)^Sw ze5#}(33y)y@&(*c`Ba%rGHnNkv(vA_Uahi~NOqlY_EQ&lJ5Sk7r1dJ{v1FL?BN3Ua z!;~B(?#|jUrF?0ginE^cD%_-m(ef~50g?CyVy-tr$rL2&^(;|yM<{EMWV5}WhO=je zLj6&8A#qm}M=2+X$Z^6bg_5 zRPW#}&^iK{sB}e==xqQwww=#YlwL$eQvOU-h9KD!)^>#$5lvK15s~LkCn;tbu6a+G z99d0P`Vo<5iKi%AkYurc;UI(#)~700h&+V;q8gBCO8v4JLzV@v%C-P9U5Q5$V5hEm zST`VFC`X9MUB!9INg{GralUc^iAehg5Nd%^r5x8B@QwoCvwY0IM5#k$JP3 zaY(XRSMX58y$|hFY7>#Rb}GGy+=jBT12pec)*#sv_87`WHjrf+@%yyxOFIX zsbUZMJ0(^U8sYC&N)wUga1W(4D^ixjtRRu)Fk3M&l$$?$l}aIGYirmIq)^#~Wed4a zsU0H2b9JB6D1_udD)z}xk+Q}9QE3q(!$a*4%E%mZiOe5K_7s%)bAUqaDJb*jV35fC z`N<`eKR*YF%%4L_yL|CEth^mUc-jvu=}6pF>m$lSB65xTh?0pUJGdKogluI;%9i$s zvJ+*}a3B99^wODVfQ6?lEOM5&1^XaV1(4GICCR zLYXQEo`~Ky1WvFk2a)7P$rq+hDZe6dU++DooIs}(@J$Da1vuIc=dp>&1t0#5^)-VmxMo*#1L``a^nwW zo6zI!zgX0!Gs+$!BY?oblbun{5RvbQomDOp*#h%8K65#%v^Fq*f-j<;Q@RqlPcr9} z?}^Aaxy~yGi7ar$8pwI&KO~8G8}2&9@PZOya?Ro<;2k7Akhp38QyGm!)UQV%^QW>z z$atGC29Fa!a+R-;xZfgI*+4S#4eMNGI}!PYb*|#IxOMlP;=hy_BJvI5zm)z&BV^#wvn$%6)O*Q9)^nB$d7N zY&a_eGB=flB(o5Fq8dQ{RrmT6OXgi=0}}V^+*S65kh&1+uF|L? z*CWP|&4AojGLR&DWxD=TRuQ=ZDdl7S|CAF%WNtiA&JyuK{&1NGN|8!jbFx>a{h{(a z5qTc+p;8S=c5rX&ky4k4^xyJG=}Ms*fOm%{8l3r8dJ$<0BocO59xKTr6z+)e^M_BA zDMaKLo2j#iNY8;x-A+W77N!=e%;UT#OnMIVsHKR=@)M?(sDkOj)}|HYShzYINjB@f zP~26FRHqV=@1A(o?L;O*ug6~=@v5b&V$QQgFrMWkS{;J~#=S5X<^%Z{bruo%HcD}I z4H0?6F;C&s68OvZLfp6Q5d~$oP6D9q~B8YCmr zURkYAM5eT|+Kh;Nd$F?G8cA-HY;7v5ok&LJbLFRUqq5oyW!za(W%V%uRV2NDsg1#(T6H>O>^T zEE#5Y+z&$yH5bX*sPDiJ0WS$P)qjZWgEM$FdUJAzNF69Ye7&Wn`j|-IiwIT%F67r# z3)JDMn92GD!dU>mU`@3s61T0ZrN)uWtI#H-fJ`lQ7?H1`g`5JUwwgs`E6DIRvyNK* zHLls!Q&&BNWTyAtYUuG{?o?MjM&$51SRaG7rLKBf5cUtma3<)ft6nA<-Y@rqZ&g>l zON77gDM(~pOof-f3M$C+g0P0$!dbBrJXC2SC4)pEvL03xg^Zu{6oNB>LQfr%dD0l} z2BMxONYcEAgVx&$!p_0T*trA9tb#!{6g(Nf& zS0NF#=}WW~TaTwbH~3;>W3?2LWbYxGl{8k%BT4d}2g1F7G*&GN#b0RU=Tcr*tB{NX zWD971U44zn%y(cW0i=ogIuTh2TA(iQ1mX8uD|}M12QIqW4695BnbU zG*$Z|33&eovL6W~0e)G9Z+8}F9h<3xQ08n@)@JZ81v1Ul{~>W-nQW#`3?Y2qs+oF` zh*W2xKI+Frc3%=}uzl1NByL;RM?Fq5vOVmpmTfHb$XRwjwIUHY%l<&ENkq=p`>PEE z@hnUbd%peEc1V&~H5jw-UEl#~N0O2IaRY;?82_1vwSg1S9|lRGF0gV7WT<+NLR}am z){%wS(r zsB@8I!Tl$pXG~Df651I_QWKi+P;eUjH<7Dj)rCY(z}SX=)3NGxA|IX-r%aR8>PpDq2jKn=3HAy{zBs;iv zF-bj3M6O*-QZG>`U#2+eJxRTRBn#Z)i+l8wRPzmP%N;*YRx2YBqvabApUG-HBzwZ- zZImf$FF^{)8wXR=Od|5e!4!2R5qaZain@mM$Xhm3)QINXdKQy+YSPqREjST9KEDey zU0q8=j&f(H+mXyicmZ->LnO%w&Bb6_a7q`*eziZ6 zRPf*v!6Jr%XGt}a$bTz6tSFE}>PZUKzaorRfgDj!6B!Mp0+1Z_43SrW_<+W%dJ=$~Rr?`H zWmQ3D9FTMBGC_i`id;~4AW1_H!&5-!f_e#wSWlP<+Shhd}0m+P0&xwfS5=BJW;cWd<*0sAYmHoBtqS|2U>wdYV(n}?V(pYfJC%N1%`vaL9I$>9tvLl_P}Tv z$TM0UA|rvkjO2A9VUW@yU16rFwIm{6SC7`(6Ok{lM{92rnY}ceRRBHFS|22C4;!s5 zBqDoN(aU`j1@pccZ2%#!yr%2|- zT$r^0@oCk22t7Og6hzmiBZ2n^JAzNtIMA-Kce#vPHXN-468GhFM=OKG?Z5n510jR; z^hzIS-L!#1#yfGOhsA^SSG7-wECA95$yg#Ee*mLy7!g#|rV>d3!dD$DY6W`o_#}I? z#=smOYHlShhDZ(&Uf(Nevx#KDPAQ-3Rn`^}*$ITVQI)k!B)Oijm2is|tXI+QA#we) zRn_8paa-9;`e&=A4Mrl?DtQU7rj0}*)}OnBo@&|zBK#g%Um(@B4M^PlsiEybBE}m7 zL8gXwT*!C}!e3ipK3G#bL*ykOJCR&N;;u~A((V$GE0eXfmwSsi%U$5wT4N$|zo3rR ziiljzcumVe;;vNG)gt;}KI0c03NfgsB?#h`>m&`e6eNk>S}blxH3z(MPrRX47)f$4?TxhONG7^BltY-+H_}QIDFdXZpA#Pvch|MCRuzfc zZZy%V6Ok=I6Rjo^w*_db)h8J_4sWKlCL+h-@mg0Ra)+*kHkb5BFFh@_6(l3?dc3J^ zB_enF+Gx9p$bG%HwChOH7++^gfP8*S>)wy&Pa5MZc&R`-X}dzmmq5B{>U&%!mHk1d zkKWZjL?TMmMv&>Lr6WmW-@wRo2aw*{0VLVM*Teg0|AEUq7M7xK?t?zxb zP49DCVhr#-=;@;!M*{D@X>g_#*4p0F{th8CfV{6gA<`uQ#(hBgYsEg`dXgC@89)YT zJ|ZvFfismrKGa?#QU-ea17K^A)`G~d{b0ld3MZdxbBVk=2z-zN8Kx~IvKY!2C&RThND|qax8M{UXda<`OXMSH zZ7u*Ar5y+%SAl${MfRsJI3IkjfM?EtR+z|FK#KH(U3;x05|OLRAm_(um5{(&ko3wx zqE?rPd}Sa}izhvYK+ip}m8hK}(tIvt?g+Tet!){A--{K96!VL5+RFnuasB+KXkC!Z zWDAx@u)+{(f;NLld${fO0+5N?!VnS%WRh0vLy@ju7sBl#AXBt@NZ{O8I^6F8GFAHo z$xQFc_26d+23ym#;S?%9(Zgzi%rq^5WH$aJWTtE5h#UZNA4Xr(wJ9N?8bPQT+DwwU z0)KJMv$T0cqDR7h0)(2SEeQ$L66DggRU|VAM(#Y+Y;8S}$v}9h+1j>{P@N#u9Bp?9 z=>ue*whxKhhA-3(KSfR;5#N;eL<_ZtNcI$(G*8?@TBH>kB=Yc!U&GlD(7Z^CCerqp zhb018q7@;Mb`(|=fn;hiM3Rqt*c>1$wPHj{z_>00$X8k{61V2A*3KXivq)aXR%`zW z8Sih8VXRsdJoanFKEl%CZFtbbR)U^2+KWg6-nKy2A}L2Q4wQ|E>M+~V3?ykxIS9QK z$gI`sgplumtkdF=z>EXdTR7REjVBr2BJBsVNn02~4kI}fLXHF3tlcBBa+wIVRg3#r zD^jkB#FV-N%m;Z5vlrx*sI;6y(|d31GkL%oG454hY(&4v$S|5X{-v|Sn-19 z@3lcBv!R3-XYSQDlME+36??VaB$L)cXx^vgAaU;{?bGfd5&g~=rQv*n)_5pSMY8t< zv@N`}?AKZ#33&ejQXH)B*E%9eWf9O~zX;@jwn32KZ1g8>FOoFY)fbN5Y<|+bpNOyX z)mRUbpS7k$j8zegd$T#DbtkgCyN8tr%}2E9L^?s~)qwn>ogyMz(Ht%2Q=$12XjdzO z%&%G_B7GswJk(Kb2$3EExD^HDm=--ugnAWL%s4rrbs_Q|*lGmiq!u9ZAFPkH1oFF< zgd~-P4f3##K>pC$4i|cOPt*;_8LdMI=?mnX)|m+Jo4CxMS~nuR7ybyyU)o1Rcn>=Y z$Ym{wNQufYqJ*z=Mf--x4?l*nWRSV4Z6op+W}1_LT-SCWaa)p`+CD+p$+U%kh0?-T zI3H>yMhS8oa^r`0;qJE9l}NL79<~njJkk<~d<+ zdxU<62=|c2TapMp{4;I~b{WFN4qb#^0*TOk4s1o}8w6or4uzL}fE3i@NApktHYf&q z&a!Y5QjbjFM6?pTMT*kPhmdyRj1|&9Lz3m?ukK!f)!k?Gu|)XGyn>`6$@ae1M$G=6 z(dUrNeURbv!DsYLA;Wrs4EJaLjQ$4_w>(GdMFKoNuB~XjC=qEZT8|ZkO@#jImC~@9 zp=(H7>(RPNp``U_-9h4x6QcEMBqP%mtv4j%+Imxv5L>;FgxdOmLb%EBV1DRNmDXN12{IUvn*x_OC z!8a|gKSG(Ts8ZjGGfTxuCcCf-wuFofCG)4a9+8BlE|{+3dbA)otL5te#r0B1vRNl6 z^Dl$-SZO_S0uUdN=k?wsvjA+p3Z$eyh)7qEsR86gz2w-u>3Uf=iR>{VFkP?cQOTmz z$#j*`pF@)Em8mGBmmwLMiZZ&2M0{l)=Q8@MLWap0mep$rJ#0ADiwb(ZkWjBf3@hjz zNk*nZ(T4~b_9ldC2{NiaBcC2kPbVVtN7Jtpk!d&d9^>++-O>9Kk!knqw~0vW6?IRF z2qiUF(n}MOsi>ltCn9ZC(X)xj@>4_4AtG(n)HB9&&2GJ@t*=5NM#8*htF3Q9lI_1#F)yx;W%&jXM@we&^s`iXP!`P6S9DeIOFI zwW+I*Mn}}=^;`JeRgGG{&8Hp1Kr zNjeeUS8|zl`rK)GW!mYhh)9|CdQw_mnfCfLB*OY=NNERsJCZEc48};OpNG{Red2T; zDvM1$9I4o4BSy&3ZumrVZU3pT7_jV(>+LJj&;{R!%*3tWzf<# zt_^$QvK5V#?Q@SHk$L!TkjOmjsZT>aqBrNc(K{$3YpzRVeRqkh?|p)yWbN)3B+`2S zAd$6ufId5)^$+zgDP7&5x0(bc^Fuv@NCJ?5fDF=?64^2V&h`NLNY5nVnHbLclz^2b zeFYLXU4zMbRxnpxB6D@HzK--XgVM`$Rmx;X$}&GBm9N0RN4Bdg(hMI>&HjnHcf8OB$?`E8vM`kO*eaL;a}-Z7udNPQ}jRJI0oCnrL^ z7^Po9lE?;to|!;C(^t&G_yqMN=Q}w1uvYFI8Rc}s2wl=AHOCmBp)AX)Hr1dm? z6q2)^tQFyG1EhI|K7+_YK7$4_OaBsy`vueWRrx}t>-X}7nypuy>!yphV{`PHNL*WU z^d>~4t$BLOe4*y+?Vlp=<T3#$iJVRvbnK2Q+PM4Ia@(}$8w z3z{=7(-TPM`UrRduoMqPk3}-m zn+P{I`MT(GJ&uU4b2!@vIlo*tiL4ziWvU}dWhWnqwTtEYL_vb9Sj+W(i@7Z~H;Np|>X)nHwwg?j$2~V}-trh|G-@`W_@Ry_1f? z3Mh{+Bw@3R%uNXomK-$02>my0@ z#=X9qmZ^320(~BT+Wp)SC&R>P-8w+1I58*S- z@Ac9ldgg;nwyuVdwLtdjuOkt2tD2+0tEApd$apJufVUZogEvUMH<7ZJ#Jd#-^#Mc@ zU|oyn;X!?=*X;VlIIdSmB5ch9TgUabNQ5n(KPU7YB(AOB^lO3y zZJpG^zIML_uRAC8=LPZBNfqZ4PU>Zdl$<2Vt3>{ORd|m%sn)71QFj9LY>zOtj!zhf?gd- zGUKn4O#2`B1kuL|5*+*G>T^Rv@o$lb*?QQ>Z0BjiLg}x z)|M~n8A#kV>aw1(o`-VhgO~LUL}VNFw?21cUYWo3RY*ksT!p%PMW4Ef%VY=NApS?+ zg(Sc>r@+cL$o!)>+RSAFY!8r!K(6bph;$w+?nK_>LtGD&qTag5F{|XxAk^Jr1d*`2PEz~$z8oCl9{Yw74X~+wfC+*l*o~3@VXz6 zd-_-+S0ciZ+}G2Ilz!r2H$dh;JrhYXD>oTd6Cs8V^dZ}LDw0`oAl)FPk9Bi9C#md{ zN)dRMffLn6X#Lu;L)Y zb2ZHH?-22kFRz6e3yH|r*}{z2okB*w92#!$D1`QUl89b!(`d#bNhaIFd%c$+?FEB` z_j(49XN;~wbMTuMHijc{d+NeQ3KF*#6gIkk%j4tLg2Kl8NZc=2#P|e>$T6PMB1Qs| zL>3hV_v1@&GMC8J=LLx|3hu&h5zP5wMsXyro?=ERB#Eps==l{qs1!4*6Nz|1kXU1W zK0VJHEAr`i-q=8)Midf0ho3iMzZ2<_b@>IuyC-i-Uoc7#kuoKWxU9S~B@90iDO1u& z_&%>pNn zbQOdhgOh~Ys=&=VV>*#I*o7(6iLsZBUx*ZfU0J?Y@`@4pgRAE?(DRC63c}*6!uleR zGRA!*?w)UXBVsQP6~J@CZ-PvDqy9cl+*J6CW>1mUPmxYfkseQx{zzux8-*Rfmd}_< zgx8dANY){7b5${RA#qEuVx;`YW9XJ%#YiV2zn5xs-=9}TH3lLP>FNcxG$Tn6ToWD$ z#4sijc^@8I9fD+fNT?A=R^$t18S6qqC4r3fRPB~T)b0$piQ@$8GOyheAXLR5;kA1` zjB=|zrKfsOhL4T6fS#H`BFDzHf`segGOrn1F@~ay6^w%$SjIt$vwcpyquS8;HALof z2-VQIDTsFwoX)xr4_}?A0QPMj}S1vmsrt8<~PI9>XO- zni#PMd8j1DW5|7RH#a6CfmcqJd)Nm7##$QRBRL!NY5AscgoyNM`KED(i1caM%D75I z`m}6i{6|Fkv}|Q~f5Ng6C4E}9Hl7#6BRyEQG0G8HZS87QAR@iCb~7pwkzQNhHtG|RUR&QW-XtQuwstqV2@>?$+QWFCi1gap!}v6W z@bkt!jIl(d*VcE9=^=#QkLzV*5RqP6`x@(rNUyE^jBi5-*WAxINJM&Vea|=*Lb&D+ zj4MQ>*Vci?e}V)(W`AfDJcN1Zk*g~o8nJ>zHAoU(Nk25o5RslsKQwF#C4Gl}Xw(iN z+;`|8qd5`jmGonyO90VvMj=UMzE)u@8^}0g9ul`lOEEGj6xVYQWKxVPA$pDh8E>>a!Zo|0CKw$< z$XSq?VC+RA=9MMm;N=?QFp>ak-VII_!P>$w)%2Peu}IeKwL% z>x+b*5bK#lTKFJ7 z?zR~nk%)Ze>xWB?zDVF^2b??QExduVf}XF9Ye?LA%Gbsn5i0mCzBV2s zaZAhBMxhft?LyBhs3#UlHoLPlf{pNV&BKrcSQL;7AhX8EK$6HZ`g)iRWUUeV8`qP~ zX5@skK@e)aQT-$*Zdu)E)I;K0-)O`mapx%;jX|fxw~%KKHX5HH5qj#s3a6%xOhMQy z;4wgfGgMm)&+ll98AQG@Y9n!NZ8f?hacyliTAj;l3uK7MIng#_)%mq;T z^^agrV&R;*k%7c58{Zq(FXsKG-y4sS2t9QnSF?@hE@94lW&Z3lN)xHE5AM2t0{-ia z3PftognNGwYM)^tanrufsEb6Ty)LXf>@!|R;--C{(dMa8y`Bp7!Be4zA#u~S&q%+L zH(mRTOd_&8|7b*C&nxqzQHqF^*>7CGnOA1N!TuFQ${a8vZs(ObV8jxUG6#)*ck;>{ zG=>q8GCvtj@8*^H$>@kgFkv9R48?OiDJHXc0` z)+=0wT@Uy=rw#8TwC<^MU*yjjV3OKPL=}UelyM*DM$jWT;T{dJDIU_Mv8~az}u!kczpge4iT9Y6~Qt==1=1ckzdXV z-y^w3+i($zzb`xxWd1U)5gEAvPObsDWW+`YncpFX+&{_RMr;8=D&7{mu2&2bNfP6C zEB1lRRU@e&mq}tpd%=CQ&EQ|%i1&(6Ju^frddpZyr285V+>nKP0Y=d%A@euL@X~VI zC{HA51Dphd?|$1jLuBy`ksEgme<2a-7YcRP7=MM6pF`whJ5W*jCm3}QGIVtC*9 z8%dU@5}e%QIrh+qeTM7F@+3hhp3e`BUPzMI6YwvwZ410LZ)_)W34Bl#0`kO&juzIR zY2jh~9bRT8A<6P^zcl;{hM74?l31A)!V6ZoS-CLU3VNXlH@hQoZ?=Y;Uy+Qw{Tg9z zAR_O&Mw;7*$h)pyb2k#VZHY2ZAjys5{*n0WTG8fN5y~rTWwd#Lh^&>-<_$rZtb@^J zWDy=`(Sz_-tFRe^B+DyXi5N3h5GKJx~Q>xjDi1hNLnjMj31@l=o zyAYB2teX9hxSpU?Glhus`=pxbAu`-IlxltxBEvmFY36Ps(i4eyGJf+R5$Or4k{MT&=T8>w9gCV<#q=Y|^+-=pRm@&Qq_?PQ<_042CBf?E zuS9Ns4yO?z&Na*nAu@c;s;22J#%;k1k|4vq57joi5xEyH-qv}|91ucyNvLm*CL&)O zY;2B0k`*kyubXp`1lT5c4TRVCCgyRHku5+Ivs7_mU3#x-V%8xdJzO<4n-h`#teTl! zh)91{@n%mXZokvQ979C*1ue|kL}Xvk!d!XD@!04-mxsO8e z7k<;AjcREgN8#^9~W&qqQ|7VtGp4)~1~qi^TN-*xqbKM7AxR%#K84 zi`3a1Kt%SZUCfb0q<^ih=42#p|K8P{gXF9y9ai}|LAtt{86o6dAl=M0MC3T?9dp?8 zJkIVO&^u-d5h>H%?EgYuneOH&B2uP@+3}^kGCj;bNYYrjuc03V>+hP=iNwIJ5GOs& z3?kL4!TDbxz04A&xE^S%{RBy92l0AizJ{I?+dYj#dyc;C% z5xEj1Lj?(20P7py*XDZ05qYKpcsc^o-<*TQok0&VzeM83aESRe689#>5OWg}5yLSM z!y)DlBzp>--Y3R>L(E-*gh^XN%p4*zKBLTBA`EUO@^jRQW<+V8KYPOZgP!vc!z6PU zkv%{j0~u@jUgk1xoKs8-i5uq>vo;cU7La0=dL{1{OfhvNqNX&00n~UC)N;**UtQ~A zPofx`U{*qznce|KB3KHfbb{F&Nv@|V_(PkF85o{skMyfdy zWwN7wN)x-%spc3#m^{y)YOWS~a3zOpo@Qdh zn=jN1(^HP;ShiQjXQt^zBFYB;rZdeLB#EqPG^~w5DrTBnLuA$inPvWq#62TD$BZn` zHD`I{8RNdB<^YOIc7r&B~OFTF`Eh*Rs_ys)vp2m3e0ptJfG|jXBqHK z=b3XAOob#I4MY<_;oDk4o|*k>{xW*=Qak(l|&i2*RepJZ?X%cx*J=8X`W+GDHio z$sCKsjn8It5|S*hjL&9sx(MYRK=IjZE+q0H#b>j*ib$UuVqUP>Tuo&12@&Vb<~AZ# zgL-}-!dE!?{nO1R%!aXS$h#Gr%?n6G{rUy+aI@((xr`tufqY}Whr}%j+sr{kWJ%a& zjzZ#o_ibh}$;j`%&73M^f;U^Y$=Vb-=LozB2)4GHdr3x?jU7RmQ6O^#WWF_rSR$Wg zN!T5f`5a{KfJ~MdV+$EsHhwUVA#q!YeP#iN%ed*Dp&T3lc2h`^+*(+?4J! z%Tp+s(tW0a#QpC3Oh<%b9igm_eF4^p%!(m|_ZL5!Rfx#6?>Ap3B2#+M>_|kW>t}O2 z5@E~V0A6P^_akxBb;LYIM5gPAd0voUx{jFlkhtkOVm_fzGF?Z^2*1cx8N(xHTOu-s zIc5qG8N;LI79;_tb@H&V(P8YknfWT$lgjD>i3W1YjHoC`%lTofIFR4XS1NJhrt7R} zA;}8H`JCARNj8(^=bYJ#h%7DV&2%ENY~-3hB5}t6m&_wVCU~3jl6iuNyiIw@JcC5s zri_CaUNZj@GQr!Fm(1rYi~NzdDKDGtkhrDpirE8+NS6=vTrmeB$@Q4v@umQr9=>WO z3KG=>?rHLMfNN$l5$@@T?_XRq(c=0XhR-nWu6?tLps z-1}BR61-h?&0Hb$1aDVeGxrkVcVYOQtZU{yB<_8y>!!B~&!6dR+WQ`6LE3Ma@kp{g zvR>RaH-r#gFYcHZiL8KiiJB1VZm_<~a(F*TWI22gB(fYnGVh`ucP#P5d_tOePn{0E z!xPg}mB-MPVOA6p@x7XZb!JsYlIzI;A9qPGvhrASLr9G`;gq9wF@)TLHR?!fP&Kza zcK|&Ft>2Ki_0(%!AtJw**Lo~Su*`d{;?=Q?1$_v3t>=+sd1XEITBU?cu(g3ltU?IS z)hO#B5t)aDtoRzJIoQKSTWxC!BJ;3_6<5nm#ijD#d*9+^j*l~Wk5&!ZpQ2VRl*#s< zrJks$)s)Ci>d}f??TE~JUW}TGT78M+%#dU_k!AJ5SrzENidq38vPUawO%;TdTo%T< z*X7oS)!{LOHxp}yv$r9ii&?c_6RAi&4<`*krnptTfgs0zhkKJiVy*K?0&FPM!M+gc zIqNdXa555PUa)S2ka0jtTK9;&2QvGf1^=Pe6CwxFVYLusN?QdQ3R|4a2NGw+5IH_H zoGk}Z&MMGI$drTC=B+@=TS^F73#5Y86bY<(g3RF2aFWpafn;tZN3cC0qga{QFrgiTF=L ze1X)o#uItFOa!LAmbHyYeIj+N>qus@JJ~Rz1Y312e>~Tm<*AVz&K3fxXLW7CNg_-B z+rw4^X=r5;*>n~BiU4VBMYj|(eZgNrHjpM(Z6sNqaPW%E`_raYT_XRT7Mhz`O_2mx zXZSilL#TLb1CnGG4S9G9NGmJ$O_9>dP=21&g*VWxq}C#a1^x(UxggWlN+B{8;(Q%Q zdn=bnDX`8-N9!VzY__M%B(Yoj;gmOodfSTb$VoCA zS1tlm@s5>*B*4bL1h-nMFxK6=LS!JxbhmnS;-LcUeUj;69YB)CJ_c_ko`f*g!+MA$ zm9>EH9tEVQ)wMGZmBuQ63SNwW^tRsW!in2A4Y1xrBHB7$y9ZbwBgw|`DzDuGt>HvA zQtcjSjU^&Srvt4NB3U$E9cX<{BrZejzYnzL5&62CB&&(^?<0H~479!@k_cY4d9OFn z%0ZIFWce9rwe7}Jk;P<5_{cgyM3#h)t*p0&jQoN_t-}kK z%)cXom4+`k(mIF49XWhv-9jQ}qYmWiXVwEGd&0gh8jkA#pIIe(a6Nm%euxQY4IvLl zTXF9S@&U-a31p0QhRDJ%U_}T>lEr#*8Tadqv!ao>*2h`zA)&c2SRZE%LXylTfu34O zuIAG-(Yh~Wa5nlCocfq(d3$kN$=-oIBiJ$^ldKpd0dD{ZmziXhL?X`9maPGEe9Mm{ zi(PSUbmhghW`MRTFN}TE+VC z__)^RS`~;$>vOF(M5OikRv#kL`T{EriK}^$l}R!($G)_-5y^%)w}u@1(#j&jZFK~) z*m|z7h>x_j#4?F+TU=(T^*=b>AOlvHWouoO_noJ~;G%vT(iS(ndv(j2bw7_1#rxq*hcVl3D<_1E2kU#Rg73RA+y^q>ThAlO^<4Q!oN~{$;)D!q z0psU12$gM_AMjAQo<}Re_s^R!8@1{XQQm+vIY16tEs==Q%QYXedLnVZ`(f)7BC=i_ zwiXkSU-=hnGZ9%Ya;ytTT+K(V`y?al#W5?oKaXJ+<0a}#i1RTkmI$}C9LRC2HxX&; zH)|9TZi~yDv<@OU>&finVL2^eUTK{VAt!;Hwr&$i@8w~C0y$$nGr-MNURuss#gT|O zuLaHLtg1*{Z@qt7)rrX6fj_O9L{0@F7~kK?wc?3f0CFu8Ztz*1h~$D_M}9;0O0X6@ zs4w=iuLemn?CbG8=&M!_3?<^T6XNraH3|vr#|@8Q51?*bvyzA`2IA?<$s{E1E9BR$ zxk3+n2=U=NYuByoBqMFzu-Xpfxe;KV>0+n&rZotOu>L(*ziFKjGTym#_UWz_`ymhI z#^|JuN5T4iE8!z9 zlZf|f`6+@2)>I_99+`>|hKjb6J z7eY>h^(R(0B<_tlW_L&8?v^rp01^34D6>ZpktbD{J&uTc$A{U|iR`-rZ|l4TQL`5j z*Y^YK_FqKC5{a~L6Uq2l z$P}={hw%K#jXF-Gpk0*61zW_&YrjIIq$5a_?MD*umV-C7x2SM#!0t%odOJxH1Ys}1 zSf1CoLU!$;+*T@U&{f=nE@bzTq&>{N;=nVWJrzlS$v4NN?U+w^r~o@XSm-HipFxt! z)^-x13fm7!<`l^A8dt>b{wb!*a|o>S^7E`cFof`W@vJ?Hh}>U}u_uNQzIR;Ao=ZgT zFF$85CL(u=pSRZ$kvq;M?A=7>fzmmZXtAAVh}eMk9Nu(8H?2es?&`#v9owg5X%I zFp$^nT}a^U?keH={|&q2NFJY5mi@LU&&}<0BmwpT^xdT(RJ?tLNIdvgKLM>)OZzgC zG;ASx-Dze2EA#|!t+uv7E&Q@0_xucR(ZguDwf)Q}ZcC(;$GMFiCkVcc;saZ4>;RE} zzK6yLNLza%l3b6})6PB+qNfVTw6}ASxV>jb`yvt9dv>%h6Op}VC;JK!*?V@e?+}r_ z=Q}q0AI6z=hPx+T7|C?ES0HgmaXsyILI(4>F2tv&{R@)Zs2a^-F4Gid$M#7g^0mR< z_60#a6{<$C|6rWZ+kWvgQ8pgJjc;C7``9Lt-+_d;1mE)ZyGTSHwgg-6+lfLZXsf^d zIT2~AzdfDwNL&5wABjj?1ME{oq^&`AvC;1L>ISwxvQ;E*x(3^RBGT4iySgC3bPcxq z5s|ir*u#iOTc6sQNJP5&gRNoqP9YOa*9beCh_p4rK16zCx<=S6A#Wazv}1@!Tc6qW zkO*5N!PaQIy^smo3fONGk+uSMKhh&@1?+SpGF@ZrOd`_OSo=5!xE+P@;n_52C9 zKc>74ZHj$?2=~R^0P0Sv-EoXa7bm=(pJw+DA^d)Knw=0rxUK2-6(YMS)O0&G(Jh(F zAzd@<6eOwag^S^g`zM)ae~rYwSvKF^EM$Uh)B^he5>c0Tf}RC-y|G+#0R67Cfd5-$ zrx2L{dnre!GWMl?2uUJ~{5za|3+c+R9};4Nb|)laP39QLthNUs$zrb$j$l)vM_Xr4ByuYWUWbHJAM5RlA$l%Bs10_laol<~ zi-#4nCH=wQyWLEX;Ek2-c6%c7#>#fPCy`9>C&TxNw%db<>=`I->uk6GN95B{;kbsj z-JXENo#$@1e-Om8I9=Qo+G!s~BGP^jVz|q`LZPJ0Ub{>RkF)zO!;iLuM3m>};NK3| zb&QnoS6G%>L+eE|VKo{C9Ew=Y%~(5YLy; zGtPsS|AajqiO8R-5bC7;>_i?a*(+!LXY3b<$XWjx`xPQ`)_=xU1z~fG!q^99*=Ouh zQ&1249QO5oss(Yi+omGHn%fL)owq+glEp5=-7a3n{iBtp*s&~wx7jwBo3eBtjV-?R4; z>Ag_A_59FIn$9%`SSpP4_!oR)??#f!Qd>r_;h^V<{WFqm@0WjxmvEW$JCW5u2J&Fe zH6-q<%^s)p46Zrbo47#imWDZgB1gK5FBs-jA~JzVQk96^T-XY8nhL@mydh#3=5!`< z0`#mg;3TutpU6rm1w1|x&SymAYt)g>R3svQ_Ed&9tepi&lGzUv;ATt@SQT=X5i!TZ zDh|j*IjfM&#P6N}xlzbzG*f(wrIX?G7LaHs6^STyJTr-0b(*5}WFOj&0*l3Wk>FFFeP+_KI{ zA{jq~vm@nUw&f%c`Mp2fMgda6IYs37`>-bkL~&Yu$>R(@Rq8=q2hEx@m&nq_5lD1r z7ZSI$7|vcHgDnYPT``3=tV0%PCAm#@TUV zh{$xkilrsg|4$_%!b8ZvV7*F^aK9P%fm90;?l*(qF0bWGL(OiBRNI-4#7${!XDO0I zRsy`xL?(i#YiBKzY|n70xxDVwan=)ApDpIXb)1bv<_5`TA~&<7%r`_9M@v21h@6U) zWQQa-#Lh?^=UXDT;JlWw{v8sx%-3-aAQ7pEhB()8;xl;8XEPb+y3Rc!GR}3K?MsA= zjB{NlVW}W8&UGFCGC^dV>pEwM$T-(^re+G6QxxaAPNU_5$T-(^DzD(gjbU9U35grS z`cCvp5lY6ezO$W(j8A>1?J6N7<5S~%AmL@6kGh*X{ZO-8=Hs0q`E12IqmU%BnN;TE zofIO+qu`cX2RJ|P>>}cYH3wcV-gNfo)6>eyA(=kWu&x6#t(+1YdAbr=ofiaY<8(#h zrnIfoi)20~&262J^U1VxMm$B5DAX(n#cj27jtGKn)Mz+q(82L;64sAw7qzLAGYUy6 zi;93Y144Cj4v@?`7@@req_cB9gfs!t#fjaF-^<&#gSfHV&3S={ycOQfDNjU>vAa31 zA`vNl3-okz>LGE*&u=^ZiO756-JKCg(pbUr;jA-+de>P&q$G^l`U2_gtVbd=w}sh6 zU*}K=`3Pj*bK}z<`bvLHzI~|elgN{o`{^4jC5WmB4;Hd9Ul@A zpE;msq|+pyo&@L3e0ma`4*B#XIPc`sli(!e(=*md$){(mGc}){u}*r3o*z5I$$V!S z5_fi!>}(B@$%HtkIQ#R-eD0hGk=Y0`lbrvMWP4@)Omo7viX4;qGtDVPMCQ*lrx+49 zf2KK=NJi?J<}?QmD|2IyJs{DCCk{RzljBo~q7Mm@Jd%y-r}_k;}V2``I12AMU^p`F}% zfGJ7vqIVLkIXGFnFg{F!m%Prt4{Hw2!|z=31CY(ms@;MlC3sk~58y1CV}9?FSAgtv zVzLEEyT%YpXGkgU*N_F{R#3JK>df6Xpia93nF& zg|kISwiEg1EB;0(tV=lOknAaR_b%i!tkEBKt{@4pFjx`dCG)ToyPs>$Vi&8zIvkXr z!%jyceD#~h@Q5?$fRK@^Mn{}oL?*zB8Q1fRbBf6FB4NydUjG;83=)xJJQcq>Lk@~m zM7<)sk(_W&A#wYQ6V3%8!{n~e2`Awv48>YPN#HwTC!AYIgywrbSOak)eikv5s}R3A zU6Hu6(UVT?LtMt4jh=MkiO8AeDW~?~yfUYpcp_5fcjwBHyfVK#4~a;b)6SV+^U9od zt`m_me>fM9<(2uvxkp6GoN-#6$SZTk=}tt-oOOEro>%6q^Dz>UKb;}x&p81>yzkZx zXFY(Ncg7>hX40?hd1o6D=~woGbBc)clk=x@N$A0{I%6o@WOwf6lgV`=PxJV=-f?rC z;zXpaznn5iL=1TuyXaI#;(o7-&h#^R({<6wKq5kQn+`YPoh&5TUYoon+;FZFk-OVB zoRVj`o-EJEL{Xk^IHd$(*FT3l>5v;YoKZw>!TQEfAh(sHxAr$; z-R6;VM-Wy3NT4t5$UFB*Px_89_BrTzf4pr?Sp9ucm2J`k_J9TAzXD1R>`ZvI61laM5_!3l6j6;5ju^`|2Vuy0es*%y$9 z#r(17MSNr)7W0=PBJ;4AzbTR|_RI`e69((W{Fy{#9zO4nyny-4u7WpF{!L5zOCbUO zKai^fAb(2w`y&xCd<41iqW^Ot6U>b={>c7f ze0p^M=6rf||Gp4CyFricKZV3Cb%wv|Upy6VD`EKi6OlE}^sl*`SH|@3A|hoh|B$PB zWi0;~Bw`(j?^f9Uxk%jB&+%sOM6TWu{@(rm_yfQWYgNR6(TK>umCb%KxriOS5B5K^-_Kel@e;{PM zVM8MDb$|x`!AJt$-CM(1Gtkq(KZRu8fHzIrA(=&_VRvz_wt;^xl4SPPS7Lvsfj>5k zrz^`-0?x&K4?d|I_{$P$ItfM=9l)!t|5YLtQ(=Sxq_Mvql4K@NhBWbK5aDA0em0{C zY$kHe0akHaI2#P1n))+|9ECW41EiV%6q01t`kb)U%wI1;#3wo#&i6tpn)}-z$@Uc5 z;z2#l{cVvXvw0AzR7W^nd|>+-tspkB4yh8s~65I)7Jkw67fy~r zNJP5+0`ji^E|M&E@E-UKc^6hH{I5JGG!KSv5f7xVzcP^~Fyih67V;}l| z6vTUBdIbA@HoSD^KY}F5`|;jzb_mIDNCMszAV-m0K;n9D7~=0&mfH%jWH^t+``jV^ zQAE;rhhyCt;y*wnp2*Puv-c+OT29*^_lB)WJ>6gIY~qaA^g|cYklASKF>LC=R|(L-~a#lpZ8Pyv%k;U zYp*@8J+1BiqR5McaHy-jx_dI8`380>uJ(3P1a>N}_4ZT*_9d?K_P2<$cX7Sf$Rg!t z_zF2Q+0#2lL%{~c4c=Lbz;ezF-g%0^xJpz}-W!Vi_^ZrVhkNf@q&!#Ww~RgGI^0{XG>_5g0KVrk!uwK@d4w>Z5#INTyg;+a zg9*9E`&E$-3E9aar3Y}jBo&;i_j=n1lDnC5{@3=#jP!P~NO^7qAxtyU+e>M9p3CXF z&pTcbr0YJfwIWE@ecr{2K<4|sQHnt3`@N-#K;{R$`UhGGbCCG~Z>=Eas%iB4JoP`L zyzZW*G3#g0IV+32W)au7Jm|Fy;wAW?*HICa@jP~js9H$xWHBbaJ zW4s23#c9TPks_cO>#aXLPBYf4bA%wE8Ryk)7^fNM)mH>G0=miHFJWu za{ z?*y^)-08Gx^r)9U)}}poCD~qkl8`B0ZHtuW1`xtDQ@pK}2DNvp7b$|YPxX#g1Zkh@ zovH}ZHO*_M2+}ppyI2vVYq~c>5u|In*RQda&|ET=PLug?@pZFk6hHGz`Ma~q& zrt7p0#?0`#3Svj1m#8dec~@A3UMwPOeyn}X@+K=Xe1Acn^yVotnP|9=ddgdB5jTQ7 z<<)7zvClUcFP`>}u!tKkp7AbH8jKFldOa1v=^u$ICVq1ikTpysa!Enhd96p|_*Z)G8YyJ=;QW7e&VAk@^-{k@}F%M}0}N z+J)Yp7IE$31@9jPNQZN2CD1$GBJ&M&(U-ha6@j+=lGjlY=*Ek@>lA_h{E9coA`8gk zooKMHc@r$+Qu?|#>V$YoU-zaeg4Vs*TYF-hX0ew&DV}3*c;@6d%^O}_MZjl?XHJdN zEb;0p0-86yMyJJT-t?L)0-CqHL8r%Q-ttB%0-CqIQtw-f zNa<`rt>C}jmS-@{d{dvaMK1UEyapC=dH9~UQW4aa_q=rpn)khhXU5}t-+Rj<64%ZY z*9V?Ci)qTuMB4x2GXtM^?JeTYH7)lpw1|Y-k3xOwjkSog5xvTrtO)knR(X#rf<44l z-qVU;UuKo}ydv1&S>?T~2=;eYc}p$Q$9zsJLjR)JS9yE2VwpvrJ!v)mYwsXI?3|Ic zf^WQrityW2d{X5buZcz6zVJ8R=>>c^pTF_iSfs*?qlt7Qit8KiVvD$(|JLi!I-aZF zdfgO3DSzknYZIsW&Ks@>Xx4fo+s0|udXp3Z&G+7zv*R@1dovUP%@5wl_HmjYyonZ( z{5hUd@uRn}0BK3c&)$jxL zvV_1ELN@akDFR#NoB2y5RPH0PUd}r#oB8i44OT_!_@62=d!pn}MkUR$>Hmn#CA?fiP3;xya&dsswjRGo{+qNd->BE54f{EXRd zG_92SEfx9X%9QC$EpA7@orE&q5po-?7VhX*6!7WNg{(mM(*?=ZZ7i$SyZTRAq&&9^ zA*`$K>d#Y}Rv*hQ-fsSX6`9>#UXa|)|42i`B*vc?vJ!cxoJtr0Sk@U-LHS4(9|1b%sG_OJ^fA=DK|H_ zrjuzD*Pi}BMXvsU>=hBmJ^f{h{92b*iN`QfuQT&0H=nE|Qz@j$H1JIqK@NG1R*WdF zz5JG41sOs1UC0^ZVeexs}qjzrRFjn$l`~t8tVz|3gK(6EcDRdH$Cg>S_|E1%(Rzk(UeS%PDr2 z=McZ{6(SEKzYxtKes@LorTk$%{4jr%Mf#X-L&OsAVSfE9Eg#$7xvn1W?`IKrgXTzo ze?_3P9qAvS2=2=?^xG+d`!dJ)9TmYXn`8Z<7Lj(b2gP-q|C-W3V{GcbrwBMV_17qZ z*qiySy0gsl$%=;DY(3fUU=ey9l5*?j{$#z=pQSX2y}7^4B5rIt-Jf(d^C?)<^Jgo9 z*4@Hy)gw;R!tbmIXj=Mfu8Y&O^v(5xfaVOp-wkn^GyLI-faXkpU3r}5Oh0#XoX=T) z(_7*+XZfuZ0iRa>@V;@HR{jJYz?1GqeFXtszuzG(!u{)5uC6+*U#O~ zGCTX3=lYjeL{{V9n?P@1`S%EtyJ9%qzwqdmmj94NoZa{f{E3R-Htq%f3<+g!`;pF| zJ~w-*%9MVtdPMXS=Jv zn?-FykXoaG;2krgT2UhL){Re*d=oUimxQv|mcukl+e0t>@E{LTdkx43Klrxn57 z$?N?^1<2l%(w_cT77=;Ikvup0zY0y>hIWPjx51nWq4|txD*Rn7vLaP+Le`u}bF_Z` zfdvT5JitF%k>6_`0u+t42B zzgB=;)Q{|e`1{-`xe80y!~9+rS&?GShf%sl_zzh`WKLg7>tp^jp~}+3;^XnBL&rw|C{C_Eed&lGb;|dVIb@;G4(@zu8cc5ciiK_j@SlWENujTs>#x6?IlJ*jj zzm?M5Ml@`l;AMZRBBN=)fc3FgeeWLTGuZ4)bBi77lWh&ZnMKOYokYW-UiTL%((z<{ zrNUo$uY~%TPV#c7CH``Yl$-n262hDQsF5NeZvMXQ&$fund|#q;{nuY(5vNhV@BD=pk#bM>p%*=U?|z$yIqbTA?}rwt$gR0uRxiKz4_BJ9JEU~J z_Ztgh4kv_V{=si4q0C|Dla)*2{DWWj0p?s`{zb^Pgsk(IDY7pieA0Wpf5a%8tMoh| z*?1$GU;U;QsW7eEO0E0NUucoR<^s}UNA~LW1C&^P9bW@stlJawg~RGh-ePGJwi4g zf+>RJF1b5vR!^jJJHZncaa#9Q!HbGu#dWJ-sUq0d+d5dO2=?{14b~|FZF#$3|M4u3 zvp>ImaDyV)q1!3A#UgG$Zs*{3Mc$*Gebyy*2}W7O=^MKSUs|Nxyi6k})9e}?I)URV zH>`nhJKZffMv*tDZt$2=KR8*D+x{spP45|;X%T5V&8WN@1m{|0zBzaiD?dV=oFu5R9dkVF0Fe?#i|6oZX)B!>8FiR+Lb)!%R1V>uL#pMU5S;WN^ z2K@^{-AtjvU}PfH!NHtFs6&H8C%U-qqELqh%`D>LIx@J}A}+3@f?XeRp(aqMqk_mH zF4VC>D~q^L#|5t!gnH^Unp*|6CNZBCwZ^m%TPRI}Efr~c7LXkjX{Yv5ngqKm^3rLb z+210r6*LLjO=iw+9BdMFwaDG(En0*9H_3c_Fw!D}&839ANXUsn^G7+BD-i;&JIklr6WtTcDD5SmuOG({dJ zglSp@Pbt#uG@)r7%vGclAxzUcc*!Dnld%J`B0{mZ34XMQ8-?2jnQ1odHaECuYa485 z5qDOtZLqV@n7eKvD^SFzZP3pmgUx)3YaJnH2Md*E9MNR@(y5PN=yb=qHX$8?2MUmS zgq#=56ePFuJ+h&F8Lhqr&nU9$sg&8BXgUQ86dAH8ZMuy#%uob0!-MFBIL+{&u_B-u5qK}gX+{K%6amdWLAyn9ntOt-7Ll?zobvhJV1OXG z`=g9GhLDlL5Q~)OCKA%rA|sXNwFk52xF&QuA{b*4cRuRAV38s?AN4@6RuPoMvngDFT{t!MeBNG~n8^NEFu~s_fd}ogDmnv%%|2S!S~3wIB6iB;mB+6N@a!;g-$x z;0ufN$!)o->{d(piz2&!Z7iN0ULqZwcj(IG|y<<7MdpE(H0>s|C3C?_1X!7@Ng3bkqy>}Dz zP-NLaT8pBaICFwo%Q#fIdF(m0+YI*AQ|c<@~F`A@57`-$3f>GlejKNHGw7}eXx<7YeG;d6E10baXx!p{XUP=d>RZ_1T-sxm0!eZ zRs`!50nKMYht+YK&w_4>fM#XTeNCKZWzbs@(0m^B{3cHGd2p*mqy#Bb&8lFOAh~tf zjD1n%i(rC9+*<%&1n(Ch{1(9K;F|)3-vanLsQ<0Rh1kCd_W3Rz`!~TMih$`AjxL}X zMK$xMpq)j^&C`3*sXan|4a_>`GuSM8nO>Wr*?KD6(IVyM6+*b5PltzCWQAQ9t=FHC zTNGjIi_bkwI%_yoLw$cCS@j^AY`9#J)2V0Ux>^$M{}acxB864QlCYN|SeYyhU$#hv z`KF)T>?jM@DDu;qjCqt~&V?O+Wa?u zieEUCtfL6Djz!AN#}`sR6s6ZXtpMrBf^UW$v)@&8+a&aAG3WVaJF?73MyU1x>^6+zn13J2DS z)0`EKR0K4w!rq(5XuHW3 zF0{x3v&$-};qAl5TQFzQ%=y$%`>?$rxnaN1J8OiT6JDUmKWLF;__d5&Y7r@&4|~#D zL3o28xq4@&&1Zyk2nSiD+%&&jG{z3$(t=Q}Ny2l(uPjoLJA68wkjxo#e)xkTdr>OR zYD6|R!{038w7B!b+J9r2-MDjpxRpgJ%q7I*R{C~+=qG48hDRukM`P2u6nn?8M*$7D zuM5Jyg5+jDEGP3X4DV3nWkQ(d!f<#&sEdeC=kP0~srQ1cEOiZkP~@i1=w(Qv=^Fl~ zNOL+1%BS+WhNX3FDspWIVa{E{zbO*Z9uU)96mF-;(S$I~MPYqKKBE4aX)X@;QDikC zOmlJQ3zA5NMIg^*;ZQ{eT`wb1w{WB) zGYH{*t8U>~MGm=9_WCamCo9sN5T?02oGFNv`8vw6E5aX?X2qLyo05>L!rv6>Mnycp zBBfhO9`36-c2&5AB1qR&;kJq(T~~#>31Z_KOnj~m|D`ks%}<*Vg!BlHRD|vFaX$A5 zk1GhpqeGAI0;Rd}pOUT~;iZZUAcWJ^BfLft$a8IYlOmAk+OVG@N1l>04^Zsag@Y7n zLdaN)j1a`iJc*F&!wH}{lFpA4(leZ@$ftDvhxb!@hO-p;kr0-rXZV~Vs~(pf=NrNo z6j@6M)7%g)RwQ-0)YTiqcNE#05Uyi4hMx#x<>B18Df~id-quhzh2JT%QbXMou2-bR zv(i#}h1sp71TP|l*I;{vn=4ZHLdp5^a2rMH6T-2Vhr0@rkNxIwuS$qlfb=90Zw_xz zKJ(^F?7hQV6zMrZtX%dEZz~AJ>FOQcr8E^PbMNpzMMkL1y~A;e@QD|$Ew_Y^Dsn9$ zEb}el6N2Pr?h`&+30YWxa9Q*T-&Q_b(OL?ZY2WYziGoYEnt9<56}N$qrSxVJ@Cr1(4%U0O9m!b1v> z=ZI!#*xn*^+K@Dm{}6Il*u4OGnUG=OA`Qj11ZNPR5#fIekT;3u-f)G4%GbL4!mkRD zZRrfmeW5jXNBhe>Bl8HkKOD#g@JP1_>9*XH#ClZtiACHh#6#iMJ21_PT3e1Koqun# z(irY!k@8#vLZ(xwhr$LzlWKIFSiBh>HdSN~Lik0nG2tkSxcW0T?7UOFZj23kD1!Pk zE^N9>oMv3uN)gbE59{w1rx_o5ihyQ9xVCihyQf*z@mk znu*~+ML_dNIA^ao%_HG!ihyQPSbv{5&7{y%1T>Swru)TdCWoyQ0nMY~x_`uJ9u0H* z3j&%cVb25NG*iNXihyQnc!(FLnHn}#1T@pa9)6r=TG&q!&`b}bFitZ)JjNo@-oKz) z_gHwkMO;0c5t6QF>tWe?nPtxmds}2h3M*7I!!e3rJ!)n+tAK{*1vA5C1vI>u{Y1Dg zA8?>`0IZMA3J)njczx`tu&E+gAA34%ZV^{kp9vfPE1s@r!j_64?azkG4vNz}8?Lg5 z(_rU>Yb`=nNjEcw_3%02AqPt+@OdsAdPtnlbKyf45kBuxd!HLlvqtREs8F|0Fcf2@k zt_b2<9G)jgKCZ>#0E-m7dmBEaq41vO;&7}*B(AlT_Qm0&$_IJ)M);*7$e$(Q1xIiy zB-Aey>aFlHi_o2Y&H1;(Ns1uUQqAWDCD)Fj9S_oz-U;_QlKD9MtM7*UC<5E6%fkH> zfkoE$!~GS3Mb;0)#ugEISiAT*Y*v80MJpp8hix@fBRap)nsoY4!Y&2Kd4wzvdsxJs zfmspWq6kjBtO)N?1SeiT4@WD4JBF*m#}vW&met{Nir`etSK+IQ;B?K`;d>Tw=Udi< zt1RNuwI*C^kqXm++92OSSQB<^=*lA9pKMl#i!I`Ag#8#Uvk0B#qtkSJ_Gw*s#8EC3 z=h#nSV?j(ex@*r`+)rUUMH&zyG+h+gfz~dBrk5hEiH7^JpTc_-X-Nq8Q9p;16gi9# zUc>)2T%gF6U&-p_Z{b^lCyVZ+X?x5)I*W$_sE+22>D0UwS}dzHHv2e|BU)tq&&C2ea1{A znggQgicBYDszu&Vq~m=VGt(kpDYEO}jG1eZIxSu7i!9Ptk%lDC`-J=}8mq`@v+3jv zAqPhv3S#BqS>&Nn?hN5`^93367110Pd5X;KoH0KVa(Fb?)G zYEkU)S){Q==GBJn^v2O?O0$Y`LulG74Xmj*jxJIJ*3=tE zS1JN)>W!o86@fMN#!-buDolebv*rjJ`w&I0c`jp`5Yi+XsYvbHQ|4qsj*rGF^0u~= zrqQDoasBEE(JYI&c6vfIyfvrYwbK)#35uYdo*4CO6Q?;b8m>Chlo$2K0KZ?L!(<#ww7AZF`(Ag-aIW=nBj^kQjV8N+* z)XyRk7u(4>EgEW(k7|7~M&?APM?VzM>~=4mXN#hYdiDP7stWC7qB5uXCO_V*K`M45n6Md)%&dRol)+A`! zMlCx@DA2TxIx2z^Y!`LDFiz7h>Y)f|&W?I?j?kkp=lO?GWwU zg+nbcDARMJ&WfM}&x?jzq>nkEp;*B>KU!%K+7;3h$Q`4dyE310vviQ;VaI5yMFyL> zcc$!qWyffd(lEk3cBiPSl{ zE?y$@oi5QFMNZ5k#FqXRY#!0=Mb;C#L>8cP_^`w25UwpOk3&wNP`qm7klhU3RV1Wq zRQFOVv+YI4P;IyuZq)L9ZgaMG}lDUu8GrJ6SY$WG(Dn$*T!jjL?aae&9zaF>*F-n zM*S24&2`bNo^hJ%qJ@fp=K5&%jd7am^ECl4;r5JPv@|k)wWJ=qXY{E>%5$gEy#TI1 zH$>T+gwF}oi*RkZA?j|C3i}f7EE?c%i0bxYn)3W>o;ODOTSPdwCC)cSH(12I7I$;h z&mteCz_}t?r+nC!GV9nCQS)-q2SoA1$|tlknDP`#y0AZ;ke{h{S$5g&GhwvdH}0vd`o-ncJh5f|z#qWX%0^HvaZ# zh9a2V+!@U+;KL^pheRJ*#EmIKqkr|~*yW8>9zpJoj#LCA$gt=*i@0%TcyzkbV7wR} zwNwP7%<$+zi%2SNq*RQEW?G~oH)lUOn@a!gjh?m0f*fpdkBt7K2yAhWjFwnrzJXQk zk(QAsJ4UUd_4UE%_js__LnlaIg+u}51qWOw| zW^DB3?Qxp1(RxKdGcKBSXPjnSv``VyjE`Cljnj;eIw}I12~oe{aheIya794#aMb&r zIL*V+P(?s9G3qcfPBSs;rU+;riN@R)r+Flrp$KRuMfFC-X(mMt6amfTsN;iin#oaj zML_dt)M#{^=F#XBi@5eaC2CuMP;)m^qDw6z{TS~%OpSV5WL_F;_|v1oieTk`dUU@c zSoxnGO-k^2EShT(H-mmWTBM=C`SGaU7?ycn8k`@Gx+wzAk4LXr#MR81(az)IDV-VZ zZxKnwZPYHFh=y8(v=o|U^DABdj-IlJTf3MY%@dk@Py2MV)FLjfr=y;a#N&E88mI_z z{+Z~*NpYHIqBV+u=Gmy*qj8#NqZ=*adfGYBtrl_RH76QskqWav9nG=pqS5>W&2!Nw zg5-uxO*i?;w7-Cl3~X zk1jNLlRU-zFVNejESI=6YLWfZs{FzyWxx;efNzU#5)bHr!$mmwlP5AdW_>y#x zub7K?ihWP!%d9gcpOH`Er?&)7kaFLW&Q)-}iR2RVT!-Q;(KOY#Mtq)+mLzZf0(fbP-(T<__8 z&tY6%8ME#?DYqov?U@bXS<_M51;QoyNcc>iZu7gPz5VwZX$S9jXE$S#_$!MEF2GS= zgpOXHyM*~r{1p)v>792-{X)6?Pq`nQC~_mdH%Mb=dErWW=#`hO@UN^K4hR1=@5lMUpZQkeyZ$E07xslNx?z(yu$3gf1e@8p}zn(wa((VSA z?{BM9w*H{Ka{J}_B=ysMhrf%4lX^mXgrpBLAJm(qJK||+pA~(GjQWo`hf2Iv<7Dec z$DN~3mU_$bF@N;`;-deg6KPj*{A7uQZcsB_+)tL+=|oX+JZo;J6TH=bFHyNl4dkji z9`GyCbe3wkvV1tCCm9}cpIEbTdbQhZE5d`^CNnI z-HbVO3V+XPe^p{$?!x|3^SgD+4EhNPC*{rY4|qWMj_)CSe(uO_HsAlIhDpAPi*bOg z;@NSR>@i(flkX+wzyU&sc5}zR;un`rC3X@&>L11(_~Z0$`~e-tqa+>j5p?j^8z}L8 zulh%S+O6jN*h9yc%V@WT{o+#py@2z{`Qzo4t@QnsJB2^OC+YDW@_-KUpxrH?exKv5 z+7H~hlj+sme!ub+xBrx3m%mH9gzLs_=o<(J`QR_+f(~v?$NQSnb+&pgSw^rf z-DK7NrRsd46HAGF6a9qrXxq-RrjgaFN>o2X{*nC=)kDBH?gw2>UFxr_p1tYgy>G0v z+f!OgdB**;qpf<$igD6^i0kyKxIdHEt0WxVNV5G&M*93neKe3avFT{)b z4u3JaOSL|V>*_DURqeX+lJ8{0O7lPN&zKj>}rjJO+? zkM)LRx*>m0PwJbv#rdFI@7Hl*nbrpxkCNk3(oeVM>^MayKw67l(4BT3IQ`;xF2;{y z?&QCVyw}f^@a*UG%{^brInIx4tkFIdkGH|ElHc!;?V76MgBn3yT5 zb0J<+{Th5ge-holVSVl#)jOcaAm8AJeDI?kir?u`(07vIfhYL@kMpDXu+F0qUou>r ze$&MtAJ0%vock@Ej^liXd~o}=m;Rvk<m3<0o!&D~lYWkR4!!>I4w7Er zPuld;{7%<1u#Qm-m+*AQS^KsA7fQOsb?YGY`$#HR-C*d7_ zI#~eba$Iqq@D)B8BXpS0r1I%S`rszzerPVsO_u&IVK-wkC7ds0?@ZU#tNu>+>>ic! z$NC7?m)gRAtuko>|rOoKBdoWz$hpVTKdBv(_~ePVu350i9@ zeDJ69a^gGmc*qUze?c~dL!Ba^hT6F{PNwED{$zC^4*nZvF~Un z#lB0tP7g)>LHdy2mC{G);eH$GFV;T6FS}goBlyBC#{ZN?(*D2~^&#H=ou0Os>``z% z_+u{Jt*BoZ-uclkMDK9zS^RGQ5c4k7SM*!S{wc`^{ENBUS4cjHn>MR|l6sEu74F_k z1#dM#(gFGKz0l=yOMbtuox}sW=g3YIx344Yx-*@wZY1qb{I351-Pd-X!OE9=8M*!d3a^S0u0s9Hbd6v+3KDH|#M_K_W=A4R>X+NC$jZU3G! z+pU#yhri7l$q#WI-D#tQKkB{sQ>Hrny{(vECcp2F@Nv1)=A-K*-XspWfFpd|ExsRu za%uOOr1P-fB_6n&3Wt1XXK*Kn5+A$#L;0h=!9{quZ)-WeL^i3opF=v}V*ZeBkgP-iHJV;_wxHw%goZ6M`=MX++KGt*>%IWx} z^8LhoI!n*})>wMkgTF)nDuzQ|xS)p%c?;#|eggcV$D`kn{wZY!?ke?bsP-pU)9X4c zkCcxaNA{7Gadg}j-)?H&;GYB75w2T&Oo^*mX9S4^q!uz1l01^sKpnqNn(axsY4FJGra& zJ3gnKFZm%Z#zWWd7Q@%mO>~wA?$>LjzMW!S3SXb)b?XW}er9^o_wBk0ts^J=hzH-} za#4R8lM{Z&FCLyODboEQj{hcIcSpXTuuSUXwsez~P%$PhZ+V{8t6+lAb<8@(=V$zu=@F+#qs+4*2F1 zq<$8|_ZS-I54z*DJmA)$`+Y2@j4yOwX(ETqnq6*TIZMpPT_v8WcS`<=OZQFom;90a zWwKRf_nF~V{x0WH$mXIw7vSiyZ;}ij$I}M>%kPzX6+aJ=HJ5KK@;ug`399eALTQASIN&F2e3YoGWI`NU5)3&=V-mxJibuHT8{HK!{U&!)m> z>AAQaI`g>W^>?kDlgQB6YM^?YkyULr}ISrFA0Zq!cFEwF@J|d{YE(nPV-Am zf1EGbV6=G3OztCkNAkPi)rSZFV|?i^Bwkl8Re!I{7xI7}@+9#;8jr}8F}ISH-okzx z@x{M8`Qmuxbj82BaK+@8_+5X4_ywna>E)`+LvWm*qkZfPxjkT9c5#M z-BYu8)_kw`Z6qJkif0ly>0O$S4ea@8gs+TC{$!O8ogcF21;~Q0J#UsV?XO{ZvgV&; zp_|w3b|>qrd~RFTNz2TOy(QnUPdnsT@n743$f&%w({;&0f8Dw%^U)~&PWOcq1{dD-DG+*iPJCNOU%vl;&eFoBJ{=h11IZLdQLko2c5&U_Y-KpwoK9)|Bmo*)8>UO z3grM^%uSo}e@p#C`l^;2=>{LNm|*WUCHsW;+Q#t|NFJl@LbSWGV$upGCjTXlRc9>^7!qcUHKm)>`>>8||! z{R1Rkap|1|-JgWN!tR5l4E&dBzl3xp-Tg;PIh?NNgOjd&Pn%uzUL3w(Z_o8Q9Q!EA zePis?VZUVK=-j^Y^5;a(EmdA|(?;}Y+W*jV#*izHJ37dp%m<`TT(aHXn~Impw`zaN zfDhzBym!4P^(^kEdpXKa#ucQC?g_Qyc7y%Gtf~F6v?J{AA^+f3ca8`7Ta0f_`P8(Z zK>CyAk@O=!P%g;7FFSF$(zt8OFOx6Nczvnd4wB`!vHs+~GV-lh{oPpl>iGTD-y41} z`8wY2?`6zZ)}J-+p2_vA#7z4|+7s%7-1DV<#*bwjIrIvt$2F}7o0@LEy>INweXYIc z;qLcB4_d6_ySSC>QO$5V?`QeYdaLbUTs@5AjxJt*$wqOJdR#Nyg-^zh@Pa!!#NYoX zDJO9uf6B!DEC6X_A$^@|dplLzTd%7Om1YCN0o zXAuwhz>jo-Pt|ymk4smQpZHz=fL}2j@uMHCX}^W}UQJ!>yJI|oEAtx~ckDWCM(@jK zP2;&-k4n_uL#a8}p7SU(1FV}fk6SmT;o#CcJ7k5F$4TKwFCy6UAYQ92WIX>`_b5kWMf2qn}mY4s}roX!KLO=L*14;&sYXj{( zFk^1|fcx95`7$Nx+VJ-hvqb5TUkDfXXYzEY&zO(q&$liYeFF0e#>rZNc_fC@{cgJV z%jd6f-zqze!=)|G<(u?_ALh%#H*3qE-$E|r&wN>Kj+e`c?@4eyVLAyX^^H!^+VY~8 z{PN`mxi%&|%M1BX9^%J5x^lWOo)mMDeth4sKVxM5fnMC0E#!LnZyv zf4cDz^%CiXJ4Np^h?_PK>-j9$$-ubUQ1$92>Y^UuTt4_A{cw@L;ub$IyRAKUMdQ;p zT(2;%&6;z1asHH;N%niGImx z%%$}NweutQ2%KFd+$%`pSQijCZGOH?^eFgI-f=(Oi&Q$e@$aep_auIhy*E?ybk5d( zBkqy~ah*>JUd*2{a=tHR;&i~XdHXO`f3H5=KmI23S8-|ns^dy>y#n%{v>DT<&D~^+ zoZB`05{_(rD~|MnztBORR3iN;)1asHi{hp=y}*n4>2(~<$9TBv@N7PvRflumlljp6 z1(6f$eB!3f%X<~#)RWed{JCeAxCjS7zN1~#lwUF&!v9rn;ra}Z7gz@wQ7-91yhrMK zz^XxU{M8~j!X@3R*Ja$gO>(^k^i{9-V4bOW_+C+C-#m*M-Saxt$?##giXXytR~ zH4TS&t4l{s`NjM3lxd>(FW~O1=aR)u8~;P-~u8@;5n-zi#&dv7eJszTgM_huW9Y zoqqw}*AP0^mpNY6mqiXbcmI;;9oOi-iiAt)evy+~ zce5RzX#UtTUd~e9Zrl?(cmE3Y0d&vlzCZE@^|#pgitlid?)bRs;>SIuV*HZf!3XCv zV7D3ZLC%eJv5!5^o_kIianoiBy-v$|$X{hI6m}=BJWuMGxaqu|Ii%yY?ji@~{a6pc z_nNwczY#vLhavm4DT96w{+CBcd&Rt?QAON;`=fFHQav}5bRie&E!Ha_zt|@ryA^6D zVU0Zpf^{F*xlWmz?vi$dejz!}Px`U$hI?W-#{*Z^L)`iq)<=@#m5e83r%C&D8MmAt z>4S^$2=u@=mAkRy5#~S1@|AJQr62Oa?!wo$p3pmUY6msBo>bFy?Z281_iP{6`Q~_g zo;_v6P3OYGSr5ay5$?&s-gMFxK56rzwT~q0jI19bJmM)P z7y3WAb%u$)aG*V(mNFNl#E<>zxS#BZ=zYhXeinO6Pu(u<==O5%2j~?e!nuD#{Jyo{ zm^Krw{n3;;@i5lsoWGOxqkU38W%vD(>!&5=1$qaR_XW1>CGp`NG42_|?qJ-XQTv_Q zO7=e?AI@!wn>ND}=UqSt_xevIesSsi(v8y3F5H4~vKKT$^wlTViGNys{+=-_wiP<> zO9@}>JMiLSHIqCgti)T&G z14J&Q7wIYHN`IO*qt6k!gNvlR(a*A<(~Eji=;!(jx`p=qALud$;}UR;SMbaCjQPjG zA}{2K<5?s0uAV)AmECad?E+3}jb!?$4HEm}Iz0lF?uXbJAwV!?HRScHv7i+gErS>nKi}3^P z8SM@(I)V!1Nr zUF*8~iSWywmHh28k;tf?J*W0)#h=dmrJXzb>geCW2l@}nXT$Rt=>OENbp0LSKGpRM z?2EP-F6DEYJqJtu^mLXtW5(P4z^qw!5c^Av*c~o4?YxGIbCJu13TX5%!9f=ig^Dj7kVSsH*Ovv z{lc0Hq#m`gt~)Q*Y+oslo@z%A{R8)Z+*3WP=SzX3KNNpj?f%nwAZw>LYoj$--6iJTCX!EYZdsUL zY2DYLenP(&?l-a=!jJ9++4p)`c)cj)+ z=WCh1OOi8fte#rS%%r^LdLZHGwR<~n%xJi*hAYuznnJ^!?OX>JRh+xQG|+9eC1>=QHWy*3Nz9 z{E~NHO3a~FZ!0y!tXpRGy@ut;nU{uh`>JKOFJXCVn@ipyhteD8PkOiIU%4EGf0^>n zDgRo^zqazb_~v2sRv zO8(J(RGWYF5~6i!UP(?;HXp?Q&(`?3qQ9_T#~lsEcy$$!!>FO+l?s}~|i z+MG)LIFIXH?D_qy`LGZ3FEOXj<91f6>qTYer#-m5b7rD#f0(B^SHjW$nhj5SzmB{2 zeL>CG^AgO%wz@*n8?Bb~i0jS^B>k{UG;@~Brx8x{i%4HGKUKb0QOqv+#^SK=50}Rs{&l~T|Ib)E06fnxIb8A;bj948-{yRy z^DK7UqH)INXV&ab?}!)H^C7PZKa@u?mtS<}aCi@E>8DbEt{us4Hoq>C4FC5dMUHQ- zl<;vsjpMxqM?HYv2mKcQ)q3AaTzZ#vk%Wu;i_iDtbgo=6FRM;3ykjHvLCJS_&TPD` z|7r7}-j{ixjg&(%y#jiNxM_37-P|teoQcjuVeeVow7J;MH#6oaeMdsU0P?+`%syeq`eHdP|D>kyN?I` zzp{JQ*OVN}NwgEVsDDTg)|q8pB%|?VO)p>a0pE|A!ts-R=4tF^P4B7f(s@pcm*(k_ zKWIOa{>trY!+6&8|5V}!KdhTnou4F+T?Z)1r?-<{bazkM_cYhb{2K52?1ONXu7x@#P zr)NwpvM0&)ykY%ThCnm-u7B4H-t;pb9pC#=6f62 zFV{4G5pUAHXBhX}WcTZCb~8rS&B=bYu8YgLeyn#oeYNFNQa@3TYAVO3qJw-JcHR3F zq8GS!gLSwhzBTou+`pf?Uh4b1H%tBq9j&J+o(w1Ja9P9QxqT(S3r_dGt^K=_{CR>T zoyY|~t{!fwcJsL2vV@QW`JcqUSkKAHyYLBF;9XY z`=ojUV5bk+u-(aM5-Frn< z<5@HRE-t?kvuhL4XHIxjNEB{3)P$pBwW&8RlVn&A9X92 zQpQZMZZ>~D6#C7M{iU5H!++a=qNk8|=)L^v{7rYPnopANTKhg*%E-Bsw7L3eNl(&` zdMD??XnmlQ)cboHh&$&d35WM7@owchJud(p=>(4Pq-1;MlQw4$Ww-J>vX~c3Ip7{0 z+Bf$7=w6LoKcxOk*Ael46XL;s4fcgb>Ha$W$@ekg$9~W~^(CFqWB+kryr2JLezJ3C z_i@~~T+A=yh}(z3zLDH_aN&#jli@*^#Ib(9Z9}O?a^5Fx;Kz5&*YR%B_7_NffF8~B zb*}Hwi-#O4S;UNA@8yc^va< zoKJYquCG>JPubV*57YTjwHqSquViPW0f|lZ=tkTBWzA-Xv%kdPoCDtXm3vEg-&f8j za6NkeP8lD?zBAb|wC{tG-lKL|X6pGK$SLP@ssBHl!)46P7fbn}yf7{$$1y24w;v<> zFge|qar*bhg-1BJv`@cS>OpcHC@G)FL-XCVv=pKgp-MbXK>% zfPNq6fi~8UaqBr+SK|6B?}^JgKkIMO-&9_=miOY_y(px+VNc0FIp2hHF&P6KblBHQ z`Y(H3@(cSS_%8BgOl@7~Sf}?{Fi%E4CG+7fyN{AFi@#vGvZn7c(L*FW?bqA+1?eF) z-{9{u&!u^-(jh;E5B8PlKCANmAwjp5uA^MKmE`9g+8)6N{SVHUA$@qS8~c^`j`B&m z_@1OsmW#xjGB@rn?F{~6?s%=QIkiiJdVzYte*VEP_1U$bV(TK1ANsQB=Wf1OZ2p1t zNq%PX_fV7h2L9rbe46jT(Vh_w`&BYtkbY$MFER$>CGZZPbG^tIj1NgUv919A$@M(w z8$WdvKC+&Z&9B#O_X+!bSjTboHIBRZ4?0)s>3x$$zJB)I zt*m+5?pKzW?JnZ)rKbBFX_umJpxu+cWZzrQnq?!UekH#b!|@&!^p}TklXi)E4ZM+k zj}`BFxc4@yUI%jZ5apEYZ;Rnr7Xp2fZe!QK5I(t1gms)4bWP z*JX9zsYLgkN_F1}?_uY3->Fu9-wEl%J{aPGANx$w?w#Ep*ju>eHLmxS_j$1Ig#H6= zF&y7_{aN@)`TzOz=cq?X7x8T>H_88x-U9@mKO25ir3-xitXzLAJsV&CkQ4I+xWM6J zo+#(9$S$CrClq_{y~GH8sh-!OzQV3Mk-lfwUoz%dwWs*zNz%{bT}$*c;>vrWJn!W3 zll4PhSK#|+{BAbS_juot?KSXuEVkFc>k4#Q((cQp>0ChVIy|i89^a%UM2r-T-`%o-+=TacqP=KbO_?m1z1(4blhtA1;vgiuA(8I8f91 zMDl#t#)ilIVPnG~Ug*E^@=DGpoquEFfqXb;yu`i-0KGnI_?#oxgChn=J@`=X$wDtF zoL6vv3mp19{GwOV{8{fo$h(eozyEPAC!CK;nPPHqKhJXDUC`?2WZ&A=!!awRK5Qr) z%b)x%<4ZO_&)M+&2lMlEp1!8@5sBC3pX|fB`OUxH6+K|Tt63kTb;nV%e*D2;E*CoA zNN!>N7n|4oi^`MfR`+5T^BpI5az2*StK;hibRPON;a3dDIaXPhB75TYd>h$?S34ZI zAB1}l)zLu@TJkH2PyN*s){bk|+>#bO73-~_1AnY{7vukdzRwQ&wRSz2&iCrN@Zq|z zF8wjBx7c%SaOotEuIHft7JtT|AF3M98tK8y;$e9^BE!?V&jP5DTDC@ezb$QTxs1e$(XWRq@6%Mtb^cujrhsF zvYtyz>Z8Wm!=bjW>$kG*N_~L!(>YGNZkt@!rS->SrQd_T1ow~ft2$iP{P#TRpEfKH z=@Uvf>uRBgJjLY1cXs)_9Nr5@KH~lm`WfKj&zRY|4k_hA^PBr5-fQ$dJ8|jUyS;Ce zF|W3j@1RHg@p4U>9VajyX+E;72##R=;qX0KZr}sHkT=fP=}|&Q_pYulT>o(Tgq(XM z{o39GbGXnuysbUAO6QI2{!GRkI)%#_?{Alwm%FgP)ckH;Hy<8#n6%sEJJ)hfD5d(c zd;eJUYHEjeU4_<{Y`toiCJWdfYrg_CHSYy`N#7k zKF==l=JNTEeO$zcaS(1z^3&;k&>u;^Q+xmMbCbn!*n`FT9r|NAkB{+_&PyzlauXc> zj0x2qK~3c?Mknb`o9XuaW6EIv5BUKX;UQ6C^19rx+>LYd!Dt->}~sloLOS=TKRkX z;Di1|&XH&H=g9Fr8IRDFY$P4df4lmzVZPPNFZUy{Uq<7wLJ1n&lJHpA271%c-`?x0%XE_Q3VtZ?XDP42L{bmn)6m_Pi>c z>#^ye^%h%CavFcFeEi^3T{$6Nq@LD1KQ~-IYwP^O^*71%qFpBOWIL*r4cSj|=L@mEmXv2x`*BY3erxwKrTb299}4F_#7&#zJ{0n;mX42bfhY3|{o|8% z9!&4TSeG=xNvv07Oj~`=SO7oNoRFKfO%Lh4~MzkfVIaB}NSUM&hUQETf1GwWBLKh<=f* zp9shGit8=s7tfo9Oy+P>Zy8VelXS2@g!H34P+nEzklW=0=;HRkvYL-2X6vaU7wmH( zok$X#X>Joch~KzaIC~`%jzb9&1h02mACW2lUGy?k@TEl)h^N`{aw8v$;aoo4&yE-*?YHWFr&vGr*Y`)bry+8s4BB5!UG%%f=qK6!!1ZUFy1$Zo z0sV*U1K9gWNk8q!wUGKC<2C4t<1OAE(i(2HCA95eDi zPKWWY`fy1-pco&FtHoT%fpl*uovdH=^0}XN_io{b9X0qbJ4MQ^SUJ?veG<5*br5>! zzi>HSh58)mi`CmCp47LYuO;=}Vt94@is|*j4|+K4S;3z&ng4D$f8>40w7FUHDb7#y z{K9&-p>ivv!##enlP~x7xje<6(R~uPUx0nm zJIVJ2lKzZ2qo-g1X2khq+*5|_X*EFAs zwI>N*d>;Ep!xhTQ^2qpA*a0CmNNXE%Ljh`&h%%WE%g%N;jb?Ib(csu#GmYMkU!O>8+4`bb3UaF z+u7xIcP6dxaK8;Z&J(|q_?B3`zB;`jZNC0p=#z56kMzMVP;+}<%GFoU!4>-I;{EHs zBOjqx)TEvi_8*WR>E77>faxpqtA4zX$LH30B>w9A3n}lk*~89Lk-zkw^%e2*O}0a{ zCzPMeb7`N*-urj%Id=U#Z7`37yr`FOllfQdo_VTQYdzEPu$Ftgh z(!0vmuC}X>+`n=DXX(Bhw~rn4-kbCMf9G%#uj}WeT_GIWnWK~W71>oF zdk4G^yGsWd_t8(HUxQ!P(Ma#M^SP9{EaLRi$xo{XWDMFb`U|-6dR+7Rkz9vC`v5=4 zRm_iaEmjYc;h@Keena~sdj2L^FEC!A9>HI1youu}Eq7;69ragS*IrORfFr$0d;Bur z%IZD&64SUTmrJRxSJJy`cHJYV<5ewF?7e%eU+>#f`em#OB45U--5R(^H}}I_e<0tX zlVsfh>#C>+Xs^llqtMQZ;aI=;;ciM6wTsUmW*7Q~TfY!_+`Jm|evI>?UuJc^qx$uQ zjSYwTfc1i;JebcH<16%T-2n2Vy=YHj) z4l-U#y4*RNd^+sJTB`#X}f;K{W9O@ zNV`APGly_kQR8+UdjaLw|z* z3bjiBKjyD-zgtI3;z@oIp7ueMZ@iyH|L*#+!hXE6e&NbP`s2T5{!%$!=rxcRZq;&g ze*^sj^$qDpeo6UOE`QVqtp9=T(xYX(g^P7p&|^Ii^b!x9H=Qkd(c`~Kc!Z0$!`qx~+s4qVxf{sHMsuGc2{gC6n0FYV6NU$i%@KVtle zkFzQBAALXRSA7q#DwpfcqdG6)@BCx^i`(m$KS;j|ocklj3+cIiia%p|>bZ1@r!p?- zBD=L#9`GUi?HVp$PRpd+p$|!Vv5t{debd>)LHa@ezcs&r{MEH{{?0iJeIy*!0YIKjm#S=>rqla zGdj*YJz&$|;0G7u8sc;Fro!=r(~Wj>=K0(%$bK8GdoZ3%Kj<({$Nh9JU*G3Ieu%zA z=jipFDZx{!KROrh$fCZ%#X3IT6-xS(@606aJ>#A<-d*~m^T2pGdKdL{S%*1mj^tDP zd*$($zjOOY&M)KP+`Vn+3viSDZZRD5oCa!_6!U$QH{9QJKNx;l|4o}ty8bHrwayQ` zrt7{KPsOEk3ioh6(fN0^uL~Uevd!#yeX`H0-!U#F$FmLl-T3&b-Jgfw>3J9H{_T_; zkN;US&$_OklKP2p(6wLmpT)kf{e{~N-4~z3e5t+Jc^18!*p~ezdJnGDJhPAJ9Y~+( z^{&0<^?W-%ZTvh-*3HRof$fJ%%zmpmzEbUP%JTcX&_{~JC+*tJqmuN+;*oG}pBd@H zxw!Waka@AVX|wf0$q)E1)%_6ov3`ns6XMc&X4T)4{nN(!SLnP?+_YKnZ)wl)fBL%U z38Ejs{t(UqB>i+h{~}4x#>#>AfOCepcY*zx>b|pl{5!+WH#4T0wIi4{O=9yF*AAqd zoFDxO^l;2exEz=-=w;sG{7F4A=|?$MXn%wEd4zw)AYPpR+1PvoeY}2P-^;nL|0?Yh z^R~D@lb@F)amby-QE%nk51n78b80+ZB7g85e$;FD!MBg?H&RC2wE6eTQs3ZT{c79~ zzIfLe?F#vjbg>_Zd&zNs#{8t`aH`{zs>)w%Kb z+`T{G(2p=Kyy{6g;aqT2dymlRPmue^AEkeY`!i;heaF|)S0`Uhze_xL2gki{fpjGG zr^of)9Qd#8F6Affmd-=#yIimfvdjB_tiJ>Qq`QyW6$37Q>TmU)Bl>H!JM`0??R~?P z!8ttmAzw0FGTll4XnW6)euMLjZd_<+?V>ul{!8!9v3?-! zgzmxX_s#7+N;?12jQf#{S@@pRCm9FQ=6t$G$o&iar;RFXSFU_pC#%jrUu#(Y~Q{ixt{AI#Dx-LyGC z?~x-s{N*}+v&-YwoH~*o;PUQm$~3Me^%gGn#h*_LUY&o(7LxyPk#4x3k7hn@e*!qW zELVGdN2(C#@~zrW=P`#6JE|84+WA?^ARVF?(0iR$kAeP@G08wO_T+E-bdMK}B z3%`$lCNo% zgWe0a=ci}~@k8M!?T+5V({>~K-R`_~5>L)=2K`O=K%W~*+tLae`m){%9jaJ&oHl&`at!} zmQSg9X()d$)A2Cp!mAyUDfe-@)A@Q-o&T;t@=siM?;U!LxX!*D#$S<-&bwLr-Wazr z->nX(cVs$C`5-*TZ8^6|>kRr`)*rC$P`xYjf2^mZ&Er#KoKEuT{G7xO{WzYkWO`Dj zOK-_1oGX=c?}!I(@%Ruw))}PVaqlR@pPeT0>|*bcP|vD|^ax+mc)%C$@xs5#p3|mr zBggS)^7#ik#FvyO9=|J3$n%SRudx`O)puV@G`~yp`Q585o)7TXOpc85tz3>tdHWBi zSp5OtV)5X+#G5h0?YN0{>&_Du%Fp{~OvieJgs-_gm}i{ROUk?1 z_w3UBKl@&CiFs-b`%BFj>z0}Cti7k4+18$Wu9ZLk{L>}ePAbo9+l=AxDTDXvFH-$u z)gZx>{_pMmTelyZ+LhaL#vEbYtohlxWcR6D(IM64&>%S@|Nn89m2RdE6@&Pca<&5Zq}4IlXQj7I@OdItkjLtlPM7@Spk# z^TWPJ$`r$k$(O{D-__+8>=q{720Bmu_YN{{!%eQ!B>l{g1n(SJ?gn{b{dT5>AzJri4qjr<@VPAdpF5A3=LEno$B7919>z?z1TzQdotf5d!NLeLrVHjP&;wS`gzkj8JA?d z#JK44LHd)F!Fe&zV|+llWBpg?$)0$I^+CF)s_z1U4lepP@DZ2pKiK}uy$_k^r}uXu z|DuLkUmg^Hdqzi7b{Hr=0NH@KkxQWZ_kHrUh zO7i)S{3@1@qjxVXCwjly>RV}p{uK4MODJ^Wrp*!d{ac#nS)A4*cH!@&w^P(3b{b$v7VMm~*^mk1t z9Isq{Aiw{w#4qpWrcASaxjv-L9=dOsVpfcvAWvI@vLKlgroXRkDwp$>Z`4Vr9J^dJ)fkPa zPV%#ud&485f3&i0#$bPO<8Zondob6(5;NSoDTDQs$9i-9pm+K175!mHyYE_J+Sqq( zOU*kAIsP)!vL%1dnQKp%`ubguz6&l-`(os&X1=s)7m7jNxf?e7Vct_|YUr-;buOEna*RGO3@~&DsAJ0yTqn-TK zuJr%T9*)RYIUO~nL;8xj*snmp3s>y;ARmjn$d5Sx%JPEmAEU#03a7Wrc@XFC@w3#6 znz_kv@K-*E3Au$Y=%}Bt@xfm?T>N{Ip57_ddWCZp$#bf}CBNvsYMtjL^*5OxBHJi=9tqR6j0Wo*P>}Sce#>_cGA#t8+2`OxBa+ybSfAYP!nl*ks}9-UE*( zsHauW2WemSRxXc}sr|jUo2p%Yzm1Gz#nNAO`>UKERnxh39h5iRWIiK2z9T=XYqv@H z(N0lcz)#{UCO55{*!iMcmymdY!=?RHJvRyZyL=h{fulakcUu3i;W}dBbC(vFc2&~I2z;rqL_Zjp88 zTgc`51v+tSI*z(xXF5f^*+3l0zb;7I(_(ogGK*|@1JK3aJXEb zxqM~4KIu{kEtl`7^pW`ufi_oDwtyG*(jFG)U1d!_o5SU*hmQ_}BO z?njd20s60GfBr}LL2jfA{;K(5y{wp=#c&r+^q-XZ*q%e7^Ip2|Ao~w#^Zt`kKG^@o zyo%3h@jfo}cXs)Qb%~nN9cA@RT932yE;?WKF4qgXZ{C|6nup1Jt5n++*~y+I?G*1v zB3yi4M(>U(9r6$DCFv&RjeoD)FCtyC|4Qcp{~z|gJzlFRjeos+?{n(poD^penMpDu zLYZ75DMFD(gldXPE}23c5}9h8m{N#DG!dc5B^pzNj2IE)(wNEQ5{=swqCsT*zTf?< z@4NTA&v~6wGxPiW{`hr1tM%Q_`>ba@>si;mZhJ45E43#j{v3O0{v5mbO>WKcyW+1a zJ=VUI`u0Y4Xy^vtZT2wvHTBhdh1#FJysRv*BJRI>pAwJ#(pmEXXyt&#Q1W)-wNEd_=|@62H;2^M@MO1nw{Q(Qcu$dzB*Ju9x_E#GG&MllfX}*NZ>b)$Xa@XZ`Ct zSiQ0DM2GIR`2Mgc|NUsCL;HL5J!#|9ccvq6hg^Q#Cp(xOlk>`1y3LzfzrlN}Xz*pJukNSHd3)o$NE>Sxd&TV|?m3M8q&>E9b@Mg*+U#cc{a`$r zvwETOm8Gxu=SU8kVBwy<71@vaX8h_m@I9^btz7&R^Wgkl^-uoWPg^|lHNP(Zva3w) zpRTlaO#SMyPca^zq?dooMyie5?yDA%Ezej^*Usi`}ig(|*wT z@$a~AA`V|uZ|N_6R(tug#}w*m&)ARb>C&Txx1ad+{b}`&k}F?y`7S<}k<2sK{+zT& zxvOaZFh4IXIZCJWRJw}!(nsm7-kEj_{JK-kdam~mwLcoSWb3WUx$0NCUa;JJy@%zm z)wg8)VSLGW;f46S0JvA*x9gf0wRw4*Gq{&_h+JELZbbE0?Sj51pl1uGb}pF@$j%GA z;P(;Am;E#^ApY#L`2Jt{bKVTh5224JX>Er<*)Kj<*UBo#aG{T z5S3f?^HvW6_m#hIUUss1lfcjCgqit=H_i;#GF<)wSLw>eBf9KrzbE&5)>Uq7Je91|>fU7SJC#0q|NX3|jbF5{ z-1e6QPUED){H!~@o6E2At8!ucF#@+@n)L@ilpjeuP~85t>!Wleem32*ll-ilEh%Rl z&t&sk<*K%Linoi>yLNfBi_-Ixi)?(Rd9oAZ=eomZ(_6oMkX*G7@{|5a=`=q}ubG}g zzNCHAx|Hfewj5>k*SfaamtyHD3>UaPy4w4N;;AcKmQUep4;SUv+Z9gf62HPr|14ee z3rg4j+P8V;!2K;gmy)~(XkH>a-<_S$s^9O$xy6Y z(mI0nfr@VP*f?hpp92ov*B4m3R69L6w^;k{Sl4)jdev86!vC)p_Fh?g{8>JHhx%vs zUUO^wz8U7veHEiiudU`pB9JTaTP~zm>B> z{gU|pJM=A0Z~enrIY`bON^dL2$+=q=)`zbEaL(xrS?JcZ>#^(3*E!l@pAs{15A2vs~)@hpk899H2ix zQuvJfNuQ*hBX@j!z9C76;w|P&pKSTp`9Y)Wz8TCbZfEsC@*bIP?UtSk?Gre&1Lkew z?~NwU3RfsU=kpu)r2Ns!jqGXXSMC00rqj+pm$>WW`K+AV%imAXVL#JP@73BLAicHj zs&UGIgDf7|Q{^pdPlYR1E+xO1ulU-==R1>g2AW6E`nJ{yHP3p5-=|tEy!v;(=Wrj0 zeQ!PI&TM1t(dLGe9+Ip4D|`-XtaIqxkkV5>{-nPz7G88Kr^&jub|M`GNZ^K7SaxyZpNRL;m~p7H>^^ z*?VB*?A&p&-*ax}Z*3f-_r@8SXU$8h{OY|q>#LpD{GNTcGsu4j^oO5A|2?Rj|K6v< ziJpwd3gu*fFY)K->yjhBQn$~g_TH@gQ@f|}jJ01$J6`*<+9ln$rFK#MeBI$|mm4^Z z<78j8r}FD(k0hPN!s#9Wvqy=~kJ9{jQ{V3@re{{a6XW$_?5`Tm_6GTMEA1S)x!V+u zmt=3X=k}b8b48bYJr{;c`diU;K3n?!-+IpOk5avW^yw;a5xtF3? zyei*6{JZYCC?2oL5npM({?$*e_#5Q!(NO*}zd4R(x#Ye+`#yu+Z^HG`aVJ~HY=CiyjUjEK!#Z$#JYYcNNm#mE=58R!;W4r0pH1 zx9uxV-mkLjG-`is{=M$^JmX8`6+Uk%J$WB1oNq5iPu_29p9ilyoW&Ek?0$9GRqyv& zx0n&1gGtWAh)?G|w9anp#i2hJ9QpIWCHeEf3b(mF^NI5o`tFA8Zho@ftly=N__PkG z_3W&#-_1|t6+VaVpPyj3meNDv6p!Yi^{jZLkCiv=yQVDuQ@WCMGliG@!g87|XUVx{ zdk;_axA^g0%r`9_$*tW_!s++Ic$0Vvf7d+%7)Q2ey~F*%@jgnWvp8M$k$>GorlX!^^SJnhSqUtjr~n=X}WwF}xOY3KdJeEl{$+8^zM{M7VTeV2Zc zqi3b3_UF3W>wD@Z%E2m;GJ$A7;a6`!(5d zbA8@B#&N;p$MOHrO}fjYgvV1@D@hV@6`DO9?0nRykKg*|kTt&~m-;N(==@b3*Wj2o3 z<94H)k9&KbvvOVd3|snpJ7_<)gSW(f=>8PjJ96VLAsye9A7$a6Xo*MgJ?if*+-^@^pPF8(kLDL&7c1n;p2tk~ zj}-FNU!KBg|B~u!UFXk~9{K8@Yz)6nrXUs3J8()die4!TQS{*8W;M8F+fm*>@G>2X4WKHqTO+j=IxZ_#RTTJ+yNU zHR<|J#ewnpyW~3wXPj&L+INxyr{{tG`&rU2dwwFzZ{HoodCmCzJIE(e?N65fKdqM*KKtIMXZhLp zhMMJ6dYGMxkE`oz$80)vj#&2;*gOOJ&3HWp=Wgz>ag_2eJAYw(kqdWYIZMu^W#iGa zakl@W<~)k@YjzIQOX;U{YyL)jmfjNA@Gi!$ z^XoZR9;Z)!l5fS*@xyjf{^#=NwUp0FpMB@F=DlY1yK3dhYxc;}6_n53-$4<}2!=TfCvW;B(X8{3JaJU&t5v^prRoUzhrHHgJ!|c4+99 zyhnLuULSl{DwZ#~q34f0fAR8J*L}sxkE4A1U#xr;%F%gr-0u*7&!qnG+y0y4{L05- zdf4wJ?iPQ)uBOoycAP zbMlvD_>*?0FkEtOQSEHj*Z8)WuYEr{_wkQIs7L6gtY^D^&KDpcSy^uf2|6=WoeWyO~ z=h`(dsc^-8?my$-PJaGD``NyV&uu5~A3OJC{)VpQG|TTVKQ;Rs79QGDu;)qmPNrrpEAeI818ZND>Jl2hmxkJrjW&W&!*e5{!t z+W#lNP;Slmisg^=);+YE$5VZgeED_7BRSdft9q&LC)6b;TTin0LRo(2T;C>EZX~~$ zFFvJDd`hQ$wFg>fKXXrO$Lu>P7?;HNb(iG7ccA&V74iPYz@5;>>YeD?2YJ!frstA> z+dQWDY(~z2z%jrNinxcmu+uq*7s~Z(0OltPebKIezyE<-hEVw zK1y%a&+3zXZ?xZQrbGSC5B<*mLG5Tdo?`T*-7FqoXa8NKw7eu-(hg?tgQ}gscs$a( zb|3E>@&2*8@7F43pF+7weKoqCYrY2;{*HCR@7SN}Jxk#dJ7m+X^*Ei^tbIMQ#A%;{ z^i(~vdVzE5wXT;W>#eFkb}tX+bK-FU_KU_o>bW0h>h}#7Te~~pCi=<-JMbfGUlrb-v9I6D|5fZK@9F!-<2sCYox%}vjTf3x(@dBg0h z`7+&SB0K%Nt?_*skNb7MknEOy4&A@}xgV`t=I^~YnsyG{Xn&un-CF{CjkNg1Uu=A+ z^-B9akz@BD;kzMAOwVDNb4A*pmi2A?pY!8+>|g397N@~3+R2cB)^PT{k^i%<8c)b0mvb-WIroD-2e?Yp(-(4F1G+83oyzWC|0 z9U`6kDtH<-Qzdf_(A=y(J?O@@6!nL{qdRp zyO|0ne$n;ZKVZDcI;!lf^vPc4BW}MApM5@RJIgQgagXIaRt`^p(U-$L%)XNU!+zi- zPkLm1lb`eXSu;NAogME>j_7I!3d;k|i^chg^~o2k+^_WWwOPKa2G(Al(&dQu%|1&% z<^OLEH~Z~-p4rRlPx5}DXR{mjRr~TLy7Vfn&-fmcug`^ar7!1N#`l=xJ6d})9f@4+ zztnd_)Lv_!wDiuV%lPm;@HvzhxzA?8Lp!DL(o^X-zQ9d+$o84?ne~p(3}^YI^T}BM z_w{s?Ul&<9ocV)&aQ9d|)8p@e1+KrpXSJOlzn$arZ-Rf$#piGWR~dgVQ|(dW|9hRq zuXaSw7EXMDYq`|;bpPqm!}uJ!F2`EAdFd1TUF}=p?@>Oy_!OU>6<;y=N{2hk%8$ay zSG>|w&zq~qe_NjEk(|r?w{K^ao@~CzF3N{Xefw7UjC+#fe9ig$W&>B4PW1CB^9#SXe9ijD#QS#wcj_%x9?8%0tn==a&u7hN>-Y3C%e~^4uXwY1 z{I~Pvf~(9PGrhlRqCIExLwdn#)pHcoN@i+xN_vdCu`m~G24OgDR_5<%B zBdlHe+Zkq0@jtcR^eW`b<>lGDf6mF5zOtj9rMKu=e(~w|EdK#5s2A>SZEN~z9Q?ng z4@AFBdoA+yW-mWaB7g35v#XvpepJ6_&!PMNHrhAm4ms7@t897B-j}ET()?tcoV_1U z`Kb0=zQSjp5BlEXxBa@wy>P|oI{&crYD=f}>-g^E$tFkrqMr4;(Zf97u1(3Gyg!;= z$$Jy^rJXfyP`t9Ijn5N1h^}->Khd*tBu~ESqwjXudr3O}+J0yLDIUEqWS_J7`nvya zhR$i9?Z01gv%fdpo^!7EPt2Zrw)Yf$rzP=4KX*SXPg#F({9R%7=eGZn6D%HT@%?$ezrVr!h35Ru7%aV!sq0Do8cIbjo*{+f6FfVzK!bd<~}oC=7Z#AeWlCR zos)HyH@cgB_1>#~P4nZrmu1sjrZ3E|$Jle=diwp=BPUq;v+=5)9)70Plk9WWo_G8E z;5AO^Z%zMCmRo)8xq;82 zTmMV5Uo$^H@O1p%r2TbC{>%Q^-=&w)i?1h`zDfC1IF-x)m9P4ojlZsTXG_Cre6I1m zWZes!hQJG*~F_l@M7=!zlZ((MTNe`5%r%>RQ=LE5sjNfm(Tjce(sxcjz>Z_vdsF~rQX*) z|5{Jbxu_dIrX7%;cpV~{N6zk>w|H=m+c%6Sa_uWj{v|``D_!<`TrT{6oQ<< zSbT|n3)|Hs9_b~&F8#%~W&KC(c4aw~T_`{M%>2>sg}%yxey{nwrFK+)D!qk%?dhPN zYi_V|u6=*D4!HUC*WxQ4PoX~gzKDFS(>sgQh3?57w0q?Ka*VZ;lg7~x+)Up;+5AG_nw-w} zlh838Y<~w#Wvwc4oZsX9`sDKUMD#X?**GjaZ>Myxnn}HJE}*}q zLws5LX6>o)wUzhU%9G|Fm)xF=3uzyX%Q=slerEknKWqLjtJmi0VeKa7H{yGrbMBY% zePPM7=)e1o)o0zGG&$Z6oZOpqiJzy|@464k#%Zs>SBy@(nOqCc=fy3p zA5;8O(4HiGSWofK#+N)R9@>ZT-x9Y^k}tl{{UZJjPvnM+|Lrv2PE{u-xGQ<{j}d=bHn{RKG&Ob`y629 z^5II$H@ojq^C5O$BQS%@+zaO}>{eFRUr?NgqZu)hWUzZFwyJgFV+SB(Qwsyhh zH&LHIwQoSe`gIbethQ-^Zg7byJziM%zonET>EMM$^7KKO3#|N z)wxM~kH`1X+FSbcUZL@L?awvSt#oRhK>eo1%aWttCExgppYu}q9WFOJ9uwOW=L-F^ zHhIapPSK68czHX^-)n92q8Lx&UUcf$-mhQSchPIw&FXvL?upOiVZCd(wKo^} zbNH$sJ>vePX8bCD>3nBCXui#UPoBl6c{AO2p>z21^}G4lZ}wlRm)v(l{UV$nzL;OrZc4}h4`=;SwjKCcceAJF(beAYo)XSO?mW=ONwTBbV?FmD zWZ|t}(|y^Iv-_Az+{A4ezSP+{@CLpfHq5VcN{)Q>S6cU0e`9(DzMs#zwll2#moGi+ zyj1AFuTxBqH>&4mlY#bl?`;-6kdz-gRenV&DkDB9*?6^bk z9a^8swkKK#F64uqFb~i6s*s+{+i5(rHvYa*&e{Gse4ogl2i5P{@y_tuD7VDzKfvT` zyd%9;E_EN+zXn?VD_=yn@`m#WncsgEKkL3%l#f`S$d}LLzM*XWP`On5eo#D*5xTZx z8Gqz*b4>4^@w3YLmY%;$-WQeLJN&tGty^X9&9r?7fuF|;ozDO1e5d@Z9kb7x_sjZw z`*wFtJgyB~#U^VH=<~1G`k(O?Uq96EDzA2KCvYRHEdRByUcTeusaT_5*I z_~(~iwBOCg`)^Fo`TYWcuUEKlEB+ow;I@nBC$i6V$Da)^y|VP|b1}Zd<9dMmT3__} z=OD!%*T?)}{{G)Wdd}JX`N{l~@wedjlrA2q+9A^kKyDz=`WbG*k-H#v3jEh?p50>7SK^SeTlCtr4uKKkD9o((BS z{j$=N*japa=`*%L{q(W>B3)Ej@wsh`1LE%$CGF-R*INBHKX4PDuzFP3 z4(6QX^jXB;aZjC>r*>E0ThjM?^j$!sC+)j_*LQL>FQe~kiLU;m*mrjHyYy5z`TAYo zaW=ZX$Aj}N{vI3S%jMI<{ZnkGwf|P>QaLGn#yY|^%;zZoeJis+>eVi0N6p`A-0<1? z_8wyLYKGUoILXQOFZF%icqsL%x!+E7#iM&oBv<9z)-^+)?~(r=af!b#TIW3*_h^)XwYl-?}8?@a0)m&#C9!!jTLYxRw6gzMaEQ z&h2OIHh+n=&$3T3|4+J~+kaQ07~krNR(`Yb)c3i*`Y8U{V=O*B7xSf8UF9U3-^KEI zbNQ5S*?d<1%Rc&!-j=o_Y9}ObOMQ*s)Gye)X|n#1m0K6T-pA!@y{y>yRo~~Ti%;L_ zwDvYR@6fG|eeGHO_1zge#}T?04z+ee^fTh`FV&>m_ni{D%Aej}^en&Fdw=cp$ldd6 z8y73Qe9iOdJ=^A?u^-FNM`xcejrXf!A7*_15Z^QN_c~s{K#J9N`4sPes=xN<+WzEZd{`_UinlPmD%Z(-cU}2e z-*hS-`Ig?~oQl!w8ei4^JIhnCbSggjX}&Z)DR;HY=kN7RXSTj+JZ$r6$$H1v@&5l3 zcgQ)cFS>`Lf!lTf>p{c(IU?12^ON=I+SUm<4isJf4~MV0jwpR)pTg&w?UR02Jhg{Q z-aGC0y5&f2?egj$zUyg)<3*Dfxbkz1Uie&7uF|FNgsGj^c{lZI+2?HemK^mf|G3WL z&ptEV{5!u3%SCdpShif*_c(MfJ?0Jl{JHF9J*eN&8&i@Wu2j92e*O_eW}` z=fBGrx$XRS8tNxE%HQu_U;bk9bw8)_QRUn2zfbO;5?$?uwG&DG$xaM-0nRsKGF5vy^W6=z3@3nm(nd?<9vJX$M=Rlv2kIs z`zGz)=43v%@SdWYbgi$|KF%)2pWJ&{d${Cxr9<-;%3tXzzb-j-{jPkgov-e6NYBmn ztsExfeYGdLKS}A<`)u~PuK4UcP|fdKh_3fyo0rl(t)VM+AFR$H^PWzYSIx7_ZvU(K ze~qK+yIvrEtsfLV7w><>uYI{6`}ZiVV;p#u)l>0l{iCjYFna|~;g#>%{!95^zy757 z{B2$OSUYRwj{Tt8wYv7x*D2TEZ)o>&U|-_B9A{x4wO^0j>H}Z~fkvem_NB z}{GI&VXZMr4`5qnlbIv%wJe&D%zcb%0 z9L{IO_qZnU71Q7D>%x0f!F_$ut)sQ4%|A2$E`Ps)**Q6np1vQ8>5(0kAF}^jb8VcU z-;ebBBCh|y>>zs9H@-w}_IEvR{0rq^961pl>@cc<)eHUJ?HT)B`_@Fy`X?Ro!}?_T z_57Fko~^)LHOK5Fy8JVz6sBMFte?#%-N%tlkCkVww+8w2E^BP@%g^o`+uUdM3wC}r zaO$V^tn(R4ht`p`KP;P`|Mhb*eY5pYy_F~V9 zFY8NAHoW+X{jPbG?7pjQpR@9$eOKDIrDyHK(sv>?U#N8}&HvS9-}?QYv}f7*WxKym z^Ff*iOYVPBeyKf@Usx`R&jacGO7}7I90%JOo#V*v2hHwZwEeX?zt0x;|Hb=qwcjV} z7uTcM{#TVl`Ig`M?i$uf<8ywIt2)NoAzRN#=8?6It#PT=N1E(w?V;!|jkNvVjn-MY zP`Md(fVH=2KK2K;|1$9VZbLWi35JVYyZAg{iT^%jsiR!-+xjzB+T(qjI3F|C;;FBk zkK%iX8sz2KJ~ymC$Ml^0aeSUGdDcF-8+y+3Zd9>xD{T{f}&$RsBcpJ9N7LmoWINLuhaQq?cY+$HYE z?o!thZn7KWR^`TkHWvO^_~YPy>&EAozTidIqtQ!lL-|XtN%RtEe|87K zZ7BaUo?naIBKNsF3GR5fesGiBCbyR~*ze@Zz*C0j zGCY@or#yE&TtB$UZtL7&SBc*%@p~nHuf*?da%Z@`Am@nOI(KXC;?h~UNpLq++yQqd z=+Ec+xEFJsD_#VCIrrPrSK(IV&V&1H>BqUzjsKZD&V82a4R@T&1(i`QXae`!(g1z{ zfA`>>ZFUb9x&4B&T!)}XS$DWzL2tMrWrKoe-JsxkxR>B2yVHUe(dqd8%;3DT^MgKc zXO&$Tj4m4qJQDcg;J8Mkg077&0ncdAMuRp6cr09XFt2Pp+*Lu3Mw7ueAMOvq=*G`M z=AVOwTfH1KZ~XV*!}7mFufKz~3OcO{I#;X?Hk7XhZFTTB_?6MS!9ng_(B1{@J@CCB zR8_nmoLBJ?ow!9NtPbGWIzGyJY$n~JXChvi*k+`Hn4 zunAlnxDU&Lqa#An+QL-=_o+BCY!7!6T>pxrfR6$`3b-4>bwjvr2nQT>L%43?b*_8Z zqM|!~>yF>L<2T@_JAUgP|5gdVEnFpNec(@X$AIS;@bmzG58xg#u8fXFJUv0{30hCk zdWJ{mP6R#?_$0_X3HYQKS4Jm;w-0E2KUj82`5zy0c{9q zLqHo6)2i`Y84V3TD<2lls~C>_ItTf7PVCRCI5%7fw*an1bS{2BFI)__5N-ini|9Pi zMgWfhJ|DlGkKfM6^ZD`fyow89y9;5H3lZmqi1R|kbx~MZaS`l&5$G3z4h&jv;I?r5 zy-&p@;Uafw_+iDR@JGWR4Sx*WWVqYIlXAC*lieNR;M^TyKe$ui_`Jx?ft)#zIR`T5 zK+YV(!)oBl=;83W#tRVU5x75uzpYplPOW$XJWqh zZf)2KekEL6`k?oLKh1p(+k6gNd>!7O`#1Dy6fJUFM^oSyxt7ta+^%q~;P#DH=6(*> z9&SIl{oxLXTDk+G$#6e~n*z7U9SGWipdAR>fuJ1-T8C&=?qJXl2K`{r4+i~U&^y5$ z3fZ0Eei7~Kj*Iqp$HPAXt~cF&W4-pZa|nD;ckMP4tHzR!`%jdHr$$_mC=1stBU)g7I01A+Q5BS4h(v4;OpFd zQ6>DgaOCX+f10~Lx*cvq`TgK~0C7ABHy`d1xJA)j?$PL-Z5{(&4EI9R+r1DS=U$4| zxwoRKZQq7_FPc~OepFTVQFPn3A4Lr-K8F7>{I$?yE%aCmJ=Q`G;Ak!MSPMPYMNhad zqUW~#G8$X<72MZw8{xiz`xfrs(Sov)l2=`Wl3BTiB?HTvz;6n-4cvAmJsNEf*SRFB zI0DZ{!W{+I4X!)f(QwDW{Q~YJxRc@f!1aUsC0u{F0dS|loeDP)ZV=pHxYOWUMELl~4Rmq%+ z$-q~`T?2P5+!VO$;I4<83O5bzMz|Spzk{0zcPrd&aCeq0a(9)Sk-Hms4%~fk_rpB^ z_aNMSxQE~#hFbvld$>p79xdrz@o341<&Ty$i5@NK16&zBRx+^SG0-0a{V~uVE4kV& zE~&0qTrw8!!}7(TEe7A?CD&FwUNQ-8EZm3XkAwa=cpnGvGCretuHGyjb_hC73^d$J6EV<4-S<(uAC0twjpp$=^TLQhGf?HZr zzWpE4~JOBiuJ|-@kfBx=?)b~m$rwy39dg}^NM3Y?*Z2n?!?j_ zjZP}P-JMjrq5P!MCeZ-UPJtT+HyrL9xbvXLc?dtEba~?urO!1!AG8bLs^Bh!8&!IC z?h^Qy!i|Qz4DQ!(W8lWZjf1e&MR6pwT87p3sB6wcvC z@>9<;k13}T?iB2IJpg_)(9gUybO!^s20r;a7t@I!!yU6-JbhQ3lRE;q1L&7c!uzVn z%Yl#gSTf1eXU8CxL;T0v@$7k4+KQhe=>mM@FL8F+Pprkit_^cs_7&Z|D|)pLhkn*TS?f^E{M40)ltOy{nYJ3;ttV%!?jy!|)xP z=RN&p>>(Bp>0LnY3dj8VGkh+YN*`YHDm=ww=KK5<{V9+C2KsckH*t3qC|lnoYLE+ zfyKpiwZf0PE(~H@wMpTwz@5*-KC=L}@|Z`nr=-G`H8eQ~r0AW1$9X#COHbmVo(^$t zZVGoVGdU+BZx&PmPRX#~)nZFic7XvFTq^qp1N2Ago<#Q(TXCrXcfY3eYagT

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

y>dc 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 MN*=zV)m+#A1NFk3r2qf` literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Reflection.DispatchProxy.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Reflection.DispatchProxy.dll new file mode 100644 index 0000000000000000000000000000000000000000..64a57cbbecce2116fdc8717223283deaab66d387 GIT binary patch literal 24992 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 Nyi+G&|8dM{{y*zALhJwl literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Runtime.CompilerServices.Unsafe.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000000000000000000000000000000000000..0c27a0e21c7ea37e109b34ae8fdb80d298890785 GIT binary patch literal 16760 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 z zJ{!$4*N^^~H;dooLd4x!px1|Iqu00bmQzt=v-zbjlB(=ryb!D~mn=9OHCd5wB z{JQ#g^<7$%eP&NdZ|WW!y|M51i0$K^zZv?AaF^eu=wCi-MLzn?to*>N;Zb8QZN4;q z2hBE(eQKBXvGJ2vJ5L;O<@&vmhxbqKnRbo)_Dl(1`^E^nuqfr;6?AUwm*nV@xDCXY zoqVNp2HVDUA+in@v<(>VoIQERu6Xq(rETe|58{^VoMJ`3L-wpZ_T=E3=lU+ZVZCC= zo-aKkt0oPzB#3~Lq%qIO+wE09(sbmSSC6kt9c+7?yz6?Tv}E4qcebnjJ*?JcZESk& z6wu^a{-vR-`j;h9y|-d+%FOV+>WP!DpT1gZc_ZYH(u$`{rUoHhQx9YF(zWSnex`$tPzu9Bn zr;YgaY=Pe7b=AvS2ANy-^j~bOaiDIQy6%>Wjc-=BeTvU{TxxMKxOq$F{i&f2QwWJl zF1UdtsS8kNYtOkvxh>i^#zGWM{~y^}Vf!YRB+bC8bL$Tiz|Wa{z`iq5Gm;^s$neS% zr$Zc4oYUz9ScD7VYEL-15pJXtaHdceL8AY5CndqZcLzA>4sdV>u;wQp2+F?dtuHY`w9;rYcu$>+cIko=P-QdXhT6**>hV zzTM+Zs-fq1`0k0new0be+LYdQn%6d9RC%}8{`(tUQ#SKcoF=R*OV+Wy>^blKgS#qP zS4ZWn4X}Ewb+F7J``~={mX8l?Vs%Y}qbyhF3LEtY>rE8zXZo{0Sa;6 zA@w=ibj&@=fE5YT@ArwnY!)~;?C7p&kKVM_i@9-jS1lf7#_Npm&))GK-K*J*OA>A! z>bm1V&nuCEkKM|3o>&Cb81D6*(=F9IJ2SXCNWuB*&TD`=XLG$CQTUD5B+%SY8_TUx$+!8>9( zyZ>xYmyo)9Q+-R0ss+_wS?gmbUht0pegY$=zd?NBf~A8)9Exsko8JBI%HgjUZmaPx z<1W6`cy0Qx8gh5|0^H#fLRVQ$cFOCD(cvJ56#U;0ol%dD3SDrzrinU4II`fL<%7Hk z4RX8Jp_9!N6FMDxzY;+M7w{)HC$t@av*!5h>!LLL-qXtCtcw;Ujzlb3!;}u5hzKbQ zE(W*~YDS~8? zU8XRD#}?)!XNs8VVjkhy(Ev_3n%Fap6@nHCR3L~;g^6+?@J0rw$WR!00hWfXm<;1@ zHdM;{roAd&ySOnT$B23Px;V{znZ`oBd sycgzO%F&!t$4OxJAN>A^@FH)@mxCV7 z>Zb2<)p9sgj|a@gS>Tf#8YOzKHV4hw>~^W_qR10lr)#UNdJ(|Tu^51 zVLdh`AlXzcgCDzi;lnAf56y1#x4HXi;DrNDE&M)JkGA%Eap6vz_SPkqixvlKyKB5s zExBfT#NP0JYrXBcxRpBt+|-Y$A3nCF>e2Qax4KRr;TPj-Kdzrqe)a2q@9*{>z{ps< zePl^GUr@P6e8f{pc^zhLIauOh5S*%UXh-myd$aR<3A*O_RgQn;Y0arP5+9aSe8f1} zc~No0&9?Wix|J{Ockk@lMHl{vPxg8cr?Pz7VC8J(i^|nmrd-jy@@Mh)v+Oc~A7u|oBHNoilQ=l zK@XbM(2&JTp6h;bMbz+++Jb2F@(FtOX1Oh1>eU_}*PmGvUspbTS@gK5;Y0lnd7oT1 zK2E)0=-AIWtLhH$cwHz*J!x@5rqr>-Hz+0H$a6;X<1X?7gq;gSmXyv{4D21^^xpPhJD!mhI-on=mEj5B?(?>C0sipyiJD3v7m@mwX# zPS(_FEa5Hm#qLb^XeYcCs%x?w3H!1x1^VB|0?UmG41cz!6_*`c%;*vfnap)xu)MC_ zc! zlVehGt4$WdZ4vd?m>$pOU9=K;CfgftofLkzW(Tcef&R;&gC~8@7M5A}y*Rgdn!_HS z#*?B&o6nCi&t8LHJYJ@xxy8gqHT2c$$)i8p{?N zPn@x;b%3D(xDq(iu^b3Tg5}`Aw0CljCFlh>_PVU_!kWUfMB%AFA4_H72~`6;+Uvg& ziLfPXz>UCVvUlfkGys0`&E}^t6fTuP89ee6GOI7qTgq+>-?+IP5hEfzoZ%Nfe1NO3 zBg@v&+uz03+ris~)rYVk`Dg~cI-8AvU#ZxJi`l$P2Kj{%exp(*(FXm|UqVRcMrTL{ z-PpKLeZ=WyflbuG{Dz`IlOdT&e^$Uh6q1pRjAmf`Ly2Vp8G;JPxWY-?!Je>pcCv@F zILnR2>OlXa<_B#1`-8n=oTrNU%cY7PqTefemL96^{ibjg{>zDor+F`IoIT!J?b0-E z+&xsw=}qa=PY>Uo7}pZj+R}=rU-_^~VBL4oJm&k6uU<^s7k%zx+e5Fr!`B_7PuVze z)s9KddiYw7$27fXFE?3rDX1ShWAn}#_ft$4MI8<**BM@P*(TrX{>+f|o3kfgcosLa zZOh^1%l*Y>b=p@VpX@iZH?CjjHPhK@&26@3bk>!FmGk2UtF5`Gp_8L=Z~89x9u)!I zvYOYOd6a-pnSbm4!83y6#~LI0Je+>Es)+G;O5(c4_Z7FAugr?SrM75-rQ591QH>5M z`Tonwr_m}mIcc4&jeg1wa@U>maEW1M;FhC#@`G(p&{TJYV{GWN75=G}w^tcgo^wf0 z$zI!~=PdU>okp)F4;VFrHK)yI;w1l`^$zK=Q+bg@6nUUCrH2p@b}56fOGixP@0~_r zeZlGiLnXs51Qm8+Q76$@`AH5=qGV8Ym>h?b=-{8Z5i+jRc@q6e+uz1p49F4mp=%QA z@-Aqq-z;AU6k=#)y36L9&yQYSqZt!w#~wDq>BRE92LZl|SN%TNy`khnX|s<_ZI3$L zQp1fY<%hML<2~LVT&C=D?R{TIr4>`pw+}lPHgV~>diH`W_0nXp4#p5=-GL9uF~{0U+k^rAG+RhF1pe4{#MhhW%|yqd(5Mqs(Uvl zBCmLlp`Uw?lKgj5hjzOie_YTdcunTu?6k`Q58uk&%eE~`IjdFZmhTZ`92gy3s2h}@ zxp&Ao1M}^lPiQ9W^fc5O5xH%!>f*NlUXYo1GL7!_3+*ogL9bXYayl zt*%p!izDW($z8YcqoZccqIHE5LZUnlHolSaAcR^W`SW{(@Nbm$zb6PG-S`NII$__BdX8O3o5NUx-R}A z+kkI*%&5J%;I{_$C;z&B#=X<@g+^vGwg#q@geFzTf6g{_Z;j5{d|-xmu;+-2I?I&@ zr{%v%Jw#jRJGtdT;Aj4$rKhUbzsj{%XSLoOt~_`5bXBM33B9&GS#oyJV>{pdm9KB7 z99V2QfDEF}tO|LOK! zNVv=QKe&Cfe!9hm1_ns4-aet>b}5`xHvDYwZ`{2@;nR8N-JATW$=|wrt29j?p>_XQ z<6@7(aWwZ873F4v9naRCdBZw*Ug`dZFCU_LJ%}BL>r+pTX?XLvb;5z;>sR)9&|dRm zY(%uG%?OFF{>Odczn*!Ws6S);8Bb5IWw%Fl|2nFDba$u4y`uufE#A5(w$|n!%YWsP z7wggM)smcHbHmV9SDo%}>~ab@H#Y1V`|$X=x2JNEAdv9wZ9eGy3)x9@$o=RJmvOI|V2 zjCW*t#p*#H^79ssnKNM>@6x^H?Z%&6ug`ydY_0mj;xz|W8dcG~r|jKTu*}?*v8&Ic zl;`hW*G^6z*+(ar=@vbH^|+17GjvM2?Ppi&onCrfd&ts)`U__(FSO)MX}vdaoLWP? zc(J)E`{uS#6TyL(_fW%QmdcuW1Kx3lOlW?;e(0umcZHMLV+Gk83Qt$6ZFc+Z`LWa2 zB|C*@jbHDbikTFA>{((R;kG^Q<_WFHCArf?167+A+diGy=)lysdUMDwqMzBj6Pt(M zwA@?0;nu?KmENmQp6}rm+*sUhy|h9vmAL$y*gmi!dE%QTGwgaEH`_XLSJiFbL5o7i z{a${lKJr1v-RQcDcZoxv&ol*p)T)gSd9uQ!hpS!9`4}Z;i&j~v)6EvOe!Z^lnCxVt zy8ov0t;-3s?~11f=$A|Ia}bh+Z>w$Vq=8`YbO7j{guL(DJ3O@E1`RRQqL3ShB_VhKUXJv2Uctc z!I6*>h-}zgq%j7#Y|=579US%4Wet$QRCNG2-n|Nk0H_L;*W*bU`tA)O8JrcWwoV$~YF;#;^x7Ct{}R*1HfHa)>Rxnejs4x?wUu_gWbO_7 z*`bT$rWBY|hF-7IpZjth&BmtTUhLA6T?vCDbu%Wb4`$4`XL#9vV^aQ1efReD2{zsK zf604f(<5pZOG49vyQ3Oq(ewVjGfKshespzJj3r61VT4gf!~udyT7QZud>1czw~;%p zaTPn=>GP9bZ4bG3v}dK&MLv5x$i}(h{>-Ay1Bk*83Ju_Ptiq>6;bWrkAyIgM&bZXS zxAHR?fL~)_BWFwvxwApM)W6pM2q6TB>M}5Emc=U4xH2wj0U|SDw?ZJ-?R)=gJ9J ze!9ol^?U2q$Gc8E@wBXDrMSp{NEe%K?GG3O)>v(BIqfuTz@r60U5~mh*x$OJ#oyFz zNPES(uchnv#8f5kt!Zz+l@+zV=!?neF9pwa^=9t!NDhd9)$P^>tMVhZaWSusJ@_EB z^6qxDC129;`u5p|HN^w{h_>7-)yvnn)+~Eir#)-8xo~aOysD)Zn`&BY{JJhkD^3ib zQ-5G*=-a%aeZFp+4@x3OJPV(+0;@T_>-e=e9nTpC4^U2x>w|_9OC@%xFAIbV8Yjgb xJmuJ<*v<)e7nSJVr@oDSY!)#bB_ZVF=LO9a%b<0MK-|J}b5lv1ZcZchsDW^9vQ zV$#n7#%8z2?^(twO6}PxT`92xXU`)1^o6j5XAAiLT~lQ#MqE< zhtrV>Cf98@0tS3%;;Z^}M0bTdta)}MBwa~oY6CV8U)850W1Uox2VbOi#fNm$Fg=TD z$e3#wW1gJL*y>p*yEU(hfs(OXu$Dpy-Kq9Xnw2gjX+UAuth8p&oU^Lfgn;M!5yzey3$Cqh?knI(1^SYs^ zo1wYC#(~@g+R$1^92x@BRHF^8&3~IN7t>VdNrGntAZNos&GLpp+T}bwC9OkA-xU*v z@PyS%C2Sb1QxfY!O_chOn7S@cU87v;hSl}%9Qx3@l%>Y=&{o$p%HaWJtA=8%830cEMnKHW(m4~7r<+mSKh=J059bRURna^%`_oRp$L z8e`3ov3{RamNG<~kLq{nlazqCA;49=5Z5Wso&iiBbf(ZReYw^X4v^guqFEsKpA4c| zB)*0C+MrG~>UD%s6*dH4bUxRTG=+=h)5cr))k=IMSK^6BU&a>si8V7YugW#68`v^V zb(KyAS78(2&JFCm*HhpJSGro&z}9ejn$szjiPMzRcupfYzdNVTR?hY}u(4j0=4{m? zH4MyAiRdP;XX_Z)wOSPWV<1VM??vVQ>`9zYsu9P<^DeGQoI_qjw{gzhN)!&Sn(gn! z&g!ODF|a{A*H1wWY8u$5yj3+*8pR&2P2u@-5 zW&4YWdVXf5n$`2s@~xSGX8)zeJ-(qID7^;|YK8K=tKIW^2`H7L`MP_4Zv*w?DT93P`Hcn|#L@e8?)fbN z%Hb(fgYWr`0~*CqA@WTGnhC^MGp<<&HkYF$u2~#MzHAy&x=jAw!;WF!Unf=%?9`^>9IY>e)p=W>Se3HklMQs}Zo#ExJ zM#{H=e&kX-xRgQcH=fc1ZPt;cOK2CQ^Z>fX<7%J;M(cA5v#mus$7 z_}i*(P{LO)0@+29>lls@Q<9{uS}fzb%>te>HRrv$YVQj zIjP{ZV28Y?fF@Rb6|^HG>fnI!>Nc0L%-vU%FtE%52@V^Ws zx-p2T*7uMm#YBGgW#gH^qZ)w?2Qspk*$*{O02T1Kxy<1`7(Q#0gdWuF1ONJ!f-*2) zv$_nQx$HsBq42ih3bHdVW)YF`pz&*s4;w0>CEllj3MF*MNT@_YF`k5GNoZmap(PSp z9Y|=6guc)ddRIcdsuJ2Op(1}m$0U@*%R4Qhy1o>5Swd?#x+$S<9O>%u8W~4&9p z9m-c*LVLMp%_QW{OK2sb8$OgWQ9?ggBh*_$t9WhGB{YWDC{IFRTuPCIc2%Z)lO@#J zgV0D453otIEgLYu2lz6c2k0-?4NYT`vGNkV-%>MJ1&uS2GU@`5R4frOG7 zq30wto0mRSLJ>NOTPUH|LkO*u&_!PQW(iHzQrt%ps=-_0Fh?&3M+Kil-1i(!4sMRs zj1RlO(L|u15O-IMGg>`wXsR*~x(H{K@=htF!&SCBuBx_{3WaFvC{oteY_4s<>ToF& zczF$!xN5Z{5hs>+&hzh(=D6Y)(a*w*wOc50KMPu1+%-_?*+z+*Y+P33X>C*1Skbd* zDKtPEri#neMyZfP8>{F-dbVL5xRgoIb3Bl!%OvAxKC`qPl$77==BiMg8jDoOQ`K?dhPB#`avU2RxJetwGL?MWweeEir^bK0XK9mU#J&mG zub>6++MjE?u|l3tZ0qh)%Aa{YHyT=dmR3fSjfquSs8Di{8abF7{cKG0|58c$v+)`K zZ?rv>5?WO~tL-Txu9=J`vsd*Ow7sOb$?OuWt~Yy*>q%Bu4M=R4iENtTiZ)e2mkrmn zX-d8o)o*J1DClFL{u0{9Ce~!SK?)iY;-!05LKE3yLsgwcK`s2QXfqVFh+WZUD(I%6 zhAvA%Py1cdS{1aJUDIYO=pgjWQP2*cp$ZD}xTeizvy}cb>4vFL6P-PF1Z&#rqxj>7`dt{bnQIR6XU2?~k{ zxuBh>AbYh!-6RF|2YQh$Q(ADW?jr_lgR=t9wn!msoR`Zm9|# z)vZ#YOS<(68eH=)-6j>%>9?s+i2g$bea&|1cB{})-6tw^Nq0m+V^I1r6*{UrsX~`@ zr%QS0vvQpARP`o$H~O)9xC-s_h|!-@Qj!-wM^gnppL&y*a>tR6bR+VSZbUv(K`fw7 zq=FW(i2<#Z5`Jc%)`-*pC>Fpz)syGDAeH_z)9Ghvf0ob!V?v$IdN)b|x+Hma@-_x` zS(d`}bR+VLmt~or$DpS>jy#_mk>|UjNFmSno0RWUPe<+MxRR6nJbZbw{x>-#*ZQgw zS39_`{+fi&3GD*SxaJe{of94ewPJsk()v$1ANS>d$}+vlPq-2J0yiRG;6^m2|5EbN znEp$Wxxm<}>LC3Mxdc9P+^Bj$y8fn|5W zR#LV^>9^S#E`@rs z7rh%zHF_J|=#T1G^=2idwnkNh8+AjzNG0wW1#8nX0p{5~L$wzf) zry#0>8&MtF3F5j(935&@s8gdzLkB@LpHIEN@@#47D9M~?bP6rBZZu7(#yTn~FB)4K z;*`?+V3u*CVvQP&C>6Iv6*tki0wu`#CK^9L32{mZ^`J{9MVDqs=|=64(v4^~j8{_9 z{O3kJk=Kv3cBm>%SNcsKD|Ri6WKbH?o!Zhj;^cxgiCOveEmoj8lxYhLJRf9Dzscb zQIh$ok!*LWg2+DIh-^tgjQU+c!ZgEJ!)!U9aM>`)@Un~;*~A#fR#pn)YbiIPwbW|Cq-bW>tx=)<+I4d2e8yX^AeyJ$h-PLtqM3Pvl9FcTO)}!M znv5p1ExK>CTco(jY`jijTLt%;eZO{_3VmXDPlbHhPFW^jrGF?(!7BYLgB#uRJ*^;d zmHv^Ek7i~!qM3P@5=S$$j3ygD@H?yBt(0)m?}EXNE>!u-ut$lzUgfkKu|+k0F?=kj zSE_qeXrpew3cag4Buin8C=TxYh$1e){ja@Zd zQK1KhKU65#!WNO&ya%o6{z@DW8AX159xiuj{!}h`kwCpq9FXcI_t5TX67?_rQfw@;;HIgN~9bA^v5Hba+HN-Yi z(@DHuAMln@hsCxM>3e7y4LhJCIqI<3M`F)Dg>yP$AIW8@dxvaQ!zjJBg1!@bQ(a%u zM8}@O2on2Cu3dS~S+s+|#&Y?jt!yo1hvHa!bgY3*M@kR22NH~IJ@0+BG_g0;9ICH+ zEdO8m74`TWe!4(y1HOEeRpX;o9Tq)+ddz;o$FIm&OHlLGHmpu_AH6B-Bc>7U>RZ^S zY)cf@vJN-{r(EI4)CCQXa zj&+CS*hkMVWX~Slo{iGn5r~$l$fMGz6z3xk_AW{^a$o8xjZ<|yi(z$ZlQ))Uv5Gys zfsZU%6LH3Ik92{3%>7mQQbf*m_?&;6Lm!=nY9~luUG(i@kC*q}{~4z%EJ4GlceLgD zQQ&;J2dTfrwkqvK)gD!yhT2)4<3ycBPfk>p>9)zzw(a{6+jjFy+o4+y)=p1o!;fx% zah0N;6Ca&k>@OM%V(XQjsnv2G9iEDQ5g1Vo8^&k+LU<$%+rr1PIOB-(oj9kct-8EN zDjTa|JNax_-ba!C8a`8N`An_jGqqltsUJNTi#9K|fP0K+*^|zOG|Du5y;RX`_^8;5 zW<#1)Y2`!h`KY{)j{X0m_h*M2^HihLw=4>u!9xr7P*J=q$*Rz#8 z{c2`M_-*W1>DeZpcPn!uyq!zf$qEtP%|?OlV@03`c!{5}u?Qby&w-xcoUgeK-*XMm zvKPR=z%{(Y#zTicczyrkn%v@=FoD|2C`YOKrP%r zpcW40xta?L5jG1;Kx2eupsj>ALE8%JKsySXKof**pk0LzK!@;LSzN+UF0Fu57w3%T zvBjJ-k#nYS&TOvFJYg3kEaIFc!ajtT3e=k`1?u0`!a>ltxz3w}&k^3r@+3MXi0Ipa zL{I98_NhwrIe(%(c>0FE6kgA1Pfo{h>Zn8f{aivIPkGyiIG3vtUBgRxo=cA8v3n~M zznursp`6~}B}N4h=NV4l=jHyu(?4w>{wP19HMv$Nc&@*B%57DMuNR1hc@Z7Jsg=tt z2qsQ%Msyy}6|JN2@(`j|c&?dR3fJZ(=6cRVctg#(pw(+H0zDe?8tAGT%M|_@pEnUc zt6K|Nzs5#TZ|yeFfi>O-wfOG>_2X$onpd0BCsm;|y@QC3WJE3gpMZ|5dKfgR#!=9! zekVY`4EzREOxc9z64U$g@WvpD)%u|0Y_kMvnE)Oh!0S6vL!3e$UdqEC@iaYnnm8U-x2lzML}{WNG396vPssNS@&>j0 zkW8_y)GeT{yWAuGNUyH-H-6M#T3>&o24h!?wSf_P5ZIx@m6!(O*b}r8{%LUD-y77M zRRQ(EsMa790P2eotpN@K^~cPw0k`AtA; zVr*+zEsSgp@H2^dk-W97y_6%q& zO9ySiETApnZ#5{}3fd7~N`r^WazW$afi);EAGABOgC@goX;6|AGzCv7Xi(lL(B4?r zXmBcfENFlB9Oz*70_ZdFZyNS2<^>JPn*=(9y$EW7uM-$nCXgfgJ|bu+PBLurGiFb{tg0 zzGO!bJ^`v>XW3EEbBNcl^N7)4<#7`9C-xQ6{0ypL7qN~L*d>73hxdrw&sD|A{ZVm4B{{niOT>-s=GY}ef7x^^o9?mrg>>p5E z)v`Z9A0RhvvED#f5N?8MgxjE6;V$?(P*|z(4`^fI0ca>rs>7B9Eogf|5846e(_vSF zCupKj3AD4|4cbMhA_!R1R6#gN@B>W|0zi8S)xhr!s$r=@5W;Do8rDasj&NU44eKY= zM7Tewh7Axx5FQ9x2{zCSV{Ebz0Xjv9WV&M70}`kP{QEM_=+kwA`||?pg=+?PDhf|w zJ8>64{7}yB*b9$j^$-fi=r88K^`zev{F23L@YUjrPh4iE)#>bAm}eal$>IvLa$Qom zXT~sVrYqH&S?I`h6(O5j@(CCjyC<`rgHB~>3% zg9?;T)eo_xNRrbnBv%zyYJ@hj6y{Y_BXV&m=k1@=Ol zsH9r2^i->>ht)OIp2hOTADh+XbXja!76*#4VkG2d#${SruR?eL8Z-oCaTJyZI=HBh z9frr_^X)bYb+g$=@qp+Wh?Qh>S{*J5S@2D@I!5N=x4>Zqd!%dy78`iHOS7yt7yMUm zYqr&4B`$2e45y3L)z#u08jn{4u*A`s)&jEc&JKHiqQhZ#aJKa!Y)7K}rl zj1;?27_tQ@447W2^zg<%<4z~{y_>@gt8C6v$>44a#dhHOt21yh z7S2&5imjo*GEKqxO1G=h+W9h#N4qR=7<`1P>zkW1ROGqHR=W2{9cpn{S!YXbULk&a zV|7Cdw0L`79_$Nav6IDVWqi11TAZ!~D^?5^*Fy}GI;6Wjb2wIZT#%z577PELR!kM= zbXxN>@`^BjShBF@i*w--^^8K~C+ovX#lhzf6rSad>O&JJCKB>>*=hcWjot za;fAMb&A!IpX;PGfLj9QV7x_TI3_EpGu%G#YPw1u{F;!nuk>JvM?;dvI;X@ZaH#9yuF~vLDuGuitnCEVo|P5 z#Z9r`^*nrTaHn(&$uF?jirf*>EJR|UQATbaCUbYJq`lha~qi0^V010?sl7~i&zzC>kdk($$Ki% znR2P*SjfjP?lpLbSbc0XQbeW{cDGj#i*q=?Ium_4hoZaXL8)nY7bn5*EIqU;j9Y>+SHct9*k z-dZ59Ahtq<{!-d;k|#R5Bh~8m(pYIod8Gxla>1tf+XTA8=IOdvmHjJ~G&vTtfjrbI zh^4%8N~au9cU`%Hu?`lU=fCR+%Ty(ecUZB=p{pttvqIff@fB*XibsAG%HUqUoMI~T zOSW3GF!GYEImv~kTUeEd=0x_iJ=ey&Pu}=bZvs9^zbg41(hj0D!$@YVc4{o2Z)=Gj zjwR(|bJ2-CC|a+|Lq%FBz?`M4VKGv&rZ~Q~RnjU8ESBV6`If&XRmGvbMJuQAE^S2d z(p6WArP+#KEzK_LT~x6Z4L8Niuu)ff|IQuLgVvF@9C(4;Y%A?7h)Z2}0?BUWA)@Tf zx>NMAS)>bcx-_H-9N{Z4M=qM3^|1}7eHpnm-L2#dS2briEeO->v_&IsPf&-@ z+8CFwAnLJ%odR)3VxZL_#_(Mh3<>KWFOZM1vYj|pJyf0I_ z9%bU?CyifR&pOo;D!CdbT`;&kj~p*AGsI{&qP;1ndP1Bd3jA7u1zQIg^dhsMEQ7L%1&aynd@Dl?!`9uR_*R?< zEmT!8m`&HO40|3E80#3wpwt5QzKlxy5HzN;hlX>Yo`b~1jI zT|sr_>xJ-sxwb6(C@1Sf(}Fx5bh8#YF*t3QM3v1kS`h%s%TuY9#7jJ}Ya|wyvvhw! z;`PhVrCSIRqRo&}iA!H1mWq<($d`FioHSLcFBeP4P_LKC)6MFzS@TLKBLSs3lu_b{ zjUoX%w>9bnbdwX*o}EoUdDd*S4mGoE9Eqc`f03E%;=N4bq!G%4(%lOlmMS5JrBwlw z`j#`3?edtAZ&Ofrh!;@OAd@ztWke&S?6jXQZT7IFIJ!EA_PAd}9ZEmtO*LHQ{KMl5 z9k>bdugUm$mXb=U$XyRdLVJxVD9r;DQOSQ=|VG& zv?kLViLutOTJmAF)H1}d%6DF5My3?eH`h9fadSdXWm!ivzOw;;fO`(;(;SF(6!o)@ zY7rA11=Ckdp2Bi8g{2D8CMaC7tq6TmP$XGBIpEF~ekJO@H!d?WEd>_XMG>^NO_7;*~rqvbI2DjwWlkM2~vS;SfE~k==rWl%NL?6SF`Tmq>xC&Fe zLNCLV?``3}zP>rm?663@?+5>^I0J*Rk5e%=oLhC^7bjV9S|<~~X+U;v#=1Nz zM-uXn#Ce!JoVdX)LY3^^IA4>8a?)_NrU1VzQ5{>hb}Y>y2k zI~aR{TwQo;6hdd#^6|^+iZ-x8XR0wvfBbx@NS}$8a`4*1-hiFp5H3Ld?FjV-ZzM2g zCtw>6mi^DlCmr%wHZLa+^?;*8dAK9MOV7u#!6zw??0|YR6?I8~6{T|f$^{3u)a_A{ zdY~PgNS(^gy`Niy(8+kQ_jD*-Ybs9C1evPC!xmVq;^B1e+jtw7o{PcAK)_wr-u`p7Xwa^ldUPW)19QqNk^J7sN-J@qIZ`|wsDE%k{gArY-e zJ_92wEDkgWz9SLo3USsh4yB0gL4Dbi=kARDvQYmwESowBF*Ig!5TD2Ta!UG$GD~}f zo?Hh9uZK7i5^>s|d>M@tX>4?m^UBuL3Gqp&wH2CBDi>^uMpQPwWD7PfLGe<}#Qanf zF$Z}?(#Fjh$aC5mizpkD&MjZ<4{az-seSanrI*`KY==UW!sVFZ^TaI+o3wij>r1rTiR5O6gqX`=hKJvNRlAfDSfDbnw<8JA#+_ z52fW*EDf{Plj=quD;1VPUR?2g?aIpO2}>ZmCVxpjKL_;@ZGNG|M7oY`mwrQQ=I#)E4^Dw~ud zkL!t+ihmsG;(SFOhQktxf0smUTz0mpXobT%{JSigN%AnhMBhlO46&_f%sx)b z(0ocOE9z@nN6;F8EGq?kzCH~jZE5vEYrg`7sos<#o!0@EBtSH($);Fj`4$oLcSWi^ zo=dcUi!_Q^*uUqH{W0W6i{528N_YDKszW}v+=}#Mi76qUh=WW9;P!1f>CQ?f*t`sKY~6)GlW`gq`kX+|(ic1;3MCZHkxTIRmCE7XPA*flfpN_fCz&nQ1yIEijKS?)2NY;hR5J zgil;sWy3$-zg+rf*srr*ysI6VH=+CDIkmSub@7#NPJX}V^ee|(1k}~cuHo%N~5sGdzOMfuFRtpD}GrMkOUUA=TIYjF3hbLc|j<8NoqzVx{^TCAO zf<`FDDRN)I2)%VUe@a&YOGaNSKaJf$Q*S2h(*V0Sr{fib3#2 z2m*ChJ(R)8RR2rt>0#x0x`V2a!r3#mmBl;up(Yn5uWml>341-7{q` zs<}yZytBDUI@{7N3V(kB|C*cPu?K-uMeS_jnVaUOl)?;bp5QV&4JR0F?J_f4W<*A3 zXJ=+bWo2c>MphHjG`^|Ba|7~fj>nluJIe$4pB z;M)q{w)ke@J5*=zD=sE7kH~5w+lkQg){uvT^b{C?fDgVx6_Y{mFEVP7390=|Xhc7g zr%4ND076wvdNCwL8xi9}5k82ZfIC|Nb%4K1Yhs!*Lfewiwu;cUWrVhsg|;m%w5>NU zT-FVOjZ{LB9@2`7IbDrW=HC?~4r8q=jlU2eA5_WD>=$G7FP@I4l6F#4PD zu!P2MC#YUoibD$*#Iyop-b&jbNRv6F&L#!?s-;#d4K z{#PQYl+eF;Ix=a>WGaQ#nZyWWA`Q)4Lo)?ic`%K?i<%tG1b2pZaQVB$-f{6RY!1sK z?S1^X(}eMDuS~VTuYd6}zgoWNK?V31@2f@aAu{&W@{+>HOg&9(1SypfZO8L-QzJpO zsH=G?Fk8TCXakkC^XmJVxGBBN>AWD5r(!%xWw{lh1Bzd!z5=^KIc=#4{0E~6{0E>0 z{tZ+mnTXL*#b^sj{zd)+JgC>88qZtA8%gh1%M+5S`G*PtObjI;B$~-GFf>XOLKH>W zeEf^oV2Jp5@<#a3uXqpjMGR^uxGi&&fAJ=6belwJn`k=YcH}pd+e_Or_M*Z{YltPl zS{89@Q6+(iY5Y`Jodtt|vXFh(3PyiIT_bc}RtwI;zj(bE_AlOyUPLFZ0ShyQe=i~f zv_|Hm3x(GKftv{>HxtTg5vwf%M&cCdfr^U(H9WLhAIe<=sLKeho>C8`lm&=~GMw%v zZWa+Ukya>4&$GYG={!n50J(YbF+9sA%vdys;jvbla?><{{T!A8oEcE=6ysqT+;yOt z4YLwHUINowZDIH`L#&>_Lds4$rEXf{PXr09T94dJhuvw-ZL@LzBM*iv%(p}-x;bL z6W$^`szq#MY`D1v=Em0rR=h~fGj;4#n49P7RMf_lm1oHaOGxOO+OuC$a$J{0b8KtG zI&c?kXd8&l!$Co7L{xaBsbi`mla8jgF%5OO3Y={sB64zFLkly)Gwt~iS#}qu(1=XC z!B=(Wn{&)Y8}}kvbDvWk(Jdd(rUJ5WMyQ-bx^yr znrJ6#0Hyx&*-5l`HGx%vdfa)=J+Ssl$y`8c!g$ji-eFB9m` zR6W)*A){qWOKfH=S|B>cYHroKe)+=0XA|TyaT|v$E&^Zrq{JoA|2bV2&iSag+1#4x zX>ZhMV_o)q`1{L-3~T@9_MP)rkL-MEePqz2?O(R&^FfH;-5pD^B6fB6T)%7YFx?l$ zC51n9h!6W|r}y6%XPH8NKfiPIAE{rqxSljA)9bytH@wC*IaOtQg2}JlfaCrzt@8-@ zw(gtN&d;b^eWEqC&Wd{(4L)x>ui4Qnjhm+?9BV$|aR11QzXT#ZzKExDf4_oJ#y3cR6Z}h%Jr8AXM|d>K)qp<=y7?pA2Qu0t zZ9L*TBflB^yU^)7yrIPWs7*$SD|h1oigbQdrqb7p>Xc>g8gziD1a$&=Q(3<8QC8H$ zZa?HgP|V{Ca^FjsgN!X6Kcjk^?fjFK>AvgH9X<2xCraBqO4CQ*qBwx;&BcAp$Gb~$6B!zm%}~*eimGsR zP>lAO%kFcR-;FH4Hy)1c?d9yUp*`8{3L8YgDxP$wn;Ns?UHBdUxxk7y;(viac=0FI zu%f;AAj~9f%ZjRa1DjHn-;VDM0p(ijNd≤=~>Kxe(a#Ni{0FDZd{=!XHnFyf5Dj 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,^-&C?v=vTA8Wp^8~l9E%Jl#b~H2MdHC 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 literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Text.Encodings.Web.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Text.Encodings.Web.dll new file mode 100644 index 0000000000000000000000000000000000000000..6d2b207854ac679d3a1c64c2b81fd662a6f6f2ba GIT binary patch literal 59768 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 JeFG#B{|72p%MSnm literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Text.Json.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Text.Json.dll new file mode 100644 index 0000000000000000000000000000000000000000..a3a85c2b72554f064e2e161171aac46ab66a666f GIT binary patch literal 293248 zcmdSC37lM2l|TOay;tv5y{hW&>gulQB}sKcI$Ub$BwZ}sVGBEiJp||uO9HYbDh1u( zl1|5filYK9h|DnRD2gcKxFaefg5y3e5yu@PF28ZqahY-7!teV%_r9uE)zwMB@cI9L z`K0UJ_1tsMJ@?#m&pq$HGdI54axBYo@%QADmi1vg`ERZK?)_&cvO5bO?X*6a_~OzJ zcbxIXr5modxukYvF8yTG+}9)$3lT`Pshe_!re<6++Z zJclhS9w`?`{M1N%^oA>6a0BA+I?42leFfgpf5Vowd31Va`dLU6+<>DXb1I&Ze`_&Z zqtjPDr-p*Wl{gEm4fDz!AE_q650S3;N8D^HX6-!Kw*Ku>QI*cye_>|N)OH}Ju(n$)QG9WSmoVLd4;Z(x22l=ID&;b+@NxV zJd1B{hqVK&qlkdjg5pQpp{+}f^fw_f!Qx-n#g{eV-6%dX&>3kV*6FG>to44ke6T^? zX`t>lq3)_9S=1@+*a1?zBbD5WT`};B0%HU-N8@K?Co_s;(>{ixS0U3wq!Nv6ibn2; zMjnku209`Du8cXyiN5h~q{8 zOhhBKXyldA$ory^A4Vew#Ujv-jz;c?M!p)2EcGIFE{aBOj7I(~8u?{3GUP`9RHKm> zMKq-7+!&3#F&gs0JED;Xqmi#gBTq&ned!3a zXGbFsMkBG#NUGEY&KHtv}oit(a7hbk&fO-o#UdB=SL&AMI-k{BOi-K zzR`$WWvgQ#J8cEoS(;nRU~cX>Jc@7EIZkd>a@y~+uA9NS9c;6m+px9{HI=;Fo@K?H zJq&b%>FFyd zl%?WEbr#ix?->mB!s%+7QdvQg|#cQ=u#R<`OEWLH_tIt^6k8W`spEu zh4YhhQs)!(I^Fd;VTD|~3LFd9x&nO#NiY`B@Z3tu?!S#l%`p~2oC>@iTfGu(CVgG* z_AO(+?W?~d8dA}JT^fp2A|EdlHeJ3sT?$O_s!bRn!txVu0&N}ZBD4oWXF}|!1p6Gw z$6lbvOG50g5bRC&w{FU9-QxtMrD3^hcT0|MtCsMF!+dk36a4tvI~)+F!F_H4pbC(NtpAMNW`867rE+OLL-MW zpx)78d2?vMwVgR;7q7J|$?22G)$7S~wmJ_FN8Jf}6{ou_wE@veQUTf04Ad!)+V1Q5 zl({>Fen5xM*y`UL48D3hzz6Dl)bVN;;5P}jxDZcuA2QN@E}>Amq$ZK%sJ{o8l%Mk? zE$jBU3gC2YKUc%F3*yCB00l5f3kvFCwx%J-SRHJ}3Ta;qyeF=pkOo=TE2lJBbjLDo@wN6W$DtB9^6cHyQPe3q zE_)J@KLfxMTgHrYBbd%EcRBa+8Q7k>o8yq9U?rrHinn6NX0%q^s1wR5{j6Qa#9Z-B zw$m9?mm`9~2RFEOOuYjjY$)mX^XaO05#sAXMeOnRQR;ZxaihSB$23>t-VEX-Kp$M| z+2{lRvCfqOdiq@O+%9ZdhD5!uU4_(pB`PR6(^oH)FQ_`x*fCvKyBf6wY1^5;tDf*~ z_5#uq9PJjDp|cVo9xu{p2p-pOR!Cm90lG+9LTx!&dKHFrR4H>YtIn>t>2? z?p12KDiN}4TanO`McgpWG;R_=0w$VHkN^@ei*$knkia36?nvNLd)WG>WnDH*K{EX0 zliikjFZ(@aJ5#PRwa3YUqZW>=L9xeB?y)_#E?8JKRY>Ss>lDU|vw}0G_8j~aFR-23 za}lV3E8N<(2<5?1A_FjTvz zfeBTrP^x-5)W0@Yb&ym;GdB@ZzUbvleXdisbv)XH3~g@nkft_Ad)qXX=&>AWsR-fl zG2)}wy3W>uBG(P-aP%1Vi3Ri5LL{@;`*yP;TL9Q-q&;Y1ZC%UYmesw*X zb+&&4dFrFUxeN_?alJ^c%UTi^`DR$8f+p&HsoME^qF3f&r1P{<^`LglcOS164xM`*NAs(OVrqpLiy!y!&# z;~ZJTH%Nk29Zyo6F3VTb=&*W(!_(+Sc8o}5LL|P^4vDNmA{!#n3nWTYG=5qA_!~9P zRd_yKJo-q%T-Ngo-IE4;H3NLJe(9i$w|M2CjKk&Kt0M3wwx6069{ z9`;dq2`k74flB4mx=wkZ)Z=Vtg^_irzd=_6)Ult0l+r!)M*zxnk`!J{3im(NE@}O{ z3Sx8#?>876lfS{>pkd;$m=DH{Ik^qsT@SeVlN<81wK*2nSeiaF&g^&D?asp!?w&q9 z7oFMNOggeDNtddkJTuGD(#+aA+>M#Ib)(MSS~zO!#>wHGum5`_L1*}B4E*nSR|cFX z>ITr=o4FCcGta}%O>A{{YDL(7ayK~N#}qdt&updQm`$ z^wQW%>FnA5nBmoW%|atfPa36nUX zT9Sy1dLiId{2doy@hQc2K$&xsy1o2VDn9&NAigm^c+q6MaK%Ma@!?k^e$gcM1sd(w zL3JjslliH1V(U`tkuAl~fpiLZfmsv8`sUA?D-=Tn5)u01V3 z&ouOOpoBg7qD`;~$kIMGtd@Xmj&x2^bT_eQ^wd{`tQ^w?Nd9))K(hpjwhgp}0?r|e zY?HC=1upo@*kVBlyy*{6DV_uQs1U3FV8IX7LEGh=T8E^Fcfd|8q2w%u%hD9N_(3U1Fe-ILfVuLGe%mUQLS zlkZkXFj?J!E$OY$3Lxd{!AR|CU95d3cEN5;eIIa0ch@2h^pWmNet=E=2tTm7eFlxp zVy;4H>M$mhoARa)L09}+Z^u#;mtQ#(QadnEf#=6(-i2z#!(km5^X$Tl_PAQtwylHE zPLA!U9{_$OGkp_Da_g%AN1s92w3%U-6Hqs|tsg_L&7-`len@<#??CaSa}oq6%`O(K z3KnFd1^vYWJ*}7E53sB^<8KCe@5A#Yczy!Uui_7#vVMs_nzZi3Uj~1R@P}=`^+Ei7 z0)G|!QNKDBPl$eN3@Ehw`zi8{L%B2XXQNCv{+8kIPe}h?{Eb%-QC&b=Q!WLg(*v|3 zV3++~4&5#6G>0`g&iXuO@;sC9KL9|}1@iurL2RKA#M)x1r4nS%X{fB%_&5_ziX^<7 z38zTmw=%dalJ{CBU@YpjZ(_p1k%a4*fMvg4ViOafJ=7D*;W2WxAnE*zqC%lmf zl}N&^OsFEkP`$K+$9eVGbv(4J$1YdHh$TxKMdGM{W}t+moT^6Txt2x;lo(el8@zF}3f+9MidK04V4V zXhd#SKtO{sG8g0vgy3NTXqD{?XemFcpt73fd`v;)U}%4i-{P3UJooIG7XzT4`^eO5 zfir`74Y?9s43I~;g%!#Il3H$IX2WtO?Iit1VJgtnm;a2iV6}`0k-#qGr%u8EiX8bg zp8SIxwlM3gtMLbI!+HRJx8ZO6QT)V)MtfwEy0^YMoVulMp80x_lwkZ$l+{b8UIK5u z1*Kb-zMwR%dQmaf;P#-jNo8A;&QOb6lO_a@!RF*rml{G!gS~=MMlEVCqixAH^>ho> zGczxpPgTm?w;>%&ownpw5SXa(GKvoO$#ae^ECemDA%$wNQEfGb|shtBmu`sr#g+ZqopRIetCxZ8L7AiM5a}Qex)KCx3o05pb~X~I^EeiWzQ6UaVSP8! z{;0a3j>|1H`@<>c8XHPnZ5MuZ(+zB=)kcb3YymU?_Cq-iERko3`u`+$;DdnbSO=mQthtOrl>TCY3vW@N&c3bJC+ z4teZ*$S)w@xgNi^oQc#m$iS7OjG*=of^8}ADXN&R&*P1tc0UT}UT0%HG3j>7jo03V zWLJ8R1@3hySU%0(ehs#)v)AKiq~fmVEydK=F#tUI=;av@*ufOJ7DZ%;vYt$ojOK^5 zt0#$DgV^)RBZ=vsgHCZzlv=Ieitm!BwrMv}gIXbHM>cIQnih_sg{R_%6rh!BVG>)z zGJfDRo9Z7NV=#W6bR--`-H|+P#S!tHbTnFyMr&aHC^^1CrHPjvJr^KrqI1DW89f)S zMMF4yX>jK{bqSNA)9V&m&iBgF_uIACle`&qHA^;R)i!liO9Cwape-%`xtX&;pyH?P zzTTO;PR#kt1h0W%{S)d_qC!}75Rjics%ZtMEI*teCZPRg`);logxV~i^94uavZyYRk zq8aQ?9Cb50ah9zP!&5ivD90mP2%d+a{z1gEsep|FfjxlT&98u9R#z;3zD8wwS6;HG@6_U#0DIY ztlGUr+f4{}YP8fpp%&#hN=f^+v@b_G5YD#nT{(|qp^H@tQw)+f2GROvlDibo#MHeE z*^b|s@LC^_S>FY&*q@ns600~)$pyPi!Fi&Ac2dwz`Cc{c#^r2ZrO`~WH{E5++5W&c zXsZS2CGp;`NPU~auWG0!7xpb)|+CaP~-jh(fA*6X$ zo?jiyWrNay?exTQ8GRrw2mdiOh(2Y5M7hw&$)d((Olf)AO&iB&}Ex|dJB46Ot>`cmUtkGAsSNsOw>FFd2b=uR^BZ( ztlr8|$)1kpNg-HpVhG|raf4(!j)wn@z< zcW21wBx5z^Cf4VRZf-qJiS-z=&GG?l^WObxvvNS&eEa-1&tpH&YwG9d0c{i7WGijk zw7K$twh1M(wM`uOxjg@ijOVHY+9veneYDBB0&TwSTzPtYd;k14&u2fkp3jbQ?P8l_ z2ei$9-e;S0XcPOh1JO?-6Dm%wWEZYX$FUT}67-pY@@Xb(CRX*Z2waGML-Er8F07C9 z3y}Z~{F%e$U)tbu0dRp5X;~N4@gPkOdnWOCH}U9e&?Ep&ZkoWR5V-8=W5D3zSlIko z*bcO%$y1ftT41WXA)O-!zo96PLvX)=g4^I#D6WEAnWG-WE&*rf33CWqKQPv73h{%z z;u*mY>o5or#qW)6@cVFxABzhCbv-?&u=k-3d;swq{w6@K=CL>IX)XA@DT?3nYF?JC z!inlV9B|T*RRl*}SJN;DfEaYxM)L|rckW$8n-i5xWP{B!A5%u<+Y}M`aV*LJuE3!h z9T+9oQ!e&2(CsvM+3dd;7^(N+2Ug|Y+)NjWrxP{qoVd4g<-NHh+tUr$QRzwgu*+hz zMupCT-9_F?<1_q&VS%cYbuRv<@OK&hif-*MP}{KkQ7hS&Tl;e~3ePTARV72KQ)nxq zOpDr0HJG|?tqdfJunHU|&zyPI4rNsKEk8tqM@8wujZSj>vq+9^EE;;X=};8mEhv0F z{uB`Xxqd5cI$n<_#0w&E zZb`8Bc{6q!o-gFg`aQnTGZiT&dsM^XL-Ar=$&0w8qDS;T1#QIp6gudI2&(tvCvGAM zn1tR5Od;KJnb^z+ki`iw@MLqC-rpJ;wIRuwuR9S_VYo7(pcKe=MjmYDKPoEeYj*OWBx?JzG{>h-% zUh9kf2#m27?dO6Vj(2kD@netxFNR0ZDBSemafrYcx|-yxtGu#H@2o_AG7Y+9VtwjQ zXrsr&2D4AaFi*KFi{qI~jsF5uE93T8uXOVYUgg;Buo}0bZpM$RzoMe6xZ}^p1s0n6 z2-^&L0?~~Hv=rULqM3MHF%VM;0!zd*iCG+ux|6AKp1o$=f$Eq+Pq)!PFUgh-dhpRE zdP#KjOsO_loplE^f~f|ADPJR)NhPFJ^g1yLJX7k)2Hu(m3*ZgoVFcaIOs8O*Od#+x zqMaW9B1SOd4pmQRGz*;blWhUQ&kJln@eiouYO>KTKxD>WinI`fp+Lr6Ts=&vx>s=J zGh1Mlj#_vqGVYSyuBq>W{z?p7ktffWb~@z z@hfx3v1ZZp<3L1{$J5G>uz@ZFK8iqC8qtRkeJ~jj0jVyWWA<ii0xk5(ilj36e-2C8_N0< zfKQKQ&;1I_2lL__oCol9=imcCbJin3VD6U^?wiBZb-h`}^bQ(pe5uFU&IEdCiM@gS z2IljLo&L?HyfI$3|fk4l{XvWkhyg#o6c)mXWb~VX^yXVy-sYr4S@D^zlW^S z$(r8sX2x9+B7YK?IO=HjeT5C1+;I$P84c5sbrQ#=rz0=vfnTHy{wze^$xIjL6N+rQ zP)xrCP}LC#*>a4K?6LRsjX~=6z*iCK#gO(SpcSVa%lJdpRkrYbMY-iHoKkW1WD z-+-YhOauzw4r8ry62>r3gir|p5Tq93=#urxVptNEPOyY`Za$mXonHYJsXj|kzP1q+ z_Y7td#pAFM_t0I*Kc^O@>i(9?kz5@z7C zv#QDe>red#CY@a0O_;^#bFW`~(5|cq9w_0A*WBS_sfgJgCo&w>!WL4^upj$lo=TqSU>r-mi?6R98bu3k@3G1 zIquB;UY_bpKxOW?67HM(4W8aCV_LRj{3+X+pmw1k;d2~bh;djaGVw5sYSW2>od-MC zO~(lHJSSgG#P;-IrGR;N$H$>07|VI>D*&40<|RC$DWtyXd_Ccoj`6Sr-RMQ`y)!CXbbgWzC5a=1cVashq$G z0*jS041}0ZZbXvqVWa|g8yR=(5*cItCL46qI#GIo~##X3K!Av?FXWPnkR8Q-`RN)#HllxIdp60li z4$A;wM-41}IARJNWiNu&+d7@Fx4#(!C>yK51;LWz+mX|{?UYj|A3M3JWT^`e%okw< zkkgz{>9a4;8Ck8zI%%YFr#3-0fS}+6?9z{85=d$sAehvQd(8iU2948%uEx0nCV6Rs zD~$n^aWSHJ`=l3(b4)mFRX?}_3oYMN4D^`|4`vc@1EQSB#AN=CWc7=f*+eEm`;j@E z$i#DywcHK%#B<=kO9fYxNoTcEIoIjh+||@@PBKyGJ{G!E-qhwht?E(g-pH49S9(UAF$rprrxEdp7{8+ueT&x?;KNa^S)-^)BCcz2RuR^`_nx`>wY%TF*E2 zt}^xZLYHOHdT~<^-a`AL=RwhW=b3t2_g!y!wB80&?>YOfHxjJ}i6`TJ?Y`@+h}OHn z)Vprq^$w2KyU^5|-gi9}tp_8U;CaKo>m3rU2mL_mJ#XLjiqU$|x1`<+n(DO^I76(~ zE~B(iMwuDU(;^No5HUwyWp_kmpaj*EMRu855a(Ps+(XxvRk(OOjPI?h|1EcW) zPuqCx>$!r>bYWuvaVN5P_9JxWwknY)!~9!e(lANo z9y^vTm3C|>AiXUG)7?xn2{eFkg2Giy0R-Qxh+EaP5<% ziZ}C3fZkSo#q_rzz-@IdGUcTjdrywk5Pv#-;Te|ScX65I@+$$LnO)VvcTe>?rCyH8 zv{7th3x~s_4&ozFw=*VX9q}3D8fb@Qad@IRhOpY_YYx=oK{(+W+VD-oB`&W-BehS! zEZu;t{nQr15qhKH>#=$GlL+NS(}{jiWKRzJ5KRV2(D$@Wr;!I_LjA)-pZdg3UBX+= z<~4*uQ1#*g&C;~{#<4|}z1;VFZ{}MZPoarTyN~>{>x=?uaw6iIXWBf;AgzC;WUknc z1=k*&dJJzFjoOQ+9vjqm0!-U-C&1x7cHy|Gp~I7Q;j*bAeM5jO&;wwz!m`4}g<*r5 zx{E~NIQ-SItc%enCvcOoR8D;d_@;5q1fST@K90u(W|4)Y?;_m4@mTK4Y&8gwTO=tz zwF#c4%*=RGVT!3g4)qKM<|R}Y0M1U(dB1c@HU=N0BNw4*=*CC(;t2<;<5PIriM;wg z%0|om1=ED(euF2={WqR=qJLhwADD9AHsv0Zas%_q(bPtGkC<{FmU4sh%F#5za&I@~ z-X!IQ=9PP$DR-+W_Yx_$XkNK(rrfkCw^hn5o>y+ODK}}#or7m$i4;pi;r{{1v*fGC zy&bx^i4A`BL?nXFgKg>jL5u2#0!9Acet>LZ1=gsgbgCc}$8zQcFxf*zdH%M&{uK1){`w&ZIhC2r8L)nAMt0&xlO zeE`N1eA}`lv20TP7wTqHJt^$6e}Z7SGa<~c$Enn9&_M3rW3EjW%~Z{Q3cCBY2AA4Kex1`-H!`Hv)`^b&6t2fRt zW8%gl+R9{0+>wjRju`eNzGM}^_oCky;|F%*4+3~O;e-wtu$(K{uizoVvq!eK>A<%4 z;jq0!&`h4Uk}zP}yBh6n{@dGIUR@OSug9x9NT82v!ZsN&ZSFvum!Zx2{Yk?XCfTaR zW-*{mn52zq(!xPB>y`$^CSgiw!-Tm*2?GJrJM&2IyXvjrhO}4CVicgqYTKiy?F%@j z5_;bZTrPj+anZ(7y5#NypBFy^w4vFynJpbXSYlyW7$NfG4}lMO5@Xey1oa;R86U*$ z4KiT)coud^4pm$a6-`9Gx#%jc2PvsNesLg_Zq$OAiM5it79E9y=2~WGA^UhO4n!49 z4kb8?>RH9PCj?F8j7I`3U@@6-X(yp+4LcB=i~aHn%((jC8{<;+!Z5=Rv?8;=REe+P ze4r~YI*S(_urE0mcbDKAA8m4_RS#1%IG1;N(EfN2>Rh=O9%^?R*uwm*MG1Xl^Xivq zCKWFa0fY8z47_?ecz^;K)wnfmfx_V(Bx`~1RlpbH`59Cz$9HVTBiLPmM$LUantUQD z2J7(c)Edl;D3HoMk$N1b_z=I|Hm}HY3tB&h$9VOh{&)D{Rvc$6a^`y!k|1B$&i}F< zH)q=Tb!!`t(n0MvO>ID^H`?g5hDRH1jE!0GRnkVx!oHRcN=@SC(grYCEn@!w}DolMG zKDj<7%ug`B?tlN`a{3LSu{FFTBKCK@Rvq+u$tbTk> zKR&M?|E?cj;KP~wA|KmvJc(nC1Smy}nTG2&XLsRQ#!XM)X}64Zc0LeJ^LT{-8#tv|0gUU0rqt{ zVEdR!_IB(ITy-;uhs#PH0mBZACUhWQb@7rIUV2AMu(r9pB@nPM9i`F#3}H$D8SEAd z{5Z^zfb_-TyC%E?621NkvdaUu^vU38&;9_33eq4bvVSmccgQ+!%iUtnK|Lme9z2_w zeGG+VfEf8IBOE10h^CAcBQSiqa~v^7zQG8`jgj4qaP$~?f)S1(BkbH9N0O0mF~ad= z(Qtxpn?)VRbz)``85Xk{vVR!AA+yFC2#1SU8bHp2AGS(c?MwqzH z5o?5r>Ku_qn3&EHXM~C9+!H!XJm-ip(uw9A5k{C;&JkaGJAdV}lnP#kW2CTF&aP03 z=+ChuK$4sSZdV_}_>=2}fAomXkvma@%xbGYV~Es8S!z3nOb?a4{rizHdDS=(<r)8w#4PVN+%B}dI|g)nuJ8sMso;gw-6&gvCCwA^ z9rYiK!^Zg$JoQ^>q9cP3t?TM^Y1a}oD{5Hk8>k5H5PUzwqzru1Y#vtY7X$S!0bX(! zqIj~@KaAzZ!rlNU%^jJz#Q2glyw^IR&!-bubFn_kn}XN`$eV(GDGy~mJcHKCKl_>W zJ-jDa&&Ve5is2NIg18PstzYi=<5*meKH(2?h7(45|26hr`%=-i{1B?47Z>5NbrgNd z@vYXsB9mWryqxl}=U~;zWQi~P+3HC|DxaZBE;L0a zt!betiOu#{+O#*;W8#Z0GAVr7&@(29Bu+!HH39aKw+YQ%m?0keT|(0qggGy60$+d9 zw8g$9{jhgqo&KV&VM|-t6uqELZ?o?BKcYUm!yd~u0n%k`a>Dl;q5JfWUfR_Wm-iX9 zuSy-e@^j)De=-&3cH?!#_*R8shi{efRpqQ2>*%{w4w#Yto)J8v??W z9Ag=rwv!(!&OoVS(M8T`Tnm|#GhePtH`Zy$I;0`$Y#qxsRoZ%y0}`4$Z(Zw!sJD^z z8tZ37+Kxd&_2=qKwMZya^2M0Kw!Qt!z(%irc|GDHR87jH7RY*Wg9n&iEb>~`=ViGF z`E4%5L)N}>X9SJ5M%VQujp9h}8?f0QSZd@<6>U$vb1l~b{r&5D+>f6ZSRm*W79E#Yw z;LkA-Z3-H!%rY;!&cr8C)Gw^8rg2aE{{liV{$5s=%zX74zc5$Da`*Jn=`ODJr&hzOJ*nxy@l5>}L3))fqq$kPh^dG_5>NUl!m(-h{TIWkwsE z;D{`^;3ct^)-?du$GNMlEly#!y3yeLa?Tw?)##8v1*sz1XI>P~aj21&Q@E&ljsgD) zf;Y45X@V!IOV8Jv6|4Xs1jGuiwy0E(6=j|iM6WM+B_9;#JM{JvGs}cfe$y=SjW~p= zgmag$g63CfSP~e3il;kdXz$2f|IeqqmQ7Pox|C|Xv<(eNY%#;5@bpWM20pxzc-L`t z9YWOsOd2vXr7)k=j>+VuE@UuJ7thU8USONme(Vmd=fZb}G7@r7WUEtHMpg7D=mT!~ znB_eC7Q%8FAjbgl?=W6PwJ6eGzad~e*&W~^z{u_Arq@J?IzDX# zT-h+na(i(Ud}x;HM%;CaT<5rEUTvD6Hult>l{8C$|D)*cynG>ajtX79hTs@1BTv2$UA_j>%+hdXWLj zw;3R}F+f7&vq2r`qZv0S9oyC6h3cBRldKE2>ub@XJa=kf3|owrrt#%~AiR8g>_Kz( zN~8S_JvV42;I$9z3*_?@MM`Aci6KC06f8}$IbHIX zEQvD|T{1TDKj=@RWV|psT8bA=8eI`DTsgYbAYB&$i?NY2WA4eAqkMHk1Ng5996L-6 z+@E+|3-FUh4<_7Yt#Av8R=@(YaHY1E2?_qEL4rnu>`gi$%_Yi*w1Qn+?^p}kAO${9 zB->sNyzB9+2YL>@2v5o<$6cq#7Lun@z1DTt;n>Dqr#=41N`~h`3c2gTIX~25!|E?a zAZbNuex<<{S!Lu9LUTQX-lqHZ43Tu8 zrAHcD-i1J((Yo754iFCbR7Z?la#9OPo_Q`IEp53|5qt}|PvsYKpE@k|G>_qduSLu>sT|?Lmb=U*kNt_Hd5u~ z=kgJeNPl%Hl+G%6fEp*808g6T6;z(zkodsi_wsDm6e<~eQN(c=EqYF&y!P3UW0=+K z)&dK68?9u*@ZZX?=2Y{JeMt(l#8gFOA!es0FI z*u9XD&4l4Tt$a3j;Ky)VesIKs!%G~wN2eY<&yvI4dU$9gl2~ucHNCmtZiU3nHzCcl zf#~hHuIK;-(`u>UM0V|1*x>Zg)Sy|jPI4@3r|{ml$Pe%f^vb;;1v@5|IlYf9rI5xF zn#Ht9BZ<26NiM2hv+aZ4nr#Y3w)m9+&15)&Thuc1o5sZhQ^87!eIk*`ug08V0RG;3 zg3wgZ*&e|DGvKkB0VhgC+i>r~JlM308pp(F*Hx;&D?;^Gv*83zE!q`r>F-LMfJ8ZO z0-B07e!I{>xbFfF+;^OZp$GrVq^A84U(nVTqAOUE4A_Jx%tftK61&jE5rmF&PV7uC znFo+eIF6T}01$lG4A7H}|HSVt)c+NJh){?F=8eEZTtMtXT#q;8h9^d%iHDIk{$M>L z552_LwOSDskpa0#DG9kqDG9kK=vQ87$D52=2`wui1X-+fv2Jw$m}z_~r) zLraJ12~b|T5DwB>IgKl3G#nnp7#+kBzZrDIDxHBhlQ|Z6(pXqN(V0IB);p(wHEl_!Q)j_5aQ*hx{-X$h=S?6DhIdBu@ z1Jw230{p}cjY$zTTEZ?#=@X9l87Ku?ir6Kc=Iu`VRZa-HrjNkQYGw>*O{>}X@5p?{ zo`i+!5;iC-1*;6d8A9XJnlB?Pjyd7T!hol99$*fp2j<;(zz=f7UdeIkYTA*F--aSw zzouC98C<`bT5Y!~X$wq?WQJ+P!%-4pv7Uo+97n3Hu(%UE zCBmW!F$jwm0!3FVjzYWDs&u+YiDpQld5{dYkJYNFqJA9$*irYy*@Sho=rCW#Acn)E z_xEPEom+hxcJFl^U}cprTIID((^h{3iSVLpu{rfGOoh#=u(FvOj5>l{?z}9XSGm^x zz{dwZRL=ecAlUY~>-t8Iao6FHG1T;7!MxaAXEwe0sgEC<{{V5d6ml!+_f_q_qUTSd1I8pKxubY%lMNx&7*xP@j`}k?U3y5y=2XDg2ABrJ z{*@g?IzU}VgD$F>AsOC@V%25d@H_AvjeEm1*;KK1kF+c+Lf?-g6GwEo8Eb>ka~i-3 zD`n4=iuY9;X8Qa*%Sybw2&b9uI(+KPP`X$RpytQnIJTjrLz4*IXJ+{zifV%nZ42x4 z9`m*6-pH)YW7Js(zck5^zT8*yi4)l_+g;~R!9*kLO{vEW6v3IDrP&j{0(}AhwzW;w zdH0-V-tDXNt{zCWhn!0OotN_@bL_%FEmjP}!XWT+I4o-ufIcM(_XTT#7kOCTOXmC# zJD!#@u%SeD+ghkD8l^_at%>$s}QN-IvY%4C1F(QA@w!3(-Or7x1?{vM=r_q+FYWaXEwefT}X^isXj1~2z zvca|5PVoYa?aMH>IS6R&ebtzQv|ph~?VObmhb(+|097Z}pw|3V9uCTKA`{4*kb;@^ z1#LY~wEvjQ)QO*f$HRl=MF0?tLn$!&RDSI%B)6f%Q5j$GZ256elZVRO+T&1JmL)o8 zJjOWuCplVK>_szd#;aUs<5-zx!*kJ$w&~g#W8#H|PLOs+5650kpOb{xeEO`Dc={~8 zs-He5r08!blP*PPFx8{JAqV_eS=+{J5iMvAgk_JnMws#1u_Miq3%r!X$QIZt1}sHF zsyIW~3Cl@1WQCN#(IQLW_KMK%!wdS8$+ZudhwQPH+&37*D1N^@Ot!OZq zz%hj$O|E*JLwX`=SJCZEpkl?j#N&o|x!d-2iM&h-K)*{#X251Q%hL$t&9<9GLSq<$-{BLmXBeU# z^YkifF$XPwp2<>g`AW8Gh+IJDg8noBfx_)=UvdrUI~26vHJX1K=B^F z76P#RaB)c+JWYj_U}6!MryJFqM+Kcg)~Mg6v|gyTVDmBqnUuv59-UixlEfR(^ksNH z-VI5P<1CEdJn4c~Sb0h?p=0oNu2z`5P5BLg*+r#=2cJT1ERlMt#C(;d6rZS&Tys6) zRF-0wD`O^!p2!lZ`yg>{1`QuB!I&^RmfHZwE>V_*AZrdrqda!hU~v|Sw((UK=|6~= z%cSeL@`@{!C}4O9jXjwFe(65fpKjmx&v~pHm-9w7<{M+-Gk}OM2qX)Hktga{Nv` zZ(2wwE&$LSf^2tBx4fCC&Lx5H(wMi6XKZW0zaIEDhs~{^Z^p0w0ZZ)F&CL;Awh2_@ z@@}<1_Mc!|MYu&(k+$2b*fg{$>y)GN=B;iwZ2$8w#%2lD; zh=cLRR9q@#F@mRuABN`%y3i*?dX7Uug4~ZCyu#eKL;`0gVzAHF@?SY@I9I8!PbZpr*+cfbwLpd zhK#u4VY2SUV#FG85~;?ksPzs(6Lb7FG!>~B;;x-Ma@n{TX(PDc1!>@d_oXMkO^JsB z7vhP;i>oQzsJEvBDJL-{F76fL6N76WQjluA2%@jLxIvdfZzj<~834L*?RPN}2B*+P zCYMbT^=zuN8OWpzVbYMQIH>U|QJ{U9bSuy#YEr^ekcSX6$w7Dm;PvkmGGpU!N1GDF zyWHkQhp{`&2#=Z(9%`Vz*CEwQiGdPQ-i&h&U3ep!Eggie4zG+No}EXHR+LErFo=PC z?3EOznh6gqim}q&Elp!%88VLUUC2@UV#*TFm&tl9FvHx@5jdxdEqxu1b^;qFR@fmIlr{}y)k2glO6bOvi)w>|y=ax;Rw-N3AvW3PXjtfDVv?lZ$^pfz!IcLx~S z$jQ>}xiom&oyXg)lxe}g*>&x*r_b5@g>JVUqI;`(dF-kdeC&uT1=)9B{O%gX%y4fO zhX}Im&IA$uEseIeqItCLJ_oIJVPCs^@iE((g~3Z3aa_C`=gh*>#Jo}9%;KFvR||J% z7RC&1LlE130doc3($pQkfzFtvjjnS^G$|ic%VRl8#p&hWSe)v|5^#Q8Rb3qx?MG4V z9TzQ}iA`LB8Pcdzx=<>p0T##0Rn4$7-o$8A@dUiDMiTJ88cx9bDk5taCwhFdC)95| zq9oqWz};Z2)HGcgWP{-RmImV!AH%e0;K#O>vaLl8xn4-LHYV+aK6cG>E~Lj$8`3R= zo~DL4AvO`uEg#gt0xo&xJgBAThFMSG5K&0NAv9>O6!@V|pt&%CtBvb>0N2M$`9MB= z<&M@-q?tV{4>hT0Mts={m9_thRO21iOoX~a+q79F2kcm0lpDL%%g+cP9FWT%a^Zsg z)TKD<#P^N?GhM;4j@FoNqKzPeqIMc=fSm6vNc$w-8;sk>l?IFBvT2v1xB zA7>!h++r(PwZ8DFaO^{0%Kv{c>;kTsx@V!%N^=XvX}DK87vs*kTBpnZw|#<(XB;k` zYya{8d0~ML&}Vc9p0DP*Dbff&qqH8uTtjUY7P80ifNvDfXL(A)%^6Q=p5T*T#a_&X z2)j4BlHjYb)k9&NCj?yXqCNcL+HoooI^c__!x;`C;j0mIgcP0~ABQ#k`NXB+G`WCJ zshDb8eM*;*ZGh8Kc}5&_+WVB^wyme`lk);2MxLrqsgb46giES6d!&tlq@70(v*xr0n8v{d^R5;$@WP#W|LoTU1_Md;7-7@tiJoIQi z8Z#A35@&jTe?3}ph`JC(;g=TW;t5<4(ynNfjXk(hHym2YxD)R{t?{=A1%-L{;n4bg zmfSCgR`Tz}Izm4IKMOjvt`LB299qf76VOeqad`bSIkf&7(wFc;@53J=uBELwwDR0} z;wwlS|9m|oU%h%EXHpU25ZWA;Ht%b*8*6SNpuN7ZZS4QeKCUtoTYOw4ZGU`R*|70( zWt|0mTseyLapeTuyN_#Q{ykM6S80PjuCyob-N#iLF$MR_$Mt96@Yhn_z=VMPs5kL# znI?@Xu7@_i7ET;E@oacVycgx@P>JI~cu2OqySCSb`3D$kIxWlCZeep~{WV^%?U!G@ zZyrCA<<0SKlN0PPGxS;T8rYkyaey}^hv4gIa{fe){yl!8vMx_2*ybLLk5eCp}Ed6NV`SfjYh7u2coM=9d{cq_^@uO{l z6`uIFF0#YX*FM0PcEL_6j_uI`S2(+Jw$^u8Pm7}#cxKP{*am&I({|lJryaKO>Eg*Ej4Y8$p}hDc9iQ<&Yy{|g`t+FHfHt{rN6$V3 z#x8dhQL;K(A2{u~JxHH!PJr$X4Jj-hD*_Qz>94M?R|#6&ydjn5xp}je*n@8b&%EC7 zj8|^73$?MZSAGX^1HX*BtLhw9?QgEoz&VEx#1-lCF5d2Bv2EZExDSNq9T@C{>7Rj- z(BqEdgJ5(3zr|`f4@52sg6t6-oFw)6VxIXTiy~KmIyTg!rVz-<`2y=m= zn9R*`zD4ZxwJE~e((3&9DuCOjtqHnUn(MXgU}h;lg+jXn@6fml z&5K9-bYKXs;rePkm>+oQA8!KV4T2xxYL?YEqw!X+WjJ~jcM2>IyD@*t^=r;j_>SwF zQM%|wzw5phZNrt&v`qo8o57N~f6W+Z><8ad(6IIcJ81^D&+xq)9S-EGA>BOAE$9nk z%eTAm&b55g2RfQp@%wo>Gp{-pn@tvNo@4TllKh6`(!trmKz;(}PS6%?n-xjg0@1T9mbwk${ z`NvmU4#UZ3TyBXC%z5y7^Sx|-V*Mesf)5=0Bjj8q0muqXznpzdylr?W$iB909S%okqKbPgYj!Dg`| z{7#I26OoX9YHVbkW& zon0q_Mb%M=)lx7%+`#Bu8lmE~I3{BNR^r!<3QbgqYmbk&;yoKXPB^$7vLEUSUv0DY(fEf97e5&=7hM;*5C z<7!YCGCbp`*8%ZLr<1GYQApuzJ*e1D(Wwm}go~aBnK}iWycxU?W4=Y_@ciAvnudLN zX$~LG?(V{k(~FRQnm{N&4{!8#S!yv-_P9wex5xH3l_yXL8|Fr_%E6J8!fq_oDF$%ET#*y;lG4XB!C3i#55)n zK*F9dK>`>LhxelMj=798i?aya*Rv-(`#Y2>pB#o}3g~3A)aiM(VTAHiwWWCY646PM zg|(}`?|ZdnNVomkL3r%R&JhYNRMEK8JI7YEoyxb~U|W3O9CMZ|4Ss_0*n?U8YCd2i zxDijaS<-47(O;)l!>_uSDQXjb18>P;!}x~4NiKSU*JAMf70ZIQZNWFm@|GOA0UPk5 zSLi9R>IYFh1CQXlDaLCfD0BOoyP4+I zaIg}LRNNK0QcS@`F{tz*QMDwN@oJz~I|Qj25BR?TptC-%v9A3aLio@JR=!f@j4+{A zL_vB`)xLx5${+&YVjvS1K*bV@lm-!yA_)Xo1lREZS_edjxa-10GUML9MXsWQU;cAg zVioqNmmwfc*UA91B3`TDk)ON`%Y&Ux=%_ArPbsCNI?s+{0Dp}EjMv~j2KUU`N<8cY zQh!Sp;@~_Vz#Vln+k#!_IyUun{NS_TX%l^;L~U2bE|Z81p3~dwDqOzdsVnhQ2ZwKR zMAJ>pT?a#~h?wiYZ4AMY+^(C$lzT>Sr9LOgJvF>i73d}|McmYlVA5#5-d;Um&#Xpm z(`Q>P$1sImnZ4nriJfMuZ! zYr!>=1gkT?;E95Vv&}E=$rx`8sjMRfRy^5s@pD>08PsDfxO zoa9MI%>Z7?pP+noXP<{znvG$4U?RluQqc^6(ZwP^1%AalMJrE2UkMbexRq5* z>x)M`Cqaq^;A}7FJ!}1xCCMP)@nFpf2CsWetY0;mbFN z!2HdC_8`Fci>eh=kJM;i!DEG6SYfET2o)kgLzpoXDP2{^*F|j7&#yk*R+!VobU9faJhy z)YTa<13F&q8nU%L2ovS2V-ZYnV{);9tsx%Jd>+xvLyn1N0>=R^0~MAobQfExUAC9t z{>T5cHF;Os8b9bA5&Up(kxrg!O2+%IIecFm>p}xhyw zhBF~x+*dmoKc}TddV%{jyj2PZZwO!A=nz7}QRR%2@uF>&4sLF{l*eZr1<}st3=%NA zDq-CP`hmA_6sa&Rd-ph4*AlT#PeDQRik-1ax)YsuVzsN#{qC3}BRPRZ*mBx3+p{}k z-Z3bwwbuq0!D#KaK||RiKnsQ%^Z!5hokJ@ zU~Srg*WuieN`A$TUIg}dN2B1($-sJKCvy}w)VMIoac53NnzzSW!~D|_uC2q5ZYO5p z5Zw9@!)A`ZP$acC@KkMF=n4}+e|deEGqz1&UB z#bD@U{33>7k|UCdq4e$@*u>#>j~o=&<J`A2%2l zOMBCIg^{xMGZk>S0p<{Y`j25&Wze5KVyIrppWYHibfudOMxlg-A{!CBqJvTfOaOlv zSTc4mn2MZ;S29C&dvjPNOfl;AJ+-sZpI(I*x9Z=DKMZid9-xEi`XS!*eIZ5_bnsjC z2s)TtWDwW5qAt%yFoT+5Eb^vL3QJZ{?L}ckS9>_@;tuTE-3aAt=Mu9W*uf%|_~?XR z*hWSqryl~O8R+-HHm9EU<$4;nq%Q#}%C?P#SiKZM7)UgSims5>Z8;)wgp|PF;e8|4 zM?eGU*R}O%HR-3Jq?V3LWZb(cp$ya#w)S^&twB;yS}e*WWEAoAG`8mGjA?PPrLu&V!NZpMlu5^ATJz zB2y#`bB2UrPLMFn`4NUWJ;LzH#f|VxB>a&`_{m84v?Y!5{}2iPI1(NyG|Jo<34bOM zK4iF2=B1JFw<6)gmNv?~DiZ!#Bz(%UMwxpf;f{kE>6;?qk4M4>EpL>0aU}fRNce=2 zMwx%Ehj((qn314F38_gL5{4;U!f=#2oYi4ECv_O+Obx@F-(i@OR)=?TLSiw=uJYyV z`lFN=vloB~WG`*cUWlMc_$N#{6O>Kx>?HDfo!Kcov?8Z-z1r(g(kli|#1^MbrGq=L z;dP6HJ7BoNmp^AVqTo&@&Agl;NyXj`mJYpllK|z=V$2xgHnS0p@l$XQvx!{oas7a2 zB^vxRc68X7yL0@(H}JTzt9=4L2-ECS`=kzkis4V=N1vZB3SnO)u$|gxk>%O7ukcZO z3xBzxgjGW$B>^PBP@xkfKpHyMj{xf-(om5^z3O6sgtLo|Di9ib#&W@{ZHI=Git}TC zUqU%s;a(XJ_97x!!r{he@T{%pPT&=|b%N^ZUc_Zp5NO0tCFu!3l;H6hNXd7Uk} z6Hj7Q!z)%SWGh;_M4>5wSs{Tr9Q>*@PP%u%Eb6LvAOUVF8ppM_q8GNJ z`N&q}bG;fo*FfYtFuiyMCe3Dq%J3o8pj#Wz{gO4?1Yd=5ws*id>8kssL8&R5%Ly1g zEPDqmm|@-yST@73rsvvTmWkqp1uZC_+gJb$hTOfD@lHH(-vuK{M6am8E+@(LMMHNk zW$%EQI3$F|OE$m7w$Ll^G}Qg&*r^xc2ez*ru--O-&|AyR?Fo09NnQ(Vu`RFS{g?eE z+mxY%vDg%tKcMnn?*3J@Avvp)CF^HIi-L- z%VK!Pcox=QvGKEX#KzC!8icm-vzRVSc>t2@=`R5!z*MLcB!C2140VD8o+kOlq5UZ5UC ziCDuDp(h01=%1rFDB6Si=>lJwZ+Tql%qDRiYiC@xk)~j*DGHjvTB&Iw0VKdYsS_lC z1lTEcf&`ENgQZT801}Q46C{9yW5NUpAORY$t|9>>U_$8x3CQ@tDyEYpfHKF22@=34 ziTuX%W3pax`hd5}zL`ViW$yNCP-S)oKb53DQsC#jJ>jCSqBtb8Xh=y7DMdic#W#`S2F~5~ zY>5c+Ois^NN)$a`nW3|bD29WVXfeuqU5ptzn|u%3oTi%ukO2FTPLKc+U|P@#5+EII ze#=q*Ir-65&Omh%obw3!J_skP+H24fKX~mG$xsg?dGyR^swvyQK-r}&Wl7W6Xfm3r z=N{y{^>NCM?c0E%2#_*-C+l(%UpjSbPXL*4+~EByMcvxJGu5sA5&|IElxX{|`aUxO zoBB-^Pror<4G3RoKnUs(m}q+;guT}PV!QfGtk=H)*b~8e*Ky=ZPS={H;MZZDizolh zyaemTPOfh=w=l#df9CHP;(|4EJ40MdW^QJP>+Z}e7~*O?^IC>v&AtN&?Bvk~Ipb|OH!u~nL%q(C(L8Fb2Yyn>2gx3#n9!5 z0imWNPN+_K^#M|&GcIR%C{uzmskWjZ!a%mUJiaZZ9%wFKX8C8MV5tw8)Sp9`rfBWG zNFza?gF^h|^bI)f7*fw=414X5A(wU`TV0D390222JQ+gXz=??U2zbN2w+r(exh~* zGH^h<4AII@cK60_JREgs;VQ$*Tw99d$8kb&<7Oa43qtu!7z%DAuoE>f*t+tt2NRqS z0w%8*4vTS)hofi>_KDp%vTg%669eGO2pC7vMI?fHb4XuwOfgBJ(9 z%LxzWvpT#K;H4t)(wSr?U3&rHr5f;3?cgOLBq%uN(;DN`aVT_E>uhUitGLu6{6=f} zqgEfX5dOKfJkw#qM|Uj0Oout9FhN+K_#4KQmJy8U1%B;?9EP)EHON1V>4+ZFd%?vW zX}sy8W|4dYbtr_lBV3!qj~VH&En!t@*j8FW2(NLFa!HIzlZ7ChkGh6-6q5{snb1 zNP4@l4UB9J%Dz8y6Ebi#_MCYcH|q>c!j>8@)*0`em+=yvfiu6B8ZTvro4*ai51#@5 z9(4;6ZlKA!=(g-u%6@F-WlhCn(c%xgVvcLrAX)zJ+Lk9Pwa zG(1=Qdp-?#TEJFdDx|6+DwR%xdm>YeHvUS02pp}0K?b{(9v$&+&4D53m;_lYGPO}i zXKIcUIV*i}c^8tkK-;DXh;z3xpd$*e%8O@19l@f>cs(;#m@1Iq^(wQ1BJ3HBDhqb1 z2d7LGtVSRV_dE^UWQpl?W-%|_d)dpNgnLh9xskNSnxk`dZ!3fF<>Ppqj-wTte$=fX zUF~icq}Mon6kRiJpKqeD5s2~vnf&m3YKoLbmMHB@UL`6VRKtvD-2wnjXJn%pb z-~a!rdZy>tWfLNxAM^W7cb%_Zy?XWP)vKe)Bu?)~5Rm>T9%?`O-YE0I9V@dApV%Z6 zF1b%+!?0aG2sjT3oB}>tLz?0GC+_GCE8a?911C=~UW<2*eHIq*g=QbtnYWGzUk%7U zLK(pO7*cE6TnDGB-z&iD`@pLK=x%Q$I=VI2!ilTRTSMuOBQeifT#q+KB+q*TypiOg zRtB=zZVy=*h+aE2OJ!G#CF2h78q5uDs3U~ET@=mn?k1KEu_KfH1KE?ogE@~QHbq>j zk2ymwQ0CCCg((MEO{f(D?_JBTh4+2ZcU0voN-EDb0eZ#{a&4Phq-%~%OuDb!$Ql>+ z6=^W9aq^vIAR2c((g$d&%ZS`&pLrN%`lzh?4C%@~Lo&0^cz)9PVir4Oa|-&*Cy*(z z&m-h?DZHN@L&uvV}yj4(BwhxVz&~t2vY8#ZV(_TnCtdgAz znHG+BsjUht3Z~#X9jE5BCd(9$3)5BpBCzf7YF~Lw>?;oFs9}R;YwK;JulzLO$>0Rx z_i@01Y}-@Evm2*I`SSb1gXt%cQCBSJ-iVx9&OeTJ`4QX2{Qv?zkw7wV+r@6=;8kQMA(f+5~a{~E$nCvM1cOiH$>)T7;x08Xk}1HBF&e9$O0 zRl{N}aw8rt!F5!4P~;Z&;wV%$6GY7Oj&`r2A3FevZxA0BsKT53#4O`WXmjj&!u%Wa zL0hMsuL~nysd}HsR1*zdj0~SLI{_QOW_hh`n4BZRmdzm<+9>t@HH?9?b<0v`}lHFeO#P({Uu35`5;1zu@| zX?FXb<-sUisIFD%1k^>ULzQOwlk8F&Y-=IdRt46D;a2Bbhg|huB?$u4GwdKPfRZVq zgRX+ejc=p<9xZOa{WWlDzmYyq-#T=Bb1jXx>6`LsN<$71r}%N&#-dgm3e+OB70HMJ z*kyvoswj=Z?P5Vtx};Nzt@|Nz^P2Jiq!6zclAcw;b!VeU?0c=L3~6AWV%3A|*m^QY zZiw1CN|h`vs7$fgmGdg}>vL6U?&U0cqAr?k*GJ&k9HhjOG@xvG^_Ns0(~_!6dp?Qw zd@R?V((;tC8iY^A>JSRZX}@FRh@4iTO1Ng3S_Qb*0B;`*O(0brS49NV$FLXC<{&3A zvaFtpYRa-0Pq+yArv;TA0~Tw_+(I&`H~}ScsSK26C6f{wOhkckt1xJL=+I7*hk=wi z;jS@JXsP6?DhH|E)EFd@S6QZNafCp`15Z3uVRN}kB34x0bwlN9j{TgE0|<8OeRR{T!r$2-2VPAlDQiwX1_ON-)^e-_E37#s{^+C=sMath%1uh1$5(tr` zCk0sqc7t=UOf_qm#lsYgW&VLk#vvFV4UDyV9CBsKwy!RS%-7ziJ*2XjbJQ@e#=GlL z97?68qLSfzD^w$rlYO~TyZJoA6IK2!TJz9p*b170aV5l4x}P}ZxJBhE=qGweNlnuh zKkUaV?I|iQ&*f#{=$^8#27^Tn=?D3qQXYnqlDY{rVmd3=Lp+`D0*H>EfbOOeV8VPW zz&#`IJv|j91kX*7bs!9Rb}Ht}q@3y1$f`rh37A(XPEcVkIYBucZ=xkC6b@)pB@vy= zGCl)dcmgtB}Xwi=^2X&ob11kSn9rp`k+3@t~U0LM(&8Oz@T!c*PxiH zkeoc|T7 z1wP3GRA@+mgwpo_m-Zh}43O_eZGb5Pj*WdBS+wY?1kJ7nUY7H+7Ek1^M={Tj>mDO0dX z+;B(2;czWQVU0bu?UA1MH+h=@ee30zh)m*S|MtQZ`R#&7VT*>^Ldf+N7X>OClPT*$ zPYE7o_GYLoFhONMEpI!EJ_3IrdyBl?&*GK6Roso)&*AN4=)=4b$W8%B)PVu+=kZYO zWy?N^^8xT^)rFLt2Lz=|Jh%?mZYhg2JxK5?wS zrfv)3_0E76%%fo+=Q-&pYkpOZHsxw=w+A;Igkpx74Ok=m0&ra2x@1WJXK7&qS@ar zcm;CmSRhF|nwpB^Y+LbEJb9^3@KNMQ#R!UDZ5ajM^tCuw+69xJ79E~> z6kmcuY}aDMVxz+_y63@-YuM*0SQ(MGxZs|WS%ar6>}o|a?boJO+pT3pkP)Jvbo~oA z=Y)oLw)@b+A{wd`WiMc0|1Jn;9z~Da&??~_fobqEBER9ALe3*tA z{_y*CILt`7AJadEe>FnzH$6Ml8Q`ygVyXje_hBG}`>Ncp;*Gvt6Sz}uX0lyO1JQ4# z5BEL*_r^G21T^9`f$k;p4I*3kunp}I5RTJ#$x{c|igNT>v2a7gX(hswn&jj`(R~B~ z-2)we*W<`lWrpx+Y!{Nr$@M+CngFXYVHqoV(r#2RR@r+ynoFXJ`x-XlEBiX_E_VSZ zH8iLWP-qj;g9gVXSjw*|C0ugVyt>7hmYFmvam%@`uX&}@v zQ@J$B`UZRwl?sVYOZJBmMj*FWIq`^P%5dQUlaY%z7dmON>3fr7;-*XBSlA$nwmzSy z>xYRx(3R~gs71Zw5__1<;t>pIvR|da*2+<#tQ`lOl&n3goJ3`xV-io+qXQVvfu4Cu zTL(QlFBL1yCdZS96(SGuIo`q&+upcDCQ)PPRFuat)L&k~XbSwq(8uw_MK=FvdMr5c zHne7QXO(*rgrwE`Rj|;xtP95#>=7`YCvPYr3jkk6;+`8Y#JCdx%34eAk9Z%J^}Z;p zL@y6>V8=WT9kwX3++J_R+hTPg{qYL*DQKM*r!{aoJc4oqEE|2od(+MTWe7jB=-(AX zgynu6NZ~MubXpcNp|p^@kt7<%hwUu)PNuG^t8%e=7ft~;_Hp)+X!y=(iS_y7f!{ZaIu{FXkAq9z38qVmTY9`*EGg*;&e5F>#7y7 z=rDzC@<xx=yYdv~wP-LDRZBS!` zfsq`eAHKB;2Q2#GWC+6PZaD6QO`9qNh7BqY6kRcl6qV4Da36}wm5S7H0H{Y;5&+=D z!AUN@kkjfL>-eR_Zo+7EA4G^*hw+ly(bjmIMr8YlIw!A6pa`W)kca0Uj0b*L1TvmM z`{6=ixi5|52g8rRb1vRn@DAh6@qiHwKL~FaH`D?;-0Tk+rVO-mw8mDOsIc5`i{2Xv zj-DD0j_8;evZ2}-2nSbxv{+lsz4Bg-&&1Re^3DU-9-%5O$lCNS^+|WB*p_T84;{Q z%I|?!jcU^ISW`@V`TeXo7LVc+`(S+70}jef2|zCHPuK`RFMzfIMOsoMtlj-^Prm`_ z938+FU}fZ-4+J8?_HG@KYmny7Iv*f4Sd7*oA3*M=j$z6dA7*0+`Z5sGvB1Ml;Y{%t z5Y&V@5O>Q3Wgk$Mcnkz1=7+(AvR5XxCWaG+4cO$Ur$-}oF}NYuPTz*sj@q>lA-EUb zX@X&283bxg8Ky8*dJZX)Zm4}&akc=ync#jthjnH4JQNwz=w_sboiz&A<}AHQ?8>PF z2m5P@U6QP2GNJ3Ar}B?s5UuAlFN0@I6EeXi2YvSM|6XcgPgTlY< zA*=+-iYDH&q8Y#uMF?O{?#Q?EKqs8*@c34E^%77)6PkRiorPSBS^9h(F(}v8szjrQ zz@|!m{YjI0NS~WGOp7Pj>7q&e0xHTNaYTi({$+IJH79jbUe4 z^bNT0F2#MM=`Eliby6*6u|ddgpQSydVtY(^a7lyeyO{bTHw;Sbtq4`MR^F!U1qjr+ z=}f^~#B}c6$fLu_6U`kd?PG)B5{p;C%R1yjgfuO^nwqQaPL>*3(w}t6N194(y$|V9 z*t4Oe2j>=?ll&5OG1Z+h)rv+6Dcl~5X}Bz}HsKm>O}-qTM4G}u9Y&1UE}bY^1({j0 zmdZ>UBBTXJj{@*2b~G-r73G(+5e_`)$5mz0;RwAiAqN|*<&;g>+S%^qe=m{9L1!lE z^M%>4u2NdLV5&<2k^WmB@F22@l=-UO!J*)wPt3t8$4VzmCD04E>TpYjABOZ#%V+~H zL8*v%%H|hjq5oh zZ)i$2Vg_>|x|O<9B8anQf5AA0a;Q)2jdFfPKF?WY?DT%XqxT#SmH9WcJJXQPliP@MKzS@tMXsYi`4u(`V< zvdv8Y4X?z>rd6bXGu3$u`wohWZRJ4N1s zY=^vS?CfN5@WObULK1glHifs7p-&kRJCzZU0i4-{F*z(k&~o=Aetu0#0#=q*#odc3 z5AflxLO6Dr#ysH8pV|8jVstRc)cZ|3523Twm}3~(Bj}9J$u5`Jdlu3@{JR4D^VUOg(QYrZe>G)~k{Gt0g-xsXqJ`QU%#8Rgv-dQN3Tez+aWEEQN7@}mJp)rCvAg5! zEV_;9?t?O1D0ApFrh6nkuwaWv<`I}1cza(>BZd6G)%o|*`43>07x7^JZhC$xo+kI# zc=L{?pg~&&$8|G9{vxvX5!rFL;Kg@w49u@`@rzD{o6(TSNle*rC^MxoB@QQ+DUY50 zE_^A+J{*^!;9UQnUhw@)G+hoT+o^zS0DFA zIVV|5`itm~ha=A)kf$N+o%k4UJu(wSm2G1IcQw%KqaUMo#0=qf7k3qcpgx9p1D`n8 z%|g8FF2%^X8U=w|Es&wpD-7cmp*MRh>HU4+lHzp)?nz#?tC9^Nsdjaxm0pR=xE?8t z{qDJHhf<)2NNVmT$>Zjp=AovBd`wBujvjW4Hyk5n2GT!ZnV9=yzPsUAgr#9z#n&^E z&6v0UkWRVvLrR9ZD7Lj5bkpefaG<8-6VpsPyfCLF@ zB9-Vv4YWA|B zp$75eKz)b^qw#)%OetRXO=d)|mjrDp!RA#Mz$NMCRVrpF%h&*V2rrEV z&L|MF(hrWdGg`-J&i6{ZQ6*_dGf8%}Y^Sn`EzE2X3=^~P=?J1=bt_b%`nc~yc`Cm~ zcn_37rKmIp(mR@Y1olePWm~bL2wCNJiv@t8vStL=bFpPn%gM=YImT@Cs{+;;XKm_8j z9O}3qgu~9P0mx|=AlhDw1#Ou3af|>F@;R7H8j+GNk&l%n$I; z0rwuLO_-$M5c)#omHi%(Bv#FXiIwrXOD;nV#y^HXPYbF%fVW&lqSY$$z_4_r`l{H$;1Nrj;7*95XjwwV)V{jot z_QXLzNz)Tau!-;q=LG*EpNP=F7^SzkVAs2(-(4%FF@mT8x8A=Z26o@<-|z;1{2i}+9aK7#>HeY9y{6Lrlj)=! zXmw{(9Bpmb?m!bw_Wlb|?!WO!Z^xsbghtd%M!jAb#rg}aEMqlkg`b(pAdpr8OiRL9 zdd$pvdD5M(Kq&PV6>%Ee zH7mOT36$Fw>zbuxJ+92e*?&q%7?bf`NtV)-<&v6mt7nF}MSLoAF7MXdV~B~pWak4! z!t=b39^hG|XGwi^ov3HAR!-U`*@zfrzS6BMv|kzBiur?*p1RfTsJ_;%2uSHxgd;Hp zx|IuDp#Ea*>>|V~1t=<)ZYg&_rX8YkeTkgGady}0Hc9*|&E!weD&M&)OaM!iw2EqnEXu}y4vZZh4Pwc#@1SIhiFp8{@~3Ti z0m@fM4>NNfBB-J89Y~99>BE==lVrJ6Rx_9lEA0W?XWWT9fB!}PY|6eLS+LynPXfBX z#!iK>G9t${3)0sj)WV8^mjPZAUh;$~`nJ%nL79#lWa$^$#0LNyFIE$ZgHSYru$VQaTdJqRXJE+WMr)n$dwLEQ*zJ=p~O#JeKC-cxq|>y?V#7EHm~9b z0f_>-tzaS^XUcdL>P!xqY6TcnmG0NV8eh>Ek1uCX zKM2QL7ZrIOYsyx9a3f~PrcX={psNPZsS<1SzP8p|#{8jja+UURbBHrg+ye!1bC&i7 z^Z6uhnS9|Hb`X;vVTK*aeUMoY9DQW+bFm`e^n4q0C$$kQpL9}Zm`Rh80hh=NB__&O zT?CeU2XeN*;Kg)S$R}AO3W`ui=fZ-58j1^Ite1DlP*3Uz1mpX6b`^jgxDLQ0$sFyS zW27oAE>tSm)n3HYb&4x46?7);B&HqX1bB{qWeX8I&u7st4%(&Gh>wsCH!nVEDViic zJm-tR*PQdAU&WhpzH0blIbS^%iQ|oVZvftgycc^aTIcLjYb=WfTCa!nS=Jr3TZc_B z;HYfN`6_bBZKSH?$bH|UBD zb`)d?Y*m2}XwjOcrQ(U!imzGu;?u=9T*nO)-w5rC0*x9ug+aZc8mNY3Ua&lD;}gWo zmL7p6x%0jcq1wv9zxQyIsdXsqZsR&()O{Gl!_){DbFlx3frsPG8^u!>Wqvb$-lY06 zK-7H5%-z3brC{?-hanil$=x8(8}fYkLtudIM857e<%LG|O$JNOK?FGtq+HM%7UFPw z91fUz@okgmBNn!Xhr{)81B}h1^sa#28m=V!bgJcPZ5yn47#L8YFH3AySq=oiBWWz znVeHwQDZL<{s>|NAKYkm6*XQ(m6qbxpblP1=!POcrd*6ZZX1V!A1c|$`Qc*9(IaFI z9*!?xWR70CKV**_;kX)as%U(2hp?KS`aw`B9bv+7&~vf z$xf7aQTKFY&qo1&4O9FDfe~^Qr~byzU~D7uS6JjQ_$$iv!BSi6616`WG zp7Quhpo71j)cp0MJbyi1%wHoh*$XZ%%U`9Xc>EQFmI*t# zOxU``{D{K>_Zc(|PS=qSP6HqC2OOaTfT8(8-@B4}6B9S-9_B=|fwxnoTzSzY;j6)b+C z`hcf1@jD3tsI44FF>ZHZ{S+TV!yeJ+fHXb?6>y)2Lwz19gnJJ{KW<*u-GT>3Z+I)` zV(%E_@q7&7Hg>7o(Qy2{nO_7Ma64TX!*>8RpVyfQ7He%jL#CB%s!V|ZnEtFhbl|Dx6th`)l6x)YA`C>8G) z(DB(T039es5K-AoS_>f=J@SO|v62<}2nvPql8VaxR^nI|n{#RN(W~Rtt7ndZzbmP6 zt=3Ie4eg+nZN0SV=+&{+v-V+pAX@Dq)%6D>Wo%^Ub=GWImYl?}=Ax@)T1Auv= zRtr(9i-^i1g={sbSdCXPkPNsNhclF6K0-SC{Q!i+E_R0`T6F}>;vwb2234T3v?P4^ z0O3sogg0aH&LYS&nogv7Tc9VV$Gb=L#xPv;a}eW7@FjdBJ}ZtXW(LzUyGfQtHd**i zpAI-K%kYHu#<#Cfex1I#IDKCf0k9h&&K)^K&XfxeE zKx{NG!+oEbs}aJJiRZ15dCMBK9DjN_+#26r)z?gU-!ff#fi4d|17<@D+1k z0yHzW+Wjrx>#s!M_C}aQTVM>iN>XG$qFyWv3%A6=T>nu#w>M(#*GzDHH;wnHqIKC; z!HHli-2_6n%R$xr7BfMkw;3^6L8U?Aw+k>j*L45N+GGfKe7n_#?@kU!IWQ?BSlN@7 z=kR6HA>%6`ajG+qH@+YufoUm0S3(tZzs6%I4WV-Ub%z_o-x57$hD2?LshLfUHV8~W zEM-`V+jXWc(5m`5Rm^PkS#CnC>FQc$;!s&NZKuo4YZRWhuK zhVRQL4X;ruZZux$ICGlr%egj5w<2V9x8gY;^#p_T7(`;7OHfFus%R9(`T$A12ScHi z_@O31r6xcH!2FG+3U!NEUp1AYiz(mmsRmsz6U^>|bt!D<7>ClbbH&}5orAZNp-*iI zor6kaGb;n!@kChYYZ`O$uF-G~ki1rQp1jo-)BVNWnB5O=CqtithkS&`0JX(*A2WWm z`)?vYTzVk3ro=NUph*QtdtweMKP48#VlbsPK0?WcSj_z;##M7YJFN?A0M58jVyA8={8o_=33{TKdQ*!$EGKDff@Y=L zjCy*xWHRQsUk3nmGQx2b2roeyu%PgAzb7tksnk_;#yID{M?0=|ryp=I>V?d4s#kw@9Dab{A zo){0PFWAGjhdlu5&W4~mF&>r;Qrr(vWrYGh9C3QSB& z$A{&M>E&DHXSr5MBB_g`0bzwDTZJ&tDmWN`nXEZ!q+G$N*It;0nIAlCEeaR zLEMPcB8VH9%^fLEiXLq2QVr9zR10C!abMK6ybNxFfN3fgFk;m#CwkHQU+}a0NbM1s z%5fn^L@c)nFEonhC6XdX&j23$DK*eV6F9NS7;{CMcGkw5VpvDaNmDC+OeaLGh+MZQ zj$8K_(O#U%)UYubaYPUG^p~qpZarnL6wuV6iyhvHyERPUO14M-vC2m6}#kK*_@LcHEP}3DDbPzN(u9cF0%1*Kcv|+iv`eHTCa$DGNt;R5( zj6VcjL@R5l5nwV=z167kL>h-;!dXrMurMi;1&K(%f!YNqOzfm_#ztlLA>d35xDNqQ z)qa+N@&!i`nT6=oYjhkx9z%kCsO~MT0N#I`>M^(XjDzy4w9bn+WAR@R`eJYtoa|)c zbf;3H&hiFBT)IMH_1Nw`?Dr5zF8sP{j#AzDtnw1pcE>R5S;+H%&O5F&FJd3mvAdPT z0{tP%%keCV=uMzwuzZDMUz?YY)l&K1E*VP9i)AS5|MrZtq(|{MdnNAKMzCL0ie``` z?MVFH=@=+g%1f1?gYC*SD9Wx{bt!|3X>*vW1c$BR%bf0!J0PlZ>h%D!i0bt~QDYaG zR>=J*&>AGkfKk&21#IIJ*PS>BF<|zwi-Z=V2cQMjs<)C7wOH&@l0n41tX}B=t>kHC zdSGID0E&kLtXvKlg(esZrIb8KgI2zIhM#>RPL6-NgWaRLWytvtO+m0j<;~AL;$*%` z#e9QId&VvrWcEVB4wAQZ&{$HwGN^cT5FlVvk;O0u4oZ9S>wgX9!R)%qZ@}z>62^m3 zW?uOgwTy4L?x1j8Mq#`cTtghFA&W7_Tkd^&B%V@|6_MZ2k)0)xLmZ>`U@63GPdbJ^ zMo;zfu|{w27){LIIb$^GG1M`7x<|w=ItCh}XLzZm(ZO~-2K~K(W3)Fc$H!n?#+F>F z#eTDwgDHelJcWQQSed;>*J*vT9@oNPfl1kP0-jB0uviMnpc0USz<_`pBo+d4kl3+{ z;$vW@h>yvcDXQ#HoxS1Xtm0%SCA>cp2B>2p+i;BQ`{)Syfcjuv&;zcd$j`VMtH#i% ztw+m2OZWOhKWN>kXiYH+O1EIk8LVif)E;2MmZP>V9~Zgu3-yZHdXkk_gv!N^#T3jN zrQbj(4pIhMW02Uq9#9^Gg4V#vTio?n7s$5;PS;s6EEh|21XOe60(fbdS9WQ01PYax z^2H0^->uuin?2|FzZ=cs=@q-WVR9DD9h`WVuZLNr)Rs@>5vyG6;0*=6Vvt5I>Qrw- zGm5_Q9NIBP`-rwldrGW`u?S4?Z(2hPno-Y^AI+Kab1k`}8e$n}(j|9HPbmu}r>B&O z^=Xi0VtpE9nb@M1#zFRa8wTAv$Jb>8bvCcblP>G1E}ILeudJ)|a4YSy#m4)x2>1;a zGdXmL26O;iL)3s~Gm}pPnp=|9rvdF#5;&&$U;y}ddRF@NXi zK%~b|b)fkk5$Dk{kPfuKOLZU}@9IF%fpAICyE>2_>%0L(bgIDzz`ehYP=gE@4G4zvU=tpkmI zgXNk-naQUE9bS^vrvoi4i5#*Hw20+U2Red|q3b}4y?m_G+p7Z+^LLI8M0yNW2kQ2S zcqAPI=|D@pR7cT49SHY-8BGOtAZ!?YGj^b|dwV=XN;y+%89PuJ7(P2tnb_%zY_ABJ zY2c3I!1l&-uo4A(LMO)6Dm|K1Dno&?d1F6?(d@I!#Jh*TS-VVmE0{Nwm5JR6yG&Uq zIh~|TEUBYWP}IR3PE!YqSkwV^tY_9jCnRqiqUqzCW2+^+?syy~EH%S^6Sk5vsCwJL zum-cEwvsZ?$XbO9faT1TKBHC{7(RurOl<2;kXC4WCTNSz@1^z&cE4R>zbI=W+-dto z8E89UzbFgEvk?qnsq)rn%H$>W{RWgeeC1v;~>y#R6| z{6id4k73qLYGEZ0U_}W4B;oQ(KFM(YZWU}c?g zZj9eeVV$|&p=$j9WoQ+uln$t*%K@4$rQ@k0(Yr$`SI0_+)B#8;#!;`E zy*re`JTE)!ebe9}4W&YLDC~O0v&;axnnDf(=(qF$+6(^>2hh`*H8+5I0M?WM$PJ)g zl5|OuAXIt&j-TFyz1)O#N2jC%ko4X0vuFp6&x~AVgxulrlZ;$Ce%|QK8owzM z!-w?PnSsD796OOv%^eF9t}jh!yS^k)x_R2ocKb^bQl1Xsj8c}em*eDlbPRo*+~DP7 z$#3sCNzC6l<0R=Z)N%5&9uYr7$3WxctzN2I=OnPks?Qiz*iq&G32XFbPS!ZF7ooRN^dV;5%YHrUy&X|<*Use5ih1=AilcP zOLYkylo!0|qi}s-w>P&>w2bv0I~Toulx1Rf&HBLLB@D89ut(|Y!Qime+5+$0@~|L(2cY zb&0_#Imm+0PBn|P%dKdavTGU?8SffmhH8lMmNd$(hpd@FURooir-Ve$lIW?q`fm6?pwTGRC4AmFL_I%c3kY1 z0Wn~~`N>~#E*nR=q#rIrKlGiW%It;@zJ|Jn|Yb(9|I82kWDi>FNBRKA{$sw-%DuvKeCB~hg+QJEwI z=0?>A0F0V(d~E~&u~v{+A<{h0FbAlI%ps!ji;5xpKVF z0bama->Bu*@R}$G_o&IG0&2sBS!cOhAy^|i)Z2!##ygMiUJ3!}UIPJU#v^J!7d|3o zyPsx=T$nN7g(n{qsmFV^#{maioB|wp;7>q?`E8|74kXxCVB+9S`GMnYv`wBcERk zCS~&bYE+VcNH&q1h%6iAX2Dv?*|Kxq!nOBLdHL9oZ|~fdn7?!8uB69M=dL?r6QLY? zp;$ia6XiRz`u?`a=~~m1)av}q?NHRT1o5gO+tu~BkMAh>bsjItPOiKUCb9<-hY-O# zddzUgL^LSk7pw)>7^vGO^aek+|K0^4Qr*E z7IdH-G5<&ON)X;Ze;b&AeMa5eICh9p_inffR|y8Zq~{CFP+yU+ZTJ1_1Dy7f)MP_3ED?2_G?rHlf({fzBiw?-^0rM4(t6%f-ks@#JxJu05 zIpZqnG1PJOn;sFrPRBqt;d{JP-=Kr-Q@UroVP}Ta{M`X%d%idHy)Apjrd2OzD;#R2z>v-`bkUmdD_br1_Gsb6A2 z#kXDcqPqJniogqCYJ3O|?=n8Qm|Wc`+@j{ZJ>^GC_uI_QG0rmPVXTw;TV<|ZaEq&N zgmm2RAd6g``Q1TF1k8YO9$>~{gJ=lbjU6ksVb}KG-8#8ZuJTmZfrcHq4zwy+7kr)< zhvMuh?&S@-ygk$k;qr62O_>+V!g|5$LFLZY-0h(F!nWlStKz|LbLn+*yq)oTtUTWL z^DX?0=}e*hY$pyLy)E-HE$eW<_yBgY|F`oB=m&n@rah*Bw|!ci<30#Z5Z)fVHwka^ zn~tp>Zy%>E+Qq!R1oLBc0Wo;{D0r%p!-BX0$m48$g8brC>u+!v7}iLt_V{|MI* ztDmdPcQv}(O7i-UdWuM~Zx-Ms`{#TEUhXD!h1Ux?ymp{jo@PlT@^>^|zbS*4<+c2? zW$;pV`~vw|NUvYy@Oq^Lwr(Qb`u>K;!h%=o^HQpx7HZRBL7AS+R|Jj0bI>zyE)b#W(FENR_i&3>P!3rfhws6^?vqQQdiMTAso!5BWxnlBA=58Gv{7IAM-f2<&=KUN^^^g8%wtdAZi zfF9fsQ9=*uk0JShh1MUdlfy#PA2l_oKbBHM6iA^4uR)XVSqL>w)mmyPHCPU)aU@=# z1{GCMqYl(SQ64QsS1qB1lqIytmnF0)(|1S<(TMfuG=vrvX!&t(JuTj1&hX?KtFON% zQo{^q6n^I)m|?xp(6V5$D$ zrFxYP^j+#F`0B0SR-h$X_wZ#qacS+_Vl(i}*=2U>m@vA06m=aWiRjVO!K=PGrIunl zyRmq%B}{LTwant|e|CL$u!4uU^g9R$ZMVU`Y(FmzU*=Kre}I>Ux@F*vcr8aGr8>ys^5ce7_jJ ztlMk3oxW)Mf4E-^bxY10k8dUP_hfjtC&b_B^naU_jDh$04pDCT42}P!@+zj>5Y7P) zansJfnaQ_l$12I{+q7esMAGQC#(j-I2HLc<#+5QuN}qE(GihCW2>W&dC|gW?K{^J@ z=UETKz|C-3{OZ~6BxH8#E(>wuH3h)2XqItH4ORe7nx zbZ`#!|6t$Fp6~A48RTdmsq^l>9d$5cS6r;&+qW|SX~lN&?!Fy;1=X&-V8eIUBdK4y zZ)c6Azi#Q)Km-;pCt@jo3Ily#L*^!xVM=JawVurU7{@l)2esy;zGb*WA6tFXUod>* z4-M+^_xE`F=1YE*xt1~f&3_YRkf~Bj$FBTvH}x%RXrHf}a^B-Oq}tqjIBdPSLsI)U z8fW${LddylZMvTAd9@`A(AI|Qc&c?T@Qk|;4r?`b1l(U?^&QRMz+`6?Get}@MI+yu z)=%R-UhxH&R)#OzfxSzfRic~-nwYa$l#5L)Qs>L6LLLltz6@88%lWcm;qIj>4{Na4 ziTb;MxW|#_0n3~P9I@kP0Y3t|@5If%WiI0Zne;i3a_5>oGF4Z4sT7%DsU#}F zV>)lnxR%Hqrd<;D3rm< z0Hy9P9fJI#p z84(AfHm`lgmu;VOK@V)_iMFz#{?koV_QrA5F5gA*ymQ%jIWQgN)icaU~yhr$f=c{AqjEudw&G zeU83IZMdghOpK2zymn1p-`3uwx0%$&M;FGE-T~tZz}+2VQ$si)dweG~1?n-8!4B4F zP)pm?QZ9?|e$HIFEJOg(>2dKO#iNOX?_^R1z8p+44X51Q^COn`VfI5vkKEY|RJ z7{cb3(`okQTX^Ftz}32mvgPBn<~!#e zKZWCSq=9dK1MObny7R-_e?)8X#<(&&hs~mI@s&xU&abeq;@gZETXZc8&iPK-;j>v~ z53^%8ajY_bqQoW36mJIsPx53Scyb$Eh#{=-Bx93H8@*vG`>$KHtKV zU(@Xk3Q#v~{%^a#)Eg7S(93*llDRd2=3R4PMOn*^r`qh|1xXB6Z+bakth%FB-PKUA z$Ec9UcknD^35WBXkmB&%IU$k7#kvy4)iv%R;2vb%i#C&tyX z+em)q&VrUKCZGPxxYm8iWw6qWkHr%o8{ZV4__2PjXU7j~lluB`p(JwTWBFd$s~ewaV<$q!(>;5=B_ zc6uJutt=_rN*_2-#QgFlk2c+jAYKA*5-|~O0JiRN><^ZE3i}RX=*2tpDbjZ=2rUjI zMcna>Lr=5Qr|HxZa)9*+;I_DX1E{-&kUR1LK9~wN#{@Z(?Oc{i0M9I zV$~TJ3!!&12u;lp)BPTv=?@|#Y^^^PSY>dHpWR-kJkG^26rE*I!gS9>DqkWMc~dP? zq}L+KljXRTb)d3!?lg-St~~A*a8RnshhRcST*-(woduhfb6FIM1z85HRGneD?XYJ8 zInpJM+c!|}RE?F%0`N_&WjHy~bl0$o5|##%;fq;06{~97KEiarhMesO;jHUaWOXk_ zvb4J4KnRL4rA zk3!d-3bZ1@RAn%IDe{MtQ5BvZ3HB&JH)yAo4y_u!pwx~>RsoFg7505v#&VSP0Ls#3 ztR_v+0Jf8cGzmxQD%=m@y)cmXUk<;JXko(2;ByOh`eUGtcK$H$d<0JSRq)=qVDl@G zDc>`)HzON+guL6#h9-9dxqpr6uEHBV$8<&EQEyCCoz8{GYost+B^ z3~Rk=H^9a>O`@9nz}|Kk6~74;38aq&V@86OW2dizpIz`*M49b1#C%uke7|A77T8H{ zM0u%PdG7TnA#A6A4zyyE&$46bgHYdf8&HL+Q0nAR`a-m`igpi1Oe9uqr$->H-cGtv zTiBovwvLMWKr|rPc*r_c9gI4a1naPHhXe{$sdn&4BbXg026&ZChx@wE(ALXRJeL*Y_mqf(yUo&fsn6 z!Pe^a8&fkX#YtE*?m>nw43vm^{c88Nsjb1*t6%K6W(KZtLD0R|pYVx}<5X0~8C~y@ zbdOwJ{n*r&VC%Z~Z294g4@)`*&A5)Bj+7)FkMH%^j9*Gr{OR>i&G7g(_dsDv2uE*j`0G2%D|`uUYZNMkAeTf!|8cB7x)zh{#pX(jrFqMz`(~O@TOeg z76#Ht?DSNO^HTOR@Y51_j~Cc}cGr~>GHy4WtbI+_`y}MOxsc__bxzN-Iq#9llbxP@ z$9w7LC697?KAZE-O&%EN`66_Sg>+Q9bj%L)tPsbZfu1|X(T)({urRq>pr>|sI$8of zr-`F3(DSf3D$RxlC87d{_smEbXIjD_F8T!p4fzqHx-k(vWWtnFXSyE*%Y-2uS8$lB zNCeX-f$E|3Vdy33jmr>F&!4zttvtu2S2Y3zr(f=i-idNyj+ZpIR-nE88q?hqkj#oJxE$Q50=Mh|QU*S`j*nR;>EZk;6ny2TWPO+=Q z%F%Rn+*ursRj2s6XHQeKlh-DBZzuXQ2yaBboCMrzoV z2}SWp5WRbUjQ{N;f=zH9Kxc8%P{JAA+3bU>YEvHWhT~CMeO0uoW$FGQP>9+&hZ1OZ z#$WLd;2*~yW=^4C7d};OVBN#T#LSsi3lH4$fW}(lnZO?~yr z_Z`hi6zIrw)&XTaEtLUvGUKyehy`Go#^C>uc+3 z-9voIBMS1EXata7M^b@Y7mYkxKdf$;i-jr;xv1T)G*y3y&z;h|;RMh+Rcp#SeH?rG z_KJj(Lzb~0XxT{_UX~$J$Jd(MW2ABV5_GDtnIV&<(9C?};)V2y^oOjV>TiyF68%Xt zL*{eRmw>=nvXV%hw?^j;rcXwawuG->KgR^5M#3jmAxju-gj5GI`3y#YE-e^XsfX_&G61q3GBjO-7pE{6@VyoD z8plbGK^s34lzlBGZk~%a8)0NK+G;UjKOgBR=+`Kq9ACF14s$szSDJ7fK%|GEq(>}L zXKrt-Me(s}T>OgcZAt*O=!8nR)Z0H?JtJ8*x=l z)%eT_OM4^81LY>1R%9BJF1`kLP$Ewre1sqanqt@-tqD`P5u0Xv9V- z-W$>TB&f(~@;QWz9@F8mxyS$S(Ggf%Qys(AUFlpML9Ib_5>F?{=m_lJEbL0_bwsBZ zA#wwSXLSU26sQ~`K@hQl5z=0k(Sr9hsjt#gV(4DyAwFdW6T++w)N|7P2+FA^8wIeo zkO3ZKTTbsu0Uq{jN6plP*6)67C;l58-8qUkutx592vu`C>H!is4{k#0Fkw80R+a=A5I!)~gLZL4{^2Enr4z;rc zV+OL!XIk-*E3=G+Y0-TJq;A=6b3{RDzh)?nc;Yw!j^9X*&8ytMuuU|b_P{#`(H*a{ zusqX>g$`qK4c~K&Ny-~G)y@Rj{-A)w6bQ;4Y73xKl(&HX8E_@WPVKESnG%-IX=R8+ zOa;4@>|u3=DS@)BLbgU=O|@JycLkb5%J*;|kFqiBM$Pqv+TcbA&uOnn__tD+8d;>J zo_##tn2f?^MQl~kn^!d-J?T)%z_aYHb4m3Kjx6pw3&*!)EO>x|0FiT64!WDw{AJsW4c#& zA(hugsL8TCwSlT4B8GvG-3NlI%(x66|G?JxIOI3x`$e*6v%^b*q9 z8ttW#YvR}}NmwV4=9LxpaaFj7Smh+WErb2Wmp2E$IB&l%C%D$FaPm9~#lV=EE8nBP zaF0itrIBQNoe@-*>|j(1yT<{oD&X=vkS;|ByNA_@?jHp8Bf;3jA2rghFIAFCE0mZI z3`X4JC>I)WQN2~NHY5u>(kUhFMx>oZ94*%b>S5bL8JAoNAzG!&2nxSrI}olU#F!cu zUe``=WwN@?in;HD2wH%vo((~FR41n9O-t)-qCDbgY(;9sm4=R_8owZFFFhja3|~s~ zS#093LcOn|hPb@e%3_iMt7P_Nyb|ZDo@gny_$_113}2g9Wq-#6s;;@dBynN0AuCB^ zlBRgY?Pq3&Sw~L<4~J1(KotK{Nv*)EAR#P7!%9-s;|I*zK~sS*`Fzwrfn@c-b*sXW z&oS15zS7q^oEs7fs8CMcKtR{w@K zv^C)UdjNonc9@xYMGE^Po-R~(Oncvt)?)*^7tmp2UUVTG?Q_l8_;8l_a5sJS&wQ`{ z1DeOlpqrgx|>kM)`r61p!-3D zCX9-az|rV8#@}S@1`H}VYTWmrF&wh3Voy~ai_={SKH7|5#e`t4(CaTi5+5$zv&M{N z{|+};>mPVw4)=3Fbed+wkkoW9h8tZ#b_!%)W4g>=@k~De{8KZ{41-qdum@Rt75xyL zOWp6|*|fSF)RVT0+IK2;XF*BqmRo}ORt#-MK3L^9GfZM;1TiT?xxq4jW9gVQg=6W> zc-99oF};)yQuQ)8bi1;CX4J|4lkfGf;#r4oaT41VEs1tz1ddRx=X-nO^76)XHk;150A0K*u2!L9m^=v>CV2*V1e zF&yE#ACY}5cME~s4?+Gfc+JM_zxguP)0er$Ae)Kvvv9`Jjp*~)?TCV$G!2$LR>mx5 zicM+qXUj0G_b_Bg)L~{wt)Ge@^Fdx1kRDNU?U@LLR;EgIuww2;A>uD)aG_^Ua4gFe z^q^|0985Ee83lJWN{uCHld7zc!v_m0 zGl}&&Z~+pADa4{r6HA;vVpSjo>BM@|Ua_ypDdvk!8ELN1=gcrn=+(Q)BU+OpnnyDT ze$Wh~lcE_j2+c;21PmrU@*dKR#S4}~Gv;8L;mknbie{@7$XU8O*x3NyxT0r0-)<1oSM3bZnPIAK ztGgEqOJROE8`>o8p;v;3O&4pB*omzBL<{K6c^T&$W`+r%LH)bKcA7fF##Zd8#Nt@^ z8H_a$UgSu#o=G{Ln8pQo!_2MoVb&fBHg(L8g}3&g$)zlO=o{H(r7;VGeAtZtTOyLM zfYG1E2o}aU@0-x%E!k_CqDc}og}1hQiFH!+pm6&G3L%VF%#NafA(oJ__z319jy7=0 zW)+U)hf(k!KpZtjQmiaq=1n@Bnz8J}h~De)Iu{#K=)IUoc|1uuF)vrw_;#9dNkgG# zX9PlBDhva2taliw9){wBWwUUW1Q6T6$Kmj`#r5#&wzz>YfM3`aOiV$9!lDTw&O8YApQhW<;R!Qkt)@$S(NqMjn(Ah_q^WXkb?vof+bR#N zOk1&VUt7_8@eM_7H9toS)mEf&zO4kjv=t<^v{j5WA$6p!KFtz5Yr|RiUVRHvm}7Dq`j3QvS{C8<{)c!G@;|h_bWvnCric=k~_Qh*fUc=wxQT!bnN)UQPR;a;KNW-FpXz z{5zRIbU@B-(UHR0uSyV=U7dPA=FBjdOBrFM{eF$9V%fXowK{vZ@_wDKrtCNH!i0G( z5`2>(nS10Zc`}kELpOCj`k?FGi07eR?wU0g~v+nCVhiZm$HUL@zl7bYTUefz{orCJL`;pj%b20OvXF zq86%Zu)>q6IntY@FIH`4SpU>?)SeDg>gv`3MVX8aM(xUOtcy>fI;Us+u@Bf-|mFjheOX0o9b`;4z&$nH8B8zNhW z*GH(73ttI8MI-M0fU1=8d~lH42q_1tlY`TYFXMkK9QEj<=y$mvm5n6`Lm%_&SU+ii{M!L zL7*!Zh=<_dy!!iix6c+!1hF14{?Sba-g{<&WWW@gD)l z(Y|oTu}`c+*n0eZ^Hg$;fm-tbcpDaGHOIOGc>xEyJ5z+6{V_F^La8u! z;m@rFYw)K~`y~GN;QurH|B8PdknO-91G8~5{^#R=9sYOW{{;T9ff+R@Ac6k@_+whx zm=#QVKLUGbb{dgtl8~l+)HS)N=HjU9a#6#Jqi)DWjVO-#WG< z6-V8YiyB=VbyqG5XFpk0U&X$Wj|&&a-J6e#6vur#A6HczcYi*vx;XAf`M8?mxX1Ew zwZ(Bi$;S;Vj(aj67cGu^Iv-b89Je(eS6>|W^L$)GaojKRaf)?v^o()3Mh^1SM$ap@ zgCyAV&pEzU`XU)WuP+K8ioSRd6nCW~E`%$my<_?}gE=60^OJxDX68}!EKA0@^keK~ z-u&QDGxOtIl%0OuABSu|VVt`PqCEXme-yGknTxX1Pce@30?T+BbvQ)EvN^y5dc!_= zMV!Y*Y__m*LX0L@T#U%uAQ z#gpgiRs*-Kr<)muR+;Ph@{KXf0w5e?g6^v*A=r>58hC9{FCqi!7oeDv0t7M+RX>e9 zO8Vu4-DjktoU21f7}wvHvsV)x%YD|PLqNm`Ea{L@`ymQ+fGhzWroqro8#SV^y7X6K zwEjwpS%lT``;d{9Xk zI7-Eh#>>pi0|x1*z!;j$Tv*^}F2lMWv$(K8gt@SAAm8iv$CC>Sr*S-w12Z$j2rew} z?ISkxVPQdt9duu2-30S=D+*cN?fy0&G8`caSB=(I1Qer1ySQ&CRcJYWv|tw(w6Gb& zLkr`7IkX%>E4fEdsF+GAE>ynsSYo3wmUs_YMQ5;wtZfJaLJzEMah+s(!~p4CPf1Ls_;K+kB&(los&8zPh&{HI33UHUxYn(1LA*S z7*AdS_u{^uRclV^Wr|;%U11!7zBg{kVx#NE3a&{Qx=nZ(aC2w!fTAZSKeOZ81Grmkl6@vjOUIC1GmK=;IqTohS>WiG5pL7pI=_a=NY5; zTr0WO9ZmO7kAM6^$A}!w=WgT(7<;nh`r|RI^%X1lysE8#ahvOP;kz&XdbMMG*gSTvV;r+2JAfysKEVe$EiX^g!MZRZ#_&U^gAn31uTz}+~L zxczo%|KdLzXMu?wp z{UeO4q{JWM`Eg?@W|S9JD99Zrk{X{DUi#29!aQR=pSvB#=XhzC%cZP`fca?SLV2Di zwJ@aIF97CP<5Ey*tP!+W;(HD!#XfmF-Osd5U-KiO%zJf-jmNSTu0~m5qw$=czBc0% zXpyl-A99T~?v`A$&k{^#@cHy6KEFMS&$@B_i$@zH1-JVbFyye^31`n9x@R23=P5Ry zGr=1P;~HtlFN3y@@qw8wz~{`w5Lxb2O+j*$%UdF&iMKX)9TbC2P3pJ8nAN5MZ~ z-xNu4Kyf%SiczK(08We{syX<@69m{*U2dlhl0>S4%3;DOP``y~C7LjUiI z`)uKgnoAh_RfLQ-J}BXvy2%5Nwek6=z?>@e{RW;j#-ZqaVPnpz#O?C)S+2F>)uTom zH==)0%DhB@3aJH|gCV}+~bH1}6bLgWy9A>;9eS$vA=!fs|>Wh{yfzQ^y{>942 zl=C4WmLS(Uk$x{;`uv4i$i(xF5aJ#^Y|HYEFn67ARG`R158Sdm3%Pf(KzZt{Er3}M zUnNpTKERZR8J8Ost;39O9ld4wC6JWYNy^LmnDR*D^8)37JqV@S_?Ei6(Kfp)I-yhhr{C)5pD!v!R z_lmJte81VWW%;$nA0d^Q^7dny?~gL~9A?yika4XQA22rprU~B?_%=xi8&=Raw&GIp zeIvAG`SnANVS)jVQqu%obFHEmAiPdM?3)a;`Mg)`aeb#;3IJ-jkW~Qx(Sts8Jk;xZlEeqNKd=(h1$K7&lj}65lbF z@|_+aCH^>_DQ~V=E57UYR=ysTH_UhE7 z!}lHWT@%>WcO`t^6W@E^v#sxHlztn0&xr3^!EJrF!}px{Y7g7i_Z9eF2(UklK6M);=JzXpDZVDq zn!aBnC1$&j(DZE!M9@YK6y}XE!n_oyhVOJ}^&5@nD_)kkk4W4vEB-9L9*Nsl5pbCA z7l$$BZz~+ff^Q4d(2d6LDt{OddBHuU9k+l=li0 z(;OrD7DE4B0*l)?@tq^SDl_Gnz&Z=vd^<_w8@ zFic;}oF%?G3^p5$k>)({9fW)vjg&cGe7|y-vdcUOK5Q$3Z%f4tbFuhN2WQZCl=!kb z?r8Cyr{h+LZ-$OLL3~TJ?-clk8CYmX2{X*o#P_UC-`?gK;=@-(;hSlu#a9iOON?3O zTJen+-)ys2d=)~^Ip#X?H3_ZvGtYMF0lgANxsAqr^F89*TT*(y*FcGU+!-h@@7rCV zFlE%ZZROq5DvZll9tA>Qe9>}qVSmE`%T335s(QJ3WdFR&?wNLE|DnV9oHd=#y4XF_ z7WUtIC{tdCloiI$H+>rr{sh-Kf$fp~-G}p;8OdkwfqZ^*9-rs!&*v5L{ER%mCC{r4Vt7`b zod?r>h&(48LU)U}O?jRo&yPs>^XnLU(ph{i>E`o1asN%yTp`cf@Lb&AdCsH2bN&T< zJ~Wcg<>G!?+`)aBw^g1$nnQP&xPK|`Mq{}-#yD-x(zY>%vEQv=?JLIdxq0|8Z576k zhd+)ss%_#kIQ&*?ve8)i?P-&Zd692V^IGke$FFpEJ%j2Ry?DjlD9v#i+)$-hWINfI-$!A*)pLZ*# zQA1)TiR2`a@nnuU=Cpz!BuGq6L}H2%LRBeRttlS9@{@-`4 zb#{(#s=xm3|K8_5_y511C$IHc@4MbLuf6tg_Gb33OcIv6CzEBvQ5)I=VxH(2^Qkw=4otR6xMcX*=W`X}GbW?l8G$mX_EqS? z_fl?vyjbHdNRNy@(7&}KA9nE|J8SoEmXJFQ=4MjvEg0dH{Ke#uh_Au&%a{7Y*!Xxl z?dm}e&%)7?;ih)A_P$-MYF%N5=Ab+~2W5E_%3*_1)(b`1w=>F`N!5&0H7C@7m=0Z0 z-mFo>CcYNL9PEO!$^2Sf6LM<@9qiJPYzlYn`l7PQr0d|TaA!5f7o}fL|7J3o8j8{a z^Fk(zA~1X*59Rpw=OAVXleIHn>MD~naSgiSYStKJ(|8>7D;lFjpOpEeJ@7bCdY4*G3AsPR>XDE;A66%g z^z-!Vs*xbiNRU6z9srhuori(!?w$d%dOei0>Y#`A^~QtzdB7x)2kM-v1G`H1Wl)}W zEZh&YJ#!njD3cR%r@xHya!Zu;TcI4w!grbW3DZ&*Kb*%yOwZgni0PSon#m2BD1ybYVYG!x=Szf=V6@7$sU!i!)wQSt$k5lsHZWMmzTKj@C~ zW^J6Cr@hpR&+kPCKo-nZn^4l9$u4Z}_Z{*j z#E)c0ZN4T1jl#TgYN0%nfzo#j%CBL@QL^3%Wrw;ck}nxI{u^k?)#J}XUc1L%2I=ko zJIv_Da9pEg=n$+U-#@eh|INs^MF+byBkKl^@7j(m&w2_i_Fe)0aA(j&6*f(1sgWHp zvt&}k5!*a6xF*DZ2z>!px1jemvZ_rVh@S=?H1cM~&026J%^5A1^+fqsMyL~LnIBhA zCqG}Zvtd1u=Rjg!9xShBAbDPotN5oQwt2$Usy^uLXmgZO3Ce}pDBV~td5bXY&T<(s z(FZ(Zd0?GS#Wr!w?g0LyVgEqMt-4=AYaD^!@+Rc&0_jWg;b@+aI~ev13Au3~DcL`> zE7zG8;(Yx5&O^0f$8GwYgz`zT7hv*JK|*bT$IYhSHfi|k8%3cc`PVh2AD zk~i}#^rm;#vbxsQyQi~{U(ei&Q7F4O`as&@FuFWo?3KwLWFm|N57IyLR^y(z&d|a= zb9FYme`WLWI-7SPY>v-kG080E2(uZ?Vmh*zciB8$!(xgdCLwnZ3vXuH25c@{nEzO2 zSu^t~i#$ric$-31Tu6sA}hq;{E6U&Juw3fEI=hMasxi}sYa??Qil5MSB zn!;!V*^bVuk?hxwmTE8;=tr~6mP!xiZ|nvq(00bI4U{xX~t8@Bnwt`nS3%4K7Ps+-JHa|m{+te$@xmgD!+MIw{)&fTcf@% zw3-dz-pV8k$ZeBHfwcDHamcIPSoCQpeT8KZV_=(zxAre;;~T+AEGcwbk&bof{TvN? zj?#ckq=cN97-t8238q^_T0|~aDA_HjfA$k9lgkECNhQv3;y~cd+WoUll8J;FbdTDT zaR$|q9LREm8cMauVS}1Wt^}r<@X}U#iL~ZqS~jG@uRe(t^lQ_|#`Q@*L5(LMr3q?L z9cjFv->V@_7c{3c(tJU^79lMc6l#yOUeHt>X`7%3=5xQG8jOw#s>{;-ASh`Lrn@dk zWjQ<$G>GM{G-35Kb%TdIE-ysg>w>;#eY8eUJfkgwTv?laCdk1X(;XI+pdg*L zTAGk93tGY~e;3q0jZs!x15oJ1QoM##t8be z9_soEnjV5QOwgCCm9hlgVXc%WC~Oc~77Nn)BfTkTy${klK?#$QwhHQ28)=`Q-qVr3 z739yx#5qB=7+n)IzzZ$^5Ol8@lH829#FA7bM?wCRkm?KSo`}>!(D)*xPJ(W*Srsa1 zf z>dFO$G(!4b&^cE33xWo+Qr{Hxb4|2-EGV%#lJ3RZ<>RhME`si{mhcdCht;;Vpz~p9 z=_e>C2q{9)`)qaVA?R`->V^oK!gON$;V3bG34pE5*Y2b}MONiT`tx{vsfl;9;Gxn_1gajbbLgE%m;n#R$1@-KV zvA0kf51(RrUZUe0sjig$;q&@BKHLS z#K`_-P|*_7IqAHgC-FogOH4D9E<=~J74*ItDNxXKMixPJf>GB;(3vcxR|WYq%4Ae% zx;*A4=yDn5!Lk27&@ygGVw*hiYfiQqr1-ZW#~GCnuO^CrOVXt!D;ZeU@^4L27?lv$ zp|$*d$O1v-5e@v?66aQEd4(<>+tR-S>CC8{EFRm|za!}{C^)J@?nFila&K~0>O=|{ z;ppk)--*0$kj3Ahd~eVuIfz^`$dLq-dj?SwLY^|30baJtAtbXkmL=bm-m8doCzAyg z_HqZB!Kj?%IBb{0NX<5AS!k*^cz}NdslzDW^zz_gK#hb>_Z{FLN$?fA=(BVe_{WfJ zgQoh&lLCWg_$QHt2F>;FNme6~C8W-j#r}QB2aFbxEm6z-`;yNEHFA8%zaKd*EX!+b z^&dbiK0IA{jeY)u$Z|#{ywdY2})0i1v+O?O2Aa&gHI(xS<+KR1iVIO7?d55M@|cB zol+Q(Pxy0ROGrk)tx^H$2X~qVQS0h|wZ)z3+~IQu2{On*x@Qqd-`eEB*EbEG6fd zZVCCe-?4z@q=O&oU`%)|_FqLpk?11gA9*ogHOT_Py0?hD67V(|20ser?Q$pJJu*(v zr@`(48%VC8FYTTH>F``6T4q<)Rz(>bJc?6#9!1wu=Q6n~(lW-Enu z+ePjHVOb_XuY5viFxRbUXX&<^)D!e}@8oWuk=KCG^21tNrO(Myp^FO{+HD`%YtV>p z`w1*mEWcGv$9F3y_}yj9eQV9B-42m>K?Pl>cKeb{5VX6Wd%#y@s-T+9XLS3DED%)3 zwYb|6a#T>U*V1m^5XVsNv#FPRz%f!!(4RT)b~{G839?Jv)a`rHPteZ9q1{f93_*#} zJG-4EN_XxhF?xTu)1)a7)^Am>W8KaY$1tnze7Ez&2Z-ygb-O^83*CqQcf0*W&IxMg zKcm}aa!b%VuJ3mHh13e?Ua}$gYs4Q2SK5!86_M*Clu@B6bSeqFPGT70aZCluWpssp z4ae!<$W?AhruKIU{Eaw8FfSyey?fv-f^Q-OpX7Kkf7wL9)Wj=eI(aipVd6@ zE{SK9M>dDF4!lpE3fdjgIq(5l6U8mJMwtU2lK5y&C1WE39}`&4;a@%}8JiUNj8u!^ zbS(s4he6#0tqUFyNNJHluLi;e-B@n9E_hU+O0x{g3e@RUgC+-7qbYG#%jto3^r%6z z18dOGc&lzfU`@Kipw|Oy(U$mFCzNbm@LPe-bcaFj2D;K9e7z3Sl?B$JM-18;SeK@= z=dv)}XMyh2KG|w{Ft9$|EGRF^M{P)t3t9}+h&~kLF!gAl2Mz7P)4kdMWME@z>WP#` zhEF{i*pxmLG$QhRU^BX-7wSq#ul{!eo73Bj^2qo$PXfKEPj8-XZRC@{muUv05?GD3 zpjPxuU#?4ot4hA~o}f3{)(!HdQa|qVhjAW3?dVI4mO#4ZK^P}Mxm6|69 zh0`oXC8Wfh9~42S48n9+hvJ}UxEaIgUcKc(v9$9LP7XEK1;x=>jPhY_?+!|!jZ#sE z^kq;oox&&&=wwhY8uTja3QZToF9r3Z5rXcAUjuqY&_dYnrqEG>R>D^?QfPr7$5BP3 zKb1f~} z>d6V_-&tue4H6W+NHq_p83x&zhtLHExtfR4O@bm8H8iKvBL;byU!}ho)Xtnnl{A(g z@k%ZtBdD*St+3-9L8Aq2)C0{UXquo8^f2>CS}5p#U^LJwK@S5H%<1$qL2*GnfKCfa z4C-edMgI`=Y4w3Xj>CEGd#k@<9!*;dnpb@|P=ufb)yJ5}&{qWwRx*Kd1*Ixyr40I( zAYUcNoI!U8YOlOz9!pOO@-*cG-4@i`6s3%#4kLK(_x0K4aTI@Mf#)3$_4(#Z8YZZX z_adM{g4%k&Va}q{1a0?T0kl-mF7J2D5x78UYz+Kv+$4>g)jLk+4h=hIY!elpLXGX!C&3+Qe}ykv#+ zG^0G0dm(ijgSjsu(PL@_7t-F07Lg_O8wJm#>xC{n)GK%v-72UpoK4K8-yy*nihXpe z;5qaL)0L36$sL2|(ubL-Dx zwJmr(T_>o-ewqJ9dP$I9+XKO6wE0xDEFq7_oCw}bJ>VA}K#mcPnT&t;Q(NM0ymF-PDs&zG*_^--35jA3>9oZ~E<~eMP!~jE0DGqmmzh z=>ndN+$~nnvIk%ER$!)0u>1zUPt+i?q-y4>JHaKKBEVP4v!C?(QgG=8l&zM zqde2##_m8Dgw8p>2%hx3DyTV>dJnxVEW0))A$#akq5HAVO^3a-eJ-zi-LBO`_R@2l zpj~PL>C>4G$US5~b>l=#jz#brpCN*752QfZNHmYE9*Xpt(A|V9JYUe$jPl4^Ly>&* znNLy#tIZcQ$)H=boDN0;FE@r(m=DqghVCcxA(}b^)8&!5jVsJw(o2G(I#rmzqVWY> z*9Pb?H5Ve4keo=b;3G6134BiVY8LV}Ed|1>O*I=g3;Bi~VU~I1S6BqUrO7k7m*v?= z7X+PzS5$mUQ)hAA8F+EUxAZ0w`1I<5)Mz%>O`Tc+9@ju3bFK7p$hR~I33A`j z!#Ct8ol?ZzvZ!d_#Vrw*?*S zF*XEV8o7+?7W9}Ha*Zah;PlIc9_DLwhe1<9uG2B6**A%D?XA8>jyZAA!`g0^tF8TEdMBFz%CZ`vmznzUEY(btNIE`@%`Et^b3x+*A- zQQ1dA2W_TH$=f-FOp6QArRZIpj(7PYq?(i~==y7YLhPin-CVcywQoXdNV7iWv;)Xd z8uS^bDY>a3&eDuMociT{6XGiM-peT$EZw9XpL2Q>YU?hA?&CD{wXq@fq|yVNTwa?P zQeWzPh|`MP9_ISea)YLXG?0`px$el+u_2A5r-wQD#T5|`$@Dd+r@5JC4=LpvPCIk^ zgfy0xf6GbE{V}AeFPN&#cS#CEQoZQQ8~eM0aA@0P*+YcT{p>F5T*-~ z+AxCSgXg!kf~7!4{H{=l6fP{$ONf*z2)%?#BLtzBFljEMJo528FQ*9UO-9^Hq_jp@ zzTNsdjg&4iDj}z$+(M(I*Un?fxMj37lauLswnu2RG@ntP=}ER1&{CnBQ|u9HkyZ)a z+F~!D^+MOVL+j8OX^YT>b!ZQ?OXzwp^b3uZ_6gm%g=V0`Lif#ph|oBR{K(2;I@001 z5+|7io$Jtn#7VUTeK9UJG+wI9D9?0kTryB&p$lz$UP+Kz2whCu4kSTp&vkIew_j+Y zw3!q1(a_K&srOHqUmoeTU{q)iX@?-MfJvb}rRG0_3hq}$FDeS{EhS&#mOVV*4DBoB zGb%KdF7gZQC(Y$L)7nL5pi(5*>n~4O7n&j+VY(&cNYSp)L6UL>y(}R&I_wV}EL{+k z+~Gv%E7Gc8xbBS(7ej|hXBg#?U5kc>rb!P4tz2+5bcEFT8d@$Q*Ge9Tj+V||N6IJr zb6mT_J4b%yG+{x5?h~XmMoUO;`&Qj^q$xL0w}iBtc`fvEgk~h=w{N_u6j0#Pc5{lp#u;GmIOur|%1BrAs?sl5oeStx0 z=RBZz?uEE7oYlQV%Hdu}L4R{-iPci=F|)Y)LW4Scl-kfc9&5TUHgpX_9e1mxXRN z=r&3>h3;L@ZIm8zA_Ln{QYKx!i}i);w4;&I{y-`;eL2@Jv`pG02xnuNbV(4-#xm)K zAe@b5(tSbwU(v$em!2`oGmU@69!Pt@eWng`4*NiIV3cQ?GOR989Y#xtU0|cIO-5}! z+IfdWtv-aoZwtKynhghi%<~+=Z@s5u6c8O&HBEH7s%mYAJLx z+k~0RrS^iBx4G|EE(HjpEyBzPrS6RKOx0W5_d6)X3f(~1YaEh#3SCB&BRM1u6uOwA z`Q|UBVS)x14GjBI%3w4D&V6G;zml>A;c5ym%V7Tws2|i!4TD!x2$GwnhQV7e1Z8v` z6ZWl?$I>032a3mp9W!)+&Bla%FXdbFgVA$Bn#%}A2#lT+QmN229XKiMq_kY`qnW;4UiNTWEJJYjtPAe9Ol#OM=26)*#SkoGgmGu?q1@PjB> zxw^CW!5nrW#lTPq-rh${% z)c#HSfu}PKoAlWAH|dJdO_&r>`Z&`pC6huxAM2%Y&Ar`orrzZm74;$CSAWO{~W zDJM8~??|6Bf^g;g zQ)&s%NMe4t@=-a9a>A8Qk?~nj)Zxmf%SD24<*P0q5QHmVP5BX{JW}CVt&WRa4Q}^X zcUG>l3!?)B$ET~jKoE}4I&w<|Ee{YJpLOMOK{!6$<#U2?eAbu!RbCccZ5qlEf^dCl zC~s!Ok3fy(9gKK>jpdda&jIsmDrX78{F=%3I@e)-&1Dn3>KDs``L&S8Fe)dQUrTw4 zAk43&e2EdyuZ?_z5g!w6WcVpPcqt)!=WGaTBfC`RR6cu0SX=oXqebMkX8Xh1%OBgL zZV^dq_H|e%d4>bGl;&52b&=EHmAB|cF0Kgklc&HPAEe_s6=4DLJ$PamDKq<0SfD%$ zf8+@Jm(FcAgaye#@EZu!6)n6G79uY|0$mgHgRt(hsW#Wm?4*ZB%7KiQkhq#I;TCzY zLCwSCBeyc>V)$g)!l;C->2xuCnmkVs-XF`8*BQDEVfpe7xUz#KJJa>I z@Iv`2T;WEa_8EVM&z0e4_=2iM%#&Rh!8NO5*N6r3nkJ}QM9PbsMU=`%nsP6#o4H0T zl^em6)7bL$a{MEf%O{Z_hy3iQh?VjUq5B~_F=CaR-kj^Y4j3A-MqVW-Y~YxPwekr; z2ii`H*eIL4xuqqeTEzSEAVG5@3nMnmdj);isU+ef`I4YzomNI{mz%cW>6U@+6L|rn zB_yck`w@HO4F>Ir*e@Rumf4;5L>!XazKrRXkh@{uMSLws8B`eYt=!L`a}nRkSq7Cv zoRDWR;Ik}UdEpwj&g$cr={SR`iAUxXtAomyaU~~~VFTWzlWsEyemLR-F z{i8fZ5MHDHQC`O=-?Sfe7v#;1@=O(=yCClrmM=qDF3O(^3Wc&iX;OW@4gc{0TMmPghQbW1G37!p=q8yY*g79fj2Zgrd zZH7;SIw*F6@M%y7r5-2tG^m3DKjndP!dp;=QsST_GU88!I4F|^;gg~c%3ML?=U0!a zsk|%bVX||Sqq2ulJ{eiF9(-EoG$a1psIxM>Ju3^8x_Oj~GKCZIiH2W#D)$84hx-V% zl_ni{sY85PFDd&N@#Chu za+Xmcc{QhqxGR?hty_q6OVIE>NNOjRJ2_d5qt@&suMqoe96Wk_&k;b(IZsjq183=Zyay~Brw)>qsGWkI_% zR5}YPpM;bm2=7!hR7MK=bOF**MoY-!pv0(#%EB((=MC6!&K7f}K$4eWf%%GJ~ zZIqO5T!*8_S1A%S62^<)^G-R7kMp1C`&ApvSPS0~JRz&%IhPQX@flk0?;_K?2K}i;xyD-4b%C*Vj>j z%2}p^r)Wx^1elcvf>xTJ1OzM2!I*9d>6h^&AVg^+=-1|_qC%B0L7Cp?qPi>n1)VOr z7!{`E2wG{r7!|H87PKvBL_mbH%b=8iDCI|kVgoFS62kM_7L*+jt9T1)moXwBUWqj* zHXu>SLV{gM*x)At$%=hCJRYfSyJ5SC$%7Eqb7GU(j#SKT3lY{D179z9ICEp(GI{G-#As3>k(J$SMI7$w=DB&Q5zkf8pN5z%9nQby>d zU-Wn-9!4AH5SKM3dXlo-!s+O&${QZGcm zsq_%KV{;w^uTY8&%Ll=4DTjn*i?$b{S1Qj0xn^C6Uad6k!}Hryay|MTWiunp&yl>R zd@blo4!lK4xo+t0N3T4dR}LUSKfE_fB|DU~0h~s_E39@Zp9@NY(XdN7!HM0K z-K9vd_G8O`98u4*OL1b9M+Oh|vg}sc7`hIY&y*O00xf%$kp_8L_9;ao-B#Z~%K_zp zL0*<}<*A^KB{7ymO3@%*vW_JwmcxqMU``t{11;Yu-3;=w992>Uxw!;dzEd)Wa7#BA zFUxUdIgE9zZA+&>%SpxU6)SmJPAgkpMJgm~BS%`!D4#RRBRNB}Ea#NdhA!7~UirhI zS(Xcm^Dt|=EXz-d52HMC(07*Ql9FanmgS1FN>F@BspYETlg4w8FIjE*RoN|QPv$Jk zZ^};wWm#@3rs3SO*kzXGcO`3tm9i}N6q3&Ay3;JnAIhOoR?4zGR6ZJmgf;rW@>to= z2y3+6@>Drv==NLwR2~|1*g{m-3~RdW7D;W-2y1lMqNwQxZMSIZ8bR?Trz|G5{aBuR ze90w?ow`@hp3K7*2la|U+bxc&{Wxw}>~h%Rq-JMYX}iTmRmO9=?sV8vTRk$tO4}`N z>UNkFSfd_;?^s?^4>E!~cS9dr>Z#`qofgwTeQJ8HBi;wC!nOp93afoTF+E204 zV@rFr9yQ1>CQLQu@%#!(dc;JiOAQ(n6RkF#&UM!_qhn&#D1-cB;?)d6 zJ6)n<64lgvZn@LNFD6-?GJ}(|b978k^=N^W{9<~m-De_UjYh`wg}XCcw`1tIm=txK zp_>vjKwV(a^q4{FM+S|H8KRyR>D<~*k4aS>XK^oXZO6sDszwMZC@G3bQ%@W8ddx^Q z6;@H4;ny>#$Bb6z7&I;>L)|QBr_1!1aq1d4Mxo_SmvJ#!>h8ImoSmn~Oi&%?S!rBM zwpsu?O+35qF*wjNN&UbeFUu75ltJ|@(^N8_r*mr?XvtMO8{}n~u4V`-fc0#KN)~X- z0$9&xszrjX!+JJH{m>vUOObk-5zgYbV~W+QLYFgiW6T2eFGIIIW}#ZY1bw3Ao|sa# zt3exMmZ-fM;Vj-0vs7JR(8ic$>LEe#C5K~{tGyTUlEs&tj#;T*60|3CPt4nD^+jB_ zCv#)W8r4TovCE#A_tdmft}Axg7_&}2u$a?zr#&$n)Rfn)v@xbkb$J5_jz@K3??->2 z1{m}pc$507p!TtpY*upx1wkn`tD6iu5xrTxiUj=^=yD-?i+X7pr;$zIaPAc{e@Pby>wrRsqMqFI9^{UY5h^ z3_&AcynL;?tmc*@V7wevR|z@}iQ?{NAP zj(=y>_U~HB%kqQz{(DF`ZyjQPR6k{eE0JsLMfJF$YZ&{p`ny4%v6t1FYpv;AV}DUw z8q_BCn%c>rjKcPwWACcx1QnFT$KF@d*YQ#p zl=O>zs6G^QJ<~JxiP~U2*ImzajeVwu3fk%78T*$Sw1Mk(y12$tZO}$e&d#2(vbMX- zO0Kc0*7*aZLii2GnP^=LXOu_U4t)@8(uNy4M^a6jWzhZT>e@MB8DHWbYo`s{#C`5< zb3eLV=dL7Ik8Q(EJpCAS@Yu9X4k2!*9IH9uVcGuQ-rSBycA22X4=8a(rn(T*br^0AoIK!OPJPtC)b(5GE)0k&_Unv zu@(&;W@c;8L0>ORtY$GN&=RjLHE3~cqIOA8kKik@$=bb7c)A|Jf5i6I$fs7);!-rn z&#Y8CZje@g52rnu<6~1bcz~GYwESHs7Gdu_Lq{f{InJ%cARE8!0Ecv_}DD1>(}&U&~>H=^g}spe+^j z4U}b*mVU~b?m_ToZSiTI?mKguvPC<@D3A1YNmD-54peZ<9ZqS=M_To>R?BH|A8Y=M z&~jSbR;}|ntL3z~ZQ8USxaEZ4g1GJ4W=44=%cUT0hZc06TOM;Nh})^T{b;o;irb~d zGeXOvxKFgxf{r;A#qHM0E}$h`3-T_B`&4Uw(VA{W++J-EBTTm9t0oMluM|~BgdeR4r!+t6_W4FAH;pB*9%GO zRA*ihxvj-t0y5H6&2*Nji+|h~!9UOZ)?vA!x(1!j$#{I5s6cm$wHSV7Fsi45{ zyFiBptt~tncVD|J$glh9xCfg3JyuTo%S4qt)I1qoq^;9K$Rn*2BmRubBQ1~-{(_5w z4k`!#%GD1FTR1<`!kKQr-Oj@E%402x5w=7J@>uI*AqnCna$+|ziX4QG^Ra)alI zo@nD3mD4tGH}I)8-X`5M4ZlB*bIhFZIPRH|dz)7u$Nia3Vh zPLt!1I+8(Wx{j}->Z_UM{_0q2lm0#iTIx z`0R+iKJE{$!)Hev^jU)N*%3$mDkJ{vh?9O#5I#HNq^CT1BejmFnu`A?8p{ZWcSlyX!uTczzA^&O+C8X1(|Z zdYX;SL(j0$dFVcmD$Cha@64#2V7jJyj*ZSspCNRZpO^lHjjn}$l+hAWQq(fOh3@hc zeJ&vZef;BF>w_3^pT7DAM!cNu^^b*Rc(H$cdmVmc!O{&az8Km`k7vZ|*I8f2h^O<@ z*9aYs2|xX~AZ!s@UuL-k<8a&Ua89%WdL zjt|$9Y%HVneuiaEe3U-au$&nmqmQ+*jMt|amW$%!^^Jz*s`w;*myKmleV<{uF}|n% zm0`InzK{OBjb(~{*04MnpQ8V4Se}d@sNb-$9HQSdEPsw4qCYh(e~*7fSO2PPr8K<; zBW$I=;?s0jL1((!Cydk^*jSF%n>|OZg(ddGXuY!_?1wQre#0KeC+f!P1xC6$3FGwn z23>BPsqYq+IH$+!A5wfUu!Q_PBwo$dPctfqr*_8I$t1q{)EY{Z; zmLn31^)kb9VnT_&)yA?^-)mS-Pbk&l!)B~q&U9Un@VZ`|5ijR5-9_k3j>{94>5Wvh z%p(gI{Lo~Do+apEiCfcE`Y}e>E?W}T=(>iM+{;?MCL?|vTdTKcgspTSVXZzz(3!5s z5;o}hHtF8i=Ngvh65iJr8J5=)HtWl6EI-oM7?$@EKGMq!OPaV%-)dvIQ~%Vkv`^fr ze_>eGP28=2V`I5TKWSJtP28iOH!OV<_vydbSbm}3GA#WQztA5TmXV2vboe=x(GrJs z6C2e>)Kcz)0-NW>50emXv1=H;&Hu?jpZrhn1k!!DSa^0@nh;4 zLx=0<8GX2o?gu@K(IWCVYF6S8dKvd=Y7fs0o!56T$~S%2^Q?4U-zz8<-Y#%n|3=V{ z-O;i_(0TYx+IjtwptTdx@^?Y_`_%LLpPb+*Ixq3O?q;cFeO9`t zw`P=QIuWgct`pZmy8C`V=@x@j^0QuK(Bi~Px~UraClINu3FlT+zz}y;^@> z;uRe}LI{?5MDm0;KI>6}D&XGIHQmA}pA^TeNW89R2--1mMdA&;Owj!vD)~*nBxqpF zJBhdS+l=zyJM8Zy-qvI7SpCSjN$V5u=xKuRZ7IL&rGotPHYeWIJ?xn!)Ne)NeI34< zjqL)Yk_UP+BVMD2dI8tLvoSjoAL_dW-5cDB9 zuRqWlL8yDIpQ}}=d#qn)#D7KqM6ZV*>3}`v+XW=>sh-TJki?|_WqzuUWyE)KPxWbn z0!Mz4_*9?E)3N)oPxUth;WH9X^|!fYwfus9K%0f`@J#saqh7}u^W(Wc)h&!L_iq!Q z>9ZJN?rQKe{ar>p_hw>xC znspw$rj>?HC6Z}3ql7F3;BAb@FqL)1Kr;NJK8C|SK3YG$W z$%(FovdE^RLWeCOn=S|)8JPgoq&9lt^^;96Gs2Ropop}p}MJ>o3-WPP5Gu;jPhX~ z*GsByax-))=-M;lEpKN^7ld`UGdaSCG_5UfXX?V}Vzq#Rq0V+DGbdJeJ5z+vVcqRa zy@hV!$hyt!Om7Opy4#u72*SByXUeG0dj;o_oherk>g-K38dd7-O$!u zxmu1kebhFomO*1YyCu0im(JDDP4oP%SsjCNJj0UQ3>xE^l;r+gy84E0n&%_Ap+PyG z1Cl%p8snLsW`=H>XLYaU2IY8WCbckVjOX;E*3YH$F?7>B2h?wCP>yF&Qagjj zc&<$9_*}Y9hHjeY<@#L=%JF03tmq?Gm}-Aw16(_Ip} zdUR3!Zl(t|x~6~Ns?>Fd8c|{{a&(l)o+u1A&BiaDK7prFZNoAtfwSGJF$zh5 z-Gep0^;itQIT$^lA6fYM&lp8``}=rR__Wn>&tJiN3MhHG(9w~SiUKY%rUKsG0Po#r zS{jPsQ{7RH9xOpgUK)bo^dOWp6l>a##XKLzGV}QKph_D|RT+=rnekXJZh4sbX%vT^ zOPioJI~uiq&;kmH^~G<${?+frT5GCG8%o|Eh<@;05m;K3RbzNOmzb~B5@RItd3`Ly zHjq62e=G*x$ew{7+@Mt@@;$s~0zQbx%JZl(w(5(*ZVs60QDaQSZ4Ucj*bVj*Ru34q zYM&3IV=CpHHfYaF^6$e1vFL$I-ojkk z#&d5xWkA&L6$YHhPd9~yO%wX_c}?2Nus#ZDQe7Fn1{V zJPG45ER(~97_)Z(#>{70%-0&O*AZq2c^7h*$b#8CjNdn%0rOXWVazTYduy2G8;E|e zBr?mLvM|g(h=0BeJ6QXyO+ovgYM_1N4D9PKnxUoVD=6p9u9WQ{ERjqjMj}sHub~ap zWei$6+GuffaSsxC8CDXRY-v*&b8qJJF=$yiAOFt@KVNHWeJfi}f|kTS{b&}}F3uV4 zC=JjA7pUew}fq{0@B$U(tb8MIs+2V7N{uhUdU4MB)1qc%p~Sjij7&DNV+0>XSSlPvXyXgxpG!&P$j8Z@ zHkIpY)tEFkmi}O)1uYe^X43g_l9KG{fk zK3v%vyaleYwUM_HKVBc|g|)yO74mXVv_CiqYqz5pmcfq2@M9V7aAdZ_`KSE}?$G$` zs5**xOa`SEhsRb&2HTWSBF zEymlbvfXeE`JC+m3R&xY!;bR2W!|=FC2RP9#hSx?VvPo}HrX&1+oZG)#@L4cSzDKl z)ql3BSByUYWGn4Jwj+Ac%&Hon1-3~_)591mx5pHQcpTZtb3deZV z%IsV~VP_@QHUB?%bc&euws~RLy1V1K^HhAFhPx(fsw}ocs|NNm`5eLu+fAutHrQxv z2dG>9vlckA2+PLpxo5PLh!>>AofxiWxNlUgsaQ#Pd8(F>$75Q`JV@je+fAK^{eU%$ zT5A~3j3jc6t@FHJxU_A5zEa`(CXxOyK4tg@7y7r2;XTV^aF6=D4Ue(4x!9i74sutR zH*4*<2U{(svTCultveRm5>^fKy)x4g_jRN%PXu; zRo15(c>+D9v)(cN7e|V!o_P$fFW(*6hL6ED0o>zZJHIGw>l2S466+CJ?6s=KaC@vN z%y@P#Y%95aHPFhW99AAh_~E7EC3#UeIJUC1wmy0If2<98kJy$LN73`6?tj-fw9WT_ ztnaFhK-=E84Zo=OZR4wY!Y0r7=FgV zWAH51nhPIM=z)((MeLDov$0wk|99sU{Jh|Hdn{p#EIhlko_(PIs_`}0>cn?qi(p^D zS7Vi(9aCa^R>H3{SUptMm)8Q%rulA}uQS$?W4uak!>&Lh^Vo5j?^^k82h&<>&0D~> zO`bouvMoR6WvwZ;61EARB~|Vrxo6wbT4O5hZO`d=fAQRTU2x_~Bpzm{Og7c4Y#H8P z{3;^PmyZFbj=asWB$wEg2i{ZY$J&EF2Obw2<{G`=c6AO9kI-fP%;==nd#C-;vn ziRE;3RG%BYR;{%bR_#Ccg|#G=y)nVUPJ%?GbHY6DA~z&BfOPxw?N4%IFd>v zlI@WB{(*=2I?s19{P@eSUvW9H8@4cpVP6F2_2UxaY4sVT^TmS9w)RAzQ{^ zJTKdDu#pJgE#R>jzBl`V7+Y;+80rFJ$tquTeICy%t=A&>wR&D_ys{17^K`&#ZhX&q z!T~Msw1L(aF@0ERxy12i-M#Qx+@>p9;taC(7az$ls)cP$ZA-qJU5A`A3H@xFjPgF4 zx$lL%sDv1ATOMprzTdEp=h2C1!{hnR8ONJKcs#DL61l;yXcTknQoj5YivoOeq^W&30v z&#xrlT@ve+1l#xY-{0ZDVldx7H%KJBGRBKKXd#wWvA{|BcPxr?r-?QfrNQ zkVcU4y@QZBzKHgf|O06~KMLv0%c^Upq_(gtf<88y0CE@4w z)^+CZ3A+YY#aZgyei|ZrTX{ftV|1Em1k?t|9R^MFS&J9=dH@u{C^+j z#|3PSs_kICa)|Bo{A{&tJ=^e$TJrDX|NFgWJ97R__}`T6ziabv?EiPx*E%Y&oYo%X zWwzaEVCzxBCGTHeW^Th{Y;CI6I-T8LvyFdIn0x+bdu~&84pxoleyaMk^=})t^;tFE z*1xS!+ju_GFfBao!0uP_81!t7;dNhNW5Yez#@M!xZC*T{m(4ccN_#$26!u(`b)NF_ zV1HTTEB*YPJuhuld)_|(raZjXSR+1i;CYPyso~1{TI*=rcU8lG-&QYPsa|CN_woPh zS0}#9ttxpN{{LyiThjL0nuuY&k7EFyvz?1Q zRkfA)toi?HdseNlZB6mMv-PUJZ9Jbf|D5*!+EksnRo9uz6LHifvvuRQo;ZK=Y>qYW zIH2|dJOOTf{(1RW4D-8qKQep%^q1{AUl{{OJ?5WlpFl2@a9L?jiS;=>TsiY%aOLEw zGTD{4kJuh^1zcaHgv*)inl_iC;J%y0p4#Hi`6#4eU-a`4yW-sf)^@n2&E$g|wCvCb zW7@`H7-J~e%C1-QyBOTkHm|B_ZSO&&ANe^ywz<5>lHb4P`TnQ9^(sf@J#LwmR{6(V z{;O0k%8}m}Kq;|YUR;-dwzRD&U$3ghSX)(xyQTJ|I&mQtqz!zeybb){nf+a+T}UG7 zLVChq6#RM8kq|!${zj7;bPW7u5C@V0@fpMk{;z;PZ#tILCSxIPEO`n3uYf;qnn@av zOo+=Qjp6?a`17V&q&3NcxGd5F{;z;PZ<Vs_&Y&=W}nPrQdrnS zUXi|!q_UWF7E{E+r7V06w9V)vkd&-urQHHw^}9}MDU0EY!?l!EJ@0|+pZ$bMDq+|J z^7ceW7UtSIEZmSu_*Nj;w3SNeU~fNZ3;66n)-%s{n{Es~1QJ`a zF3oYkn3+LG!E#EI3OQ2QYxe`ltx-SAyXoGdyC9>I9?6k3557KFO3g_gAXSf-ne3=| zD@%I*D4A*U*eInB)F@Vogj|xCOjFF%E*7<~49bBpj1Xn8(tJ*#k^o^>D9@S3js*K_ zxss>gcdExiJp8_czFL2`f^xrty|78f*4re{W?Gbv&}#?aO(Z3hEV!hs2KgIEe9y)k zOp88sbv^s`^?K0ORBI`I;f+Cl9o2$KACR{vc2GYC`zQ#vTM)07(0lVQfzQ_(!Plc8 z{*ioywe}I}y|6G|i&!zfP=JP4@`IPyLRH_%IR>xLaT>VSd zo~6+8x2i8^@|f~bWSM+Sc@re|JNz0KR+UHcYDH>X)2>3Xn-XPrQJG&W&dy%?si3dj zHKpY%10a5Q?_m&rZSp7xuk167S!RO`_U|?2nd3A_wRr4&kPd@T`X$c??aqPgKrSBp zA;g@}581g$=A;WC(Q_H={X5FmMl?r)cAT+a&RSr(h0@YUDr}0&1M2&-z5xD21`q8^YlW27`=A-&Ug@tfd!B_1J2O zZTou-4<&Qn1_wpL(WOW@x^md;I7fX8Z#tZ#Vwt!BQpdC6}2uYlVWgmQ$#NU##?JS_{)! zq&mf+PPLS_S+P!eO0(1?2v48W+bLPX6{!~V*H8#!?UE&2i}IB6DWjcIAnkmR_->>W z3ExVTA}w!%F}N<3&}*ajIjyG$vyOoLtKs)f)zowFUEcNdrAFUFj4ymOEERm7tCcF@ zYLhDYb-xP|y`@SEGOjzNOB?zV=Mp-xt;snR@}i`KE=p?QoDN5&80Q(#hC`iespA9E zAdJVIRB2uCJZCHwg_1OJj8f~$bviG1t}Ay)Sk64W?YvqsIer8_@jDGAbY|Nk@EJbw z2Z*WG9%IV;!1o)}N$qYzOfh^J+*|GK(ZZz&e2#W8t5=<~TuLGQNM6oj)<|_6zj29F z5B8T_OQ;=uXR3rwZCwE^c5l8T#QdIK&vgs@NUE7@nRIaMU1*aUqkn+%^yp-P7%XQQ zl=H4!%KE*O_4~&{;z-!dYz{EF9%f2S6-U}k*CP-U1#4Hg__J_yBe8H~gmzf!dQs|9 z)DOO!HZ=&w3GLGkYgc{VM%Ntm-ux}DS!AgDNs!s@7eJa`x(*V*be2W%n`T)Azh#z1 z@Ec}X1iy!NiH(pfg5N*80pUmTJzf$C-+#3pO8!=DMaHlqV{6;XKG9LCi##+aO5MV2 zwm?r+)UIHqs$iws0;zti-IS%O2dN&(uycYhj@iQzf4-9olTRU+`A#iaxIL5D3(e|` zRad09sq+TNj&=MYUM2oAj_Pv~zFp=B_+LtnNN)zix+mc~WkO}#ha@wZB6lfT`v1`O zE`U)N*Z%l?zq^|kArRh=009C>Ma=tQQQ5p83Is?3B6!1QcayAacH`~_h*AxTZ>-pA zA68pvwXM}YylSsjZL#95-fEwETW@WPS8Yp+)!u4bTm1F^IcH|RkKIi~>L1-RGiT1c z&zw1PX1)`#&GV6!!O1CJ{r7QuL!SLrKbs!)P!9XJr77fmo^Owb+PjbYVITZ26{kFu zbIP-I&!VMy z=R>L6;g5HHZsxNdZ^M1?zZUo=;D^q_-!S!%G=A2zWBoHTi@h}CW*R?S@S=xS|10vI z=Tctca$n+dUuDd3#vEtNTU^6ikaN}STR68{klVSlPoQ;>t}KBI8J_UatU2MCJ~2Mq z>m|R}OSPTiB~4%oW2SgZCtf$Z1oS>p;-yh5V}BX^7&5sH_T&^RtAIb_@!UtThWOFv}3b#qh6A+u!O+LBw0R|k4a@_mm$VjMGSCJdC^ z$Ln1+Q&xLPGE{Sk)u`ctl4>u>ZPFhmid%dXOZvmTCB=}X|6a0!Q_&oJ138EA*JSSZ zymj+p%*V?YO`3C$F&yyuN)Fa3r2 zyg|Kv%=n+PuA6t4m;MeC#_N218z_kWMR47x=e@{W_aeCN?s>2Bs`@JQiYMoFVs=A= z^^)FupO^Grs?QyOq+{RbC5`tk@6gRNO79Q^|K$C~`3p*^EsYHKGrW(XZ$9DAVEEYl zJ6OjieeC=58+<>lD_C%kukpNz3+6-TnZDqD_W#Ly2y6N?zCcCW0^(tOmCyZL#(iGK zqfo|eFY}VbE<@V2pgea~7vPt!IZ#sOrFE*zOY7Y&#y2}i68bx?TJR^&1@o^1e6Vrn zgj;-Hx#(jHhJ8nB9$D}hOM@c}pJn(w!uqI5`pmXObSNs1oveslShvLjx4 zt?F4XNz^0W1Tf1uRW-vE44WCQVc5xV8^aL8e6P_^TbA$rcH4`dC}R$J|L3fAWrw`4 zUbDaKd5p`l@h^GbyzGs#SG_leauyx;mf)|n95;NEO5i^PIegrhzpZ}JapT@S=lPBs zw1+)rcqhaby~U|ca4N5lQk~#bULU18!KqGgsuP^5+9av_jPLRZ7mlkoKRscaS#8p* zGu7rytS{B(pFQ7PRBe9k>Yw*7y) zZVY{9@gWcO@GTxnb;xsQ5A-w-(cj{^m;FRv<|FC4%*Pt3kEG}d_}}p~`$%RU^M3aF zmlm%9=8uazeIzrt!C$cCMb7g@&h16c?M06qW%}DQlSIClgU3!LiWz`2*k2+Rz+Wop z5tK5q4Dd8j0k{kppI9ks0h>iV;A(Le;2N<4aJ@JOuv4rAyg)PpZWGOb+eIs2NUR3z z7v}*+#Tvjtu?{dL)&uSq8v*x-PL%Qy)WIi4#3uOnvVWhr0GR8@2QJPSC*_#xm7<0pV6#tVR@#?L`hX8Z#1 zG~+1XGUGMCa^v@a)y5lu^~PIhb;zJ`={IOxq6Ur2pz#i1%J>K1ZsT3RJ;px)M+{@B zPwX=`!GE1WBeLJ1(K%pvmKNbv8Q;=8afd-%anK-6xXU0;__9HqaG!AwV!vTD0X}F@ z?>%f#>mD;!19R9|3wVUv^|Y}O{%4KNfIl*}0X}a~Z~PoKB=jEl!%?Fb{#T71fWI>a z0goHh&uN3Yce7KNp%Ghkv5^DZnY_oq#h;8WHRc z;V(656w1sm!GD^0AK)^RMylMrAO33dn}GG^qkt<-YHzbi?OknBd)JuM-t{K6x6`Ed zUSLvtx0%%5?IyK1WKw(k&F`Z3B4#bPXn^w>WSHXIc5`lfIJaBP!=V3^SpoWoLGKff znKWL9O&YHwCXLtACXLs#CXLsROd7A}O&YJ4nEoi!zsmH-8S^G%-U4Qv_?!6@@)w>8 z)MToM=Fwdq%KytA%KttO<@^l~jr)V1A1pP+Lmd0Crx`6e;-PjujkGvk@csy#;PvKz zs7T~_F9a;~eiCq^_i4Z>-tngwi5cGYfF<5TfTiAF0hW2ImKBN9yte`_^F9Yy?#(-+ zNK|_p0PDS%1FrCX9dM=hEx=}P-SQ%_+Pe>MjrTdg_1=;*i$te)3*ZIbF9UA#z5}@3 zdtrHz2zeg@?DytXOcF18=b()*Gd#xdPYmB?_%1`kM>P2iivhs{K7U1?*ykheI^ZLT zcUn#>F!eb!?kjR=+?#V~j8^B&Krijjp)op;Lw$H_&ROW0FXxLR>o9R>VR&i4SH&nc@Z5)OY>?0Uo0e!tr<_f z)WEQXVH?9PhFcg8G2F}W8HO(~JjU>Ch80DW&)E!p6S(IY&SW@;VFSY!h8q|L0Q1Dz z6AAhO@rCO|s@2((D2En?8yIdWq1cN`>OuL!JfeSb9<|X|I_I<{0`K%;)mjdBoN_0N zaa|OiEvB%$P*kydx>&((mDs4ZJD zpA>60;Uf-lBg!YY0B%r)$))gBDoiei4S_S01*hEw_v3J%G-a6FC&lb7CN49exTuS!}+*!)~hd6f&g^BJ9UUEOR#p5IQ@D@*w%zq)=?~8Z0G_f1K@G5q{ zaiJ$yrdtS?%Krk~9mc|~9x&Ywql^ayN<-Vd^&jcC2P`ORY4eBt?A1Qqs+&_!2Yz?aL zRm%N>a-UT0E6Vj0%XImZWxA0mGQ3y02bFtNxnin}FIDb*<*rojcIA#Jcdv4xXmR}l z$~`hmw%a>fx@F1@DR-Z8k0{rRuLG%{B5BJr;8J~z#fo0Je&q&~yH~kSDEDRM8ko?O ze!g=3$_*%Y1ny_V#!Y)w_>gj+Q0~jhHBM9cDA%vtfO1FRen#B5X|D<&QtlJVeOb9; zscfGCm+G}rg-0AN;SZ|#y?AMh!iV7|#gR=%m1``M_z}2-Kd4-Bh76Y~cSN}dH6G{e zl;0ucZm*Q{|FClR;#)e7SMC$lGW@b~57)^0<6xD?Yo)`bblVXow-mRBXgtZK@Ji*5 zC_K4@Kd9VNyj8&TaG74YBMMJ0(<}Go6*64rm+4+rZgZmwE4R5xh7Y&Mep%Tn-R;U9 zQSQN2s^3;CI^}LxZs~bYhK&E(beP?;&D(Kjg6cD(+%ORu2(4_>g6-4`!-^-7sf^HtI<+o!_UsQf=C z=fQ|_4=VSta*rxk98~j0xhs`Ba*xCxRPN#XWc`jRcjW7;{@<46ZHG(k8PV={g!qD( zxMk!CAs!_@Rqpm9GCZQ(qskReNqnhtS1NbAaz~VVP`P+6pYttM?n>ouSMG>%4}VY6 z9aZkir)7A%az~VVP`QVdE1r>bE0w!lxg*LwtlXo@75}B`quiCsJ^TZS7eAD4p2!ii z8|bYefg2?TzD5<|2DoK#Z-iS7cRyVE|0cXNe4qK><{Rc;%)jHxXr8CubGheB9>Y7) zJI%Y&+v44d+W>Lz0q-ZgpZ9*z`+)bqyg&B-%=a!E*&a zE_k8f7X>dD{I=kq1tsGiANQMa?~E%fEG?`nTvxce@Rq`-3STaKt8nW0IpdqgcZ|Py zd~*Eo_$$WWG5&kwe>DEx@i|2ki{=z9E-EjoEjqVoUD4K}aM5tlzM=y~pDB8@=s$~| zFM6rSGhx<*(a?kKQ#VfCJ@u}sk4}Ah>JO(jO^Z%@blQn&XHRdPe$n*3(?2`?@6#vF zIBmwx8DE<5%#5GT_~nd0&R8bznl4oneWb=J8SW* z!C4=fb^WY2X8m=RZ}z0wb7z;${?P2m?A@~u%zkM0GqYcqJ+WkINnOd=C7VkwE%{{0 zp^}G7zFl&punN<4FB%=!GB+PRzOeq!#yxev^JcA1{5b^jD?7Fa2xjwE3m;SIj?e{sr?dnSaClFU)^w z{u}c>3-0qQTCjCNV8O);ZeQ@l1@|sEyx_+R3Km|r@Vg72S@@5Ixn)br&Ma#zTU8b) z+flZw?5kxDl%2cibBpd?^p!>5SoG+kCl)=o==DYUix(~)Sv+~knM-oOqPe0UR>J}8 zv|_k3mJ;K|keDJa6;olsno^Gu&G@vUdK-BEiowG z#$B?%LVJ1#CI17K!*_89?4OuFpY8bpR>L>SehRpFC&A?f1pksx@T2tvw|<=9>Oz8h za|y0tnqr1?7{B=j!sjz(h*Px<6Xq?>`M^~2|9CFJ+ZjH%jr{-4{?$zX;3b4J@LgVlGxG?3g)wD}`5pJkuhtWO*Cv9CiwJ&x zGQp2=J|@@mnkK?L$ECl`rJuK*Fa;M8{AxMDuFD8EP9wPON`fmn?No+6O9=C~#RP8; zaqOi8+cpv$-cRsN?(IugkpECM!B;LIC^)x84F9*AFg;w)`y%B32ao>uqU2vyO7JL` z73AE0JAp8pP9ym6Sp@&aCBDt2{BJ8^npYCMzkuMea|w>H|Mg<>cij9lzyqD6ea*e* z7~qd@CipnRUF*nyW5?@&_xlN6!|+3m5Ij_Mh}d}_`dz?~fn0Pnk=QvJP&=-)Y${1TIy zc7EzK#Cp3ZpGy~<0sj@9RG&*2K0L7&m_Oc*)V zas>aqkaF1B@f*Z0Vm_aJ6Xo;xH8ct(+&|JUIjx>+{^};mC$*N~D=kF-H|DWNcM(Q% zY?Ytz|Hm|6yqb8`yYF?tFJAp8%YXeAis$_$R6C6 zo&ep-#A#M8U@=xH6Z^YyfRnLGnOLPJ08T}WiIr+H;BHU_tZ*hy)XoJw1Gkb*+=FfcJX5p)mWx$@6`~EWQk)N1g)OBCJ+U3I zMr;7A6&-+e*xH#`IX43~V4Gx$v&2@w4`b_MVkPYcJX-_+&%vg}M0sJrm7)*OkCoLF zjaXMrlsy30EaHGISYb`kiZ#|mJ%#{Ri(Pf`le zaW&w2aV_8mtp6sqt~Ua9K(94Lr??rg3-_r_u?dz-6ZO6g@B;Bkz%968ZDLFJ8NjXL zPQY#AbAT7&7PBe-4H|@r_S_A)U3>{JfZMF5=n?k<264KF*X+gD0mI^cz+UkHV4rvh zuwVQKU_?9ucrkVmICRE&pNW&m?*I;nCjeuxc;f9K@f6^o_#WUT;u*jMER^^fPCN&g zf9(e)qQfM+J-$ysamEsrh?-#!Wyh;2T@T1~oz?;P@fCr%8m}viR z0Y3&E$HZynAD~m+4QQfOufzXkKof0y1OBf7;vHu3C;0CJG||pK1CBS|1}rlE3b@*M z2eEB{7#-su@ShKe(J|hIe=Q(J#P}!R2E#BgB8CU>I>QHey^#xeqmd7Y+joFpGsYWu zO$gA$Io|~M?+3)I)J8G<4*=ra$e0ZHO=BwHe;CsNAI6<%Q#@kK2F(zBMm`{{cW#JZN^q{}3R0*bKn`AAsmv zGYJ2;0MWN*82-lqP4T$d2miML(YLrSj~Czp(YNLf_`eH?zBLEnKLTiqr_4C~{|Sh` z#ceMGCytlE{{u4#{|^C8oI4J||6@SB`fKh2e8C(B{BQFz;C}{)(DSlyI z0sl*Yrg+ud3;%0?rudC{75u*iG{x`CtKmNeXo^3W*TR1s5b_82(+$xC2>Ii=5&jlH z$RE#5@UH>{hkI^@zYP!^jvJuha6oXl=i~6N1%&+Z+y;L;Ah_N0N%%Jag4=Po9dCRA zLjHI@1AiAFVAI~Acu;&Ya1D?A9hdo~cywr0K;ANhB0rz;m z3V5C8>wsVI+zV+a*8tHEo=4#SEg<^A^C;jk&*Q-S9uU3Z z`40TY0Zs9`=Lx_+dY%M)!}Ap29Pjr4i+#@kZuEU0lpTO*i|;wWF5eFUgT5aF_WFK` z*gimTvhM}JJ-(j-{@(W@;2(Uy06gydCE)A6UjzQp_cGuczE=R>^t}f7f4<)W{@Hg7 z`Md>)l{DuMfYWkb2b`Jn2H?D$KLIYu`7_|soVNkXbN&ignez@{W6nPSn{(a;T$l4t z!1XzX*&x1MPy-1&t?+cf8HHy+&d!2AE=u4Z6lH}qfQt+30GAauK=RfCbBU-g{4n4- zz$CG2YXUs4umx~k;VQuOg>8TvIkvO#eE2sZRZ3h4%9Pj!%9Pk%xE8PnlqnGcWlHoG zwgdKqa<{k~l)J?UD0ho}g&ly`fO5CE4wSpa4TW8R`$0J@K8o57ivy_brQ&1oUn*{e z|1$9@lF)u&=?EFjfD+_YRb&Pv)+~M(e7C%({O7Z^{=T16n(nXW5nRIm0Unb3;Trqje zh$B&XU*uE(LZDVj8D%fnmKLe+?hAcyldv8v!0ptlUcu> z_1jr3vp3AXX!hl^@0opgc5cbFB`=mV%;}tynDgm5znJsRocVJb=LY9~WbV~-Z<-sP zms9%71#d0*>B2uPJXH2d+26}1F1mct)rNha#39-ZUnkBrPaAn89%y&aIzNUBitLXKFhjj%FvQT zO5<|KgMR}{x)w^GOur*0#P1rUe+o*9K(oFWn)43)qWBHq7sD@(-ynbGHw`+{Jj}iY zm{$v-FD?>0@!N$TzTCsCS%%rN4D;X&*oUg1H&%(u@w)=Q5&ZVzcO`yT;kOUJtMR)A zziXk@UWecH(B5vq??(Lg<98E&^sh+#Y&^Nm;?KAtNA4$ZS|Fge%5bX+ZxnwYqWF#C z-UHMR8wD=av0EF41D#aHcdGbK72hdj{3ec{0eyAt0iwTLmAg-++o#g)Q|b0`x*6hY zitbyYdOwx_EwOVYrT>kp-)~g?ey75}Q{gvNzHh30-&Fa&sp|88Dxbe8y1%J<{auCs zuEHl&_=F1oKNbFeDl81yZehrFnJR3maE=P+sBoSN=W%$3C{W=76)sfaLPbAd$aW7H zvfZ0~zd4KAKRZX3cSerHS17kexlPJ#Q*M`Xx2kkQDtwu8uTbtEa%6k{py*y#;n!8T zJy*uJ=gRUosPG0A?!fICft_HN!gn!#hS;pan-$$H<0RjG9PSn3eDhlTZp804{62}_ zo&589t`OCp8}YkBeBE1P+~D&Y)t)9}X-*4%tJq(S@3g8t!}wi>-?c;w_bOv^{^yKy z3hsvgA^aZ4?+N^#F|HZ+eYnrz_e1<%z|Uh=d#2+THC~)_g_tz?GV|N`eHXv~oV>|b zHsxk>-;_HWX659}D9_n7vpnbP-itinnYqi;F#9%?|4IBd z=B}8tF?Th7d+>V_zaQe~ncJDWd+sLuPWM*h8_a5a>-f2OyF3rhyTrRR=Msc>;rAWy z`Q{V&J>@-r;ZxoX_-)4TBK(5*MevK`H-z6+_+5|R&G_Ah-)HbUgx{C&`|849BadHu zk1t$}I$n<7F@%pH?DK6c^ZC4<%S`%hEz9-Yf$*2gE;GMWR_t4{Xrb@pi>~zzF23GZ z?fJCt(BiN9&Nm^rjkz5ooEbZ)k34u4=BV zs%mVitf^|LZz^x~*Ed!ATbrBfYyH*bbxkc*Ifrg$QJPN=)Prd%{P zSNU67Tl~$96-~{x6*a9@bq%d8Ew$CtRJb!T z5N_}7O@>qF^mTVLS_b!2RCI&(oM3l%b0j$!4GcF$1Ic7f9bs36Q|$?VD6~Ev9Uh1$ z2Kyty^@;dkIFTBrY?=~bWW8}HmO}12VvkIko?$)ZClhE&nuB90f z{>tWt>beT_QUivdt{c9wdIk-WMCS})^u>ye;XsH-kw&nhdV7Uv9f}3vP(*tyI@}Sy zWGEa9hJji)6paRYqU3FBi46^e6ISSwp+HIn(30Lr-%uhP>I@`z_;&>&I%dOAc!&~r zqyoVma5qsCi3omwA`uu~ACE`jKQ9@NA(x#P%5Z`T0?w+=U?7HITT?t54F^+^IEQqs z3(L)-?AL}<{qa!aP$U`(C#WpqTC4E%*tQllCK^c%H^m1A0|`#i);QGL8%{9Ka}HG7 zG@Pr}R7KTAsW_$Bgvzp~4TFzxM;wg{N&o6VvS0eR7dpay1K}7EwXKOH$z2nP?Fffd zpiMVcg>`Uk7_(p))XX_ZoC*&RThw)T?@9y)$ve>9&C@?RoYu)*ZLw5UrRWQ%x?AIk zfj~+jFiXKqD&T5hdIA}i^wQtmjd4yzg50LISR~asJQ(hXTpB*Rrc$g(fW4RxND3jm z3*sadj;T067buKzI?69uSY~^Ec$m3zeISys_#f$jL(7ud@Y z*&N}l1Bqcrq>ThAiUSO^ zQeWTXudb}FY^tkmsmGe*Z>p`VuB)!EsVJ|lDX*$*uC1@C5-l}NRgEom4J}Rnx~kTy zmgdH)+UnNUMt^lxYjtHyd1FIOb6r(^l~~aSHf|3028N=kj>rIp!|Kc=NjZ>=&YMV1 zJrWKP+i@TOp+TG+Rv6+`tPC7ISS9M38f#lx8yo5y{WT4BmHvjtn(~J7=BCP)nu@yC zmWt};ipr+O@@k%3O@UY}o@x#U&if;w-d;)HHVRQMN&5${-IQFePeuJO*qz<>ZkSt zCl}3C;aE5k33j$b!z8)1$nqAcy6A$8f0Mb7*Vx64~ z1D{F+b_NoW00b&3LTW@jDfJdAw5moVyF-EDWM_OWX#1;bYvh{P8E=W%3nQ?jvkX$C zt5rZr5k}oqBRcyN@m>BzAC}Bms%3XDJV*;yx8i`V&en=rNux0B&|)Au<1w3-q`ZqB zW15*`1{DpiWV$h;T4D}P1^zTt=J+oXutmVXrOe zDbf?ju*H`kPvbkxoG4c6ki|TBtwdov#40>pu zw#B4IKx1AjY8zUb>+7pq>RQTcnkvidn;L5T(5maI8>*YDE2^6sYZ@CHnyTx>3RZZz zbW4*4HWg1nPp5ooOR9MT2xA*75WiN--xvNOCpWrZbWXPhI6V>%+SzGxWw z4`lcN&7S6PG%`Q}m`R}YiWR+79M%&#WvG@wu8oI=Ab!xhiO5a}?>6FJ%7Eupb2t@< zM3d);mWIm4s)puzYA^HB~jWRW*K5)7singFR7w zRe5W9y&tPmZB=!>zoDYG+~4YNZL0S-`>U&Q1sHoJe{FMRV|7JCRcl>SYjb05U1MEi zb5*^+zP`M%rM#uJuBNuSSycF|>Z<(y27gUULq$`0Rb53j*1ML<^6G~ArrMV3x|-IO zR)15AXiKgOtP>r>Ni3Pm+uCWVP%P8d(JneR!uZ1~Uw60YhQgW*hp?#%h;`v`Xf3v8 z9Ds^x`Sq5IGvQcH#XjoujnMcbm`%-*zDNqfv^72y3qcyT_c94olt>6Y%4?!OWk*n2 zkhjF*Lw)^BdNBk#doa%JJr_d-=1`pXdhCVlMOC4K2guXhBebA_w=>YATTM)|oS6gs zkX*hw+#?1cb`sG@k4W~AipMP6mRvv76O9CQGJ89aT&~tA-bnCdW1lVNg>z{Ts)Mml z5cWnFsty*CC{$RPL323iM%Z#hrs|Ai&lnC2NOJ0*CaG|(4a5R{*dX;IHq;hE1ESsC z5$MRs-a@v=Xy(hgP7>8#40Ju1mo4Rnsi}}LqBo(!y--JyF9Cl)`Dk=#CrzA14o$aK zaE~B8LV8fQWIr$v#o+`Q58&S%jz)U!B@w&hO)Llm=Om1N)CpQK=R>*jZfFm)LF!_0d|%Xi_qRM$Lu+EQ2&C)O%^D7ROZG z!|3!hrfE@*5lV}3v?nb_rb$DpK}y5QOwy2Qn9{I39yX4qgCblVh=royqqRfHRAZRe zvXh-;ZfV;d^QXX(JwwE&J84an1E^MnlOk>z7)%Y5Xm5k^DDybU2`{x6ESW94VKqr& ztDwh4XXF$C?@cY0>lP^lR}G;tE*+jRl%w2Pa!@8=?+Q2nowK96yAdWnbaQJY9L4g+ z%&skonbFWr-h-koDP<|y7&FroFJ@w?1-e(VQ&6?n$CH>Q7=jorIhnbT)Xv00CsW4I z?D1Ger1^4`Xfk7GkAmg_Vas;z>;!6)ojo#rCzPGaQikme3(h5d6R;%QBNk+#b3dTjO*O|41G8W&3 z4QPa9If?c_GLxvSFNXaO4GRxK7K(N@#AJ!EDx57YK_^RcKa*J~8k31cGcu9NM41`E zil?P&?9L>>K1b;pIQ)tPhchX3Jk0}`k249R4vJ<56HprMk;y-grVM5vwD8{TWtg|u0(_>uy%&9-3-RzKtT*A8fggw*i$h;uMwHvQmh<=6n z!D*0?ts=D2?6RigS=8REi?(Q*BRgRs;ymQ}pI95%5mq(=g&|Xxb=D&1%SPIss%SgP z(yhlJvS(N((Z+Be&iSxUBf%0+z{C|MwkE5XDl6F?WTAr|$~b}^lSIl-MM5kC@uWiV z*#U|ItsP|t2Ke+;tjB7tdd#sdI}YD@LFf$x!vfNROn<63Z9El1nl75kbZsQw?I09N z=MhL-Y<-k+bDIn`miFJ9`>~np7$l-3Oq9WX=_l1w`kJD!^*5p}VF8nRO!_(?F~f3; z4wj8z%bH9DaKJ6(z&H*s(qfv?13Sa8gu%YSC*NuD=|O!=XYakzDQu=li%~_58gKDl z77Bl8CpQO!yFL<&k;aVOXc$^0+6bf_SQ|(M`!OY;0w*IN(+WCI3!csvCW)bQV`wnb z^>*HiW*~{OJ%PCkZNbVAlNQFEFf3&1eu3zYfHek(QZ^!~qhO+`sO^XkCC~yg*C;P# zth`h|<+aRY8^cMN1nZ6TB)h{HJknyDV34NHaQad4e#S%0%R>!6**(d2J%(9Z+ZvUs zyqp>qfgK0h?M^USa=A3MC{dG4!tMvbj+rLC-2=)4!y8K%`*_#p8;8iSqwS%0Mx#yo zSg3snQknC#xcd@!2cInJP zuGDS}C!@vDPQr_|D@i6snU+a4cTw_+>?UuC;h+dL?~akqLF$I3g3lvZV7SP=!2C!vKq2%!N* zH-*vlkO!IWdMKP-4~4MmVTX~i z3bZ9R#iJM!Gzv(|21()rR*2O&XIP7SFAXk{#Sh|+POhUUYUZ~llOn&UQSeZge z(yQEPzQ3oX5Sr5|;2k-R{R z8Y`=1GvcU(qm$@!9AXOYEn6C@+${CiBC)FO?Cvqhoc*3jM%!Py#%U`P?_IFn)0z2M zwR3cACY3IAOd>0*jQ$%v!;>JjyEro&yB9L!sIHk?}04@p75RGHD^L z=JNn%LF*f$nNeywSP_y_sR0(s%H4%!hIe5sI*!Uro<0dODeNAy;#lG^zjyDXJHG5? zF$Y^52k2mT!1loemEaIoak87UAF_kp?j6cQs=wB=I3_I5D_l5MQLx~ntMx(MXz|to zk&8fCWtD-A%aO9&MMat$6dM_oH&PN{3$_|z}OBQ!x)TyaL!FUzk-QLT0v8eXYxOuh+d0mQPEff#> zIzC2sW{Bz~QVOAONN^KrqH}k#hq{+N$N}nako~OnE5F0E#&ME|9LuS+#%L2I(>Pa7 z5s`Oh^!@ytxrCU6*-F-RtHjv$V6Dyw!( zKp*}(%9M&0?i-I7vi@)e?Y9gfQqj5u@yx9mclJiMU)pco0U7;0?6A?1qKH zP6U%2K5Ve+Yu86!Ewdu{_`wP_hkJ(lY!n(o`P+z#T_K(qM3r-wvTocAyU#r5)fhc{+|vUyegwY)2hzrq6~&(DKFk@*LL{aGg*E~RJ#u+QGZ1{xxvoNOBYb6I#G>f&&(-uj{8)de%q8uo7L6h$AI<60L zkmW0{034(>*e0_ntVk9lHr@`>tyL1{m|pU5lUq((c)sD@gqx; zFf49y1+o!e3?#`s#X5p$3JlW7$^ZnTeaUtsL>`}bkoq7Ju8_K7DN~WyCeDLtT9P{a zJaF=As*GH5PDOWjlIbkVP#a9)^0uHLwyCX_wsG_?k2X5eHk(U~G8pR7R%G-s1g}xn zhY&8YZwX>aPE{K#Ug`sqcEeB{eb8wcMcCY8on4cjVn_Lt$?!l=bQp7m?;hJREx1k? z3WY;9M%(mRWkEMPqPl3Ei1bEisOa#(PGtGI$mVZ_AnW;iur-k#4x}7*%ETtjUdrHOI$wx2RrfKg<#_7`*8?(yZMQx6x`nzHgtcZ3r7&OFJ#sX0ri8L1DlKIaa zgUg0aRGWQw5XYO)uQ1_PN5FFqyv4S5PI}Z^Vf+Kz)2+YENXJ#8Ks192R|4(E+OeHv ztW??y@v$SSH5%x11m(}m=XMboFFT;An&N}QIH>G*L^ZAH zpfXUum;FZz{*T!G)kP*(t*(Kr_H0Fp<+6tA4w)EhBQ_2w= z(7O%++XZf(rrDE8HDF;Y_s$(0mK$g3r#&z(7SIPXd^Lm#E{G@A)4h`R-p*a|&NyAI zVZ3WJ)3SEt%-$I8iLj?7hPg6?12!_&umT`Dr9*R3`f$`KJzzAtbT0!K5nBm{?MJTL z$O_TCdTYsMMWkN>lKG_F1d>R(INPQ{tH^YeH1)`6sxj^;u+pirkyalW;5Em&4bMQY z4o7iyNA95QELm5QL9M&U5Fj_yChbfN(H&)U0v9HiU0I|9?L;`wP$UT;=Sn$X^C^*S zNq;gJiO2x8)4C<6>=ydcoGKU}=7$6F&XVY$I|Q_`lBqMgL64KV=c6;UF6raY4tKEC z)hc|w%I%{%V7Dp*l4YeIr77f?A5mh$(Edh}a+O>d_1%q(hCru7eOxbzh080j?j=+@ z7ehJlPL^_@d2ymy;ykWS>JvbGYl7vxGp+=pESj3>*tln7zwVSo`9WL`!QdO9-vP6Nj+|&mOv+!&)tLJzTzn!p_9fq_&Q3B@wF4-rZY@ zJ=3YPM82#={Q@hNO@R9yP+aXWb%kybRhBj#xCTSF*|`+jr;HVEeQS{|F?vp4Kgf0s zLf_<-cOc{yaMjjPqBi1n1yCf^w{i520X~L8O#{(Y&}UQqj8V&(1EW=NqDR(J7T`i6 zOd^~DIK9nuW93}uadS~SzN^%Ez~sz%QIEDIyJ9uryAY*zS=00N+7~i!kBv4!Nhn{%JrJxe?PgOHFtYwVIW7W1OuW={TyM zZfsc3EDOO5Dw8-Spd%wER#lA#4Y!EMA&WPiC%~lYyfGpMm30KSN5uM6qB+vrOP3Nz zP0{DC5EIyHLG*GJXq8N=d+S`f3qfD^^0tb|VIssLY6XdXc0*ert*w=xU%&-8NEo&4 z(gi5F$3m8KLARvisH#p>4f)fUoP_9@zKnAzmmLbI^bW8nGLn2mw# zl2=9)3X+}9fK*7GHG5|xT>PawLKZG|=W;Pk% z>(>}g$njQ0JldXMYYKRxpVvjfAN4|Zr}}yR(&rl7F!pSu>+11c)JGhqZefpZ5(fq; z4Q4`QU}!+9=JW|K+|dd@D)U?4%8beNgoDYd1=ln?_gj!8V`h2NTrtZ zLg7>;)cm23x7-o3cBA3tRhVokBuvw+GE)ljqz2YgD@j({P$4so!N~|oq2XsjxuBuCh;mZqwV;1>1 zSQEZf>A@K|Y|6?*_swCvmJ(mBglxT4uXRzUk|~x`DKhIL^7e!k1;!A>O|#XcIQ z5?sn}q4(zK7=riiFc_rhy)cQDXSS9miD|!_xORCc8pQ$!K(*8Q4DI3dh{?|pd19cy zR7h^Tnd~GDt8{b|=PHpda_nS|((kwF`3|=i0iML+h3{8hI3?&qL&QwyrMD zqR`pZaaoYER5vqTohC0UtE}&<hm zE!iF$d%9@uXp}Y_mqEu}nx+7kYp>FhXwAY0%l(0vh-wdU9zL^)30mFRLl~a!93p9M zhbYccUMUqJh*$9WI+N2@hx%V;NlMk|5`g3xe}Ry&%5BBTC>~Uaufn2AH~eJ`luRlM zNQ+QjUeah9AND7SZuRhBe>f)O2LM{Ow#Q)4;4L`US$AhUKS=~THC?U2P8>&cn9Fz| zla?%r31(orQbD<_t0ZzcvDOJ<0NQB6ZlabLNk@wVYZTd&i4<3WdK9WHsk%|p-|^ff z7FsgbWx@8)HdOV$)C=Uq(4gbd~F0`gtg8|!w}<0!E*$uQlkrIP60!M zXvU|!F>ziTpc_1oQw4mwf)h~e$mlQ$7P~lNoa&QAQTA-qrg$uNiIf%U*7^h2o0bc3 zBUwV36zS4Xlohc%y>!x^AZg`J(q?^`!5@ra73Z8*S=W-~H(VM|*{Q39(Ec5#GAui? z$3TWylF^xh<^}{Mwl=cNki&0RTgK44IX#b@yq&jU_t_7$o(iVwn z(drDz&$swV;nSKmt^`V4e6SnaGyV#YdRtWitD1VV)%kv_=(I2K&`iy~PPnSzByl9B zt~ePwdQgi@jCkBuKfdC~Wqo{*btj(p4!r(K)4DP1h+{eD2s^Ft4m8G>)+DkC>*rW- zRm}3D*Fb?CEV>LGp)SbD%N)>Uu~SNmqN(ACp!VzMEG+H9LLf)W&)2k+T5cniW^N&n z0zHv%B#S{@TG48ymM<#WjLYxg=zg`>nI194u*tW?^ua$)vG~&=JckwO1y5^}i=7Hp z7{iXMHu0I?xl#AgVxrCvtvhgb#?bC?1dxE)g;jPtLhiP+MCf|Z2-@T*Xw-G;J=7L_ zC#zn9lwU3~6LrRMw!$YJNp659k$JgMs*$uh;FKwoGCcxcgF5MuT(wbZrVVi9ItURoMBI%@^3`ok!V{V0}F z`sTkqVZF7(xoV>s9kXIjA}8Fa18Hg4()2_ttV(q;C2gVy60uUrQ!yw43Eal&!&kR- zNQSFoY>$_ES7#h6>fo@FyXbB*SK&BC#wvDIL~!KXr=>s)@MqZUMSs)GXTQ4g#eSFU zV~jkYXYT-?)w36yCMff~g+a!&h^OeY@;J6M2=_sX=u>D|!C)l-5=Cauc8BFfM;k*j%MRg= zGL#F+_g0;iB(%cL`tWk?LfC!bLfeAeg|?3p(pxI1IWF2kwb$Z`M0nKc8A~}P#Ku}3 zW544vAgL-maQ5DqHk6FUdX}-{rc%jxuq%>;J?cH=6c#1^q8v(ayfu*Ea^$fN>l%1D z&=m~@I~*9?f+-;<2Jy~&&nz-GyLTguQMNsGV%q_849H;7B?eu8qr8H*qPB0KQ|zD(FQ7k3AY}* zQSxDbqD+3=a63fP!w$)bqd#`H@p2Mn!FQAVZ-z!M^F>9Mo`X@?J0jp0$Fi;8)Qf63TKO>>}*O3 zVOPQP&-Eu0=m6d(1E<*m*<)XIv7 z=S?ONVa+55gC_XhCJ|IF)}A=-+AyhqLl^#t>A?C zu#|}u`xNSfIF%ok&>oB~;yWUfV?}o3*aP45Wl6^GRjRMMllGUINx^m|GJc?LL9(B~ zqo42NtF`)QGl|cdamh9m<|{~C=O*`eB1vK0_fHCWZiKTETw_Yo<{oX-x6ITZ5#pPK z+*-M(3DJ5jkrE-V5J`;gQk-7dWZl@(B?24e7LHDctm_|INMJK3(<@y)5tc!{DV8BW zzHy?|sH61A(|$VWlHneXrh#Gg4Gjtp3@SkZ{Z%3Dfg_`k!;}%^KwrV|_n!u=jocs?bfu=fkMuI!6 ziI24zT!t){(=I+KXxGSx`P`X9F2B7=6GQl`MEY;wfi-YkEc4dqjl|)6{FkI1742O| zD{*;?eiIy|ZjN%qplcu;=+6w`xWR#!d!?iUBd=yS5NZ|C-x4ifZ+%Q;Rmri6lk`hJ zZc(!EJ*c29Wg(;vS8rdipw@oA&te_uXe@ObOW%ShUssMbu882dBlb6)7`X8BfFb%PYI$DhWD(N>FlKAtAZ>izeJs zRv2O=BE{Yc)grSuxKMGrY?OO0Hpjz`zpIf!sAuCSWavdDm-P8oQmn`4GV;&h(CZiU z1g`wE4CsvjCRZvQ#}iydST~wf7=4THvFu9_bcMqejyWT{$RY;g9$!|6f}K>?@%$-T zC~$=m0vNX*_!2G(;LWGp#3Q0VygLo26*EQB5sXMnY7nQld_6!#sB0Q3gt1dTsyr?= z(cNsA1l6}*^hFTsY3iKI3c3#46^Zlk++MERM|}oRC6kxiRDfzB4Fw88T7wIrcO~jO zG+D7MHBc!0btY%l{C6CA3|WmJW2HsltiQd&snm*7)zTsR1pLIg_>+nVdY>LN*(Nh&Q+$UF<}}CH_5*OYN0P>w2WQfQ5STQFn@0f|DRYO?g!&S59b^Qlil^ zTwrDKLC+h>*O_+!i8;XUGm}4yVL@*^u|-@CUI$Sh22|?AsvLEvU5g((j>SzTTJ~fH zK4RTPS2?&wERCEhA^AQnLN+}OiCr3Lzbaqn)p3P#PI85c^WREik*35R)HR&k@zsY| zihSr(z8pq=?i(vagU5f0nN95i_eEl47b;peq-Tm>&v@At$B-(+7R=fG-dhz-p2z_4)kGz zt#{dH7uxttXN8(hjhV2q-j z%GDTTV>JKNyPH_&)XF@`E~24m#F<_H9=SNX-$}aSoXT$fwOlrKglGuLZ|MZx zu2~(y9OCr!r<7=`ukE^QtJbzyD*$5wX`?bs=}2k8u2mv}oC%?MLR)rV8OnSp!}SN4 zB$3|YCQ=z+R5%FariHGR;?W$5r&l152zNrzMA|8Fv&g1yy`~{jt`OBz3pWUJK^Nqq zyW-BgJ}83bO`?>Kks!rr!`4RUq%iPS;iWU)JabrX3s?)F==4nF*E-0-qL2wxO~VP! zgzCd~Fb;9k*oSLm$dh7OeV{Q>)y}ezG-*4Gr0u0wdvM+{l){(HVl6(nqvc662F(WT zSJt-WjN^+^#0eZ4(jHc6`Oa2|BTy3}qE^|-bPT@B)?Td`Y7_)0zL4T|0k(G3Aqe9% zxy?QJeuIv`gFDE>%mC%P16Fw%;IZZ)_Y^*|N}|DtrPnhA{z4f3L?G)UWY!Y6V1_@G z3>PfVZUh0&6dM$r#eo9H^!i-yx^3P_=INdI77NEf~7cUJW zDmDETx486U0@FT@I)z&VOOfT*AM4}u8#Y*|6nxSp{SI4)MA#xmhUMKZ*(?|@_~}Ym zF~FYk&(m>C214yvU3hAxZj38}#ye{S-{Z+16LVIfJEUF|9)?1qszs&QrY;*#g=NFL z>3N@}OIA5rr6kk^DRm3RQK0>~sX|g|8OTo5hKGt=?8UX2k#V|E^bmb*&X%8a9M{zr z#Ma|~M8AqG=kl+eQ8482D?=CEaM2`mvd;%!Dk(WT@S_skw{#$tVDao57Wnf@WJjgH ztxdOgEIcJ4p+PS|Dn=yzmd=K?bfRMxX;b3<%^sy2%dzM`9d3>!aI%KXc(S+m;(ZCx zi2J8I==OicqLQ&P*<+ser+t($!Ew8S`_Ou$8eJkc?A> zasaIBPL7z2FQFW9kPMl3%#_G-kWv3z3uiEaj}aV^#D}9ssy9U)6=btbD!eXEAMMj)AnU@!J%PlqUSQ>kDDw?TASg`=<4-CNFWIz!^B1WK zNz52WF0M_1I_bgk$0xBUr3ELmk}2t?1B`VtK+hmp2>uofe|%LF(77B_>W|8KEu^Gm z=%Z`E%HI|X>ktWX{;14qmp;+umhnXfuqvIYtIucDOp!62n%C`X8ZFLK4=WmzoDZEK zWrorI!Tw0lila$q1z;bw{GI7)H128JvDt@w^dkZ*TeR8kXnWe>%7I1FsqVm72wr65 zS*(-??ik1vOH#OFlpQKtB5AV879+Ehr=r>8pG=HoBl})w? z7s8>DfNj|LFj~CEyNRruN8k~8Rs%D?CRGOxR*3InU*Jm)5fH8^S?g22f5E zxDgeq4(iQL>JBbF0oX2j#Kp)r2*2Gnzv$)C@c9SY6hRFl z2uDzV{FzT+nvg%$9Bn=S{p7ou^XW(0A>>DS$I&*t`G?T35H-%cI)SA=!7T+)g+N99 z;cQz9wX9F;I~tYj^o_`kYFsO-g{XV~C2^ng$m(%wQR9=XZq_KB=`88JQlK?wJLxy0 z52)wyeq>r->7I&clet(F1L8-P|FTQeTI_t-at@nnMGqdklTK4xtq05b+>Uh$S{9%?s*r zd>5NZSJNVPGq=)Q2_vOUXZJ^kN=b87*G!C(it5!2`aT}tj5^IuFRPXNpJyD}@2-a~ zi{#J_ZY3m2MLJbGS`}7(VapRcjW{B6;er;y0NG40En3nx9QCAml%1m)^X zEBTK!7;*Yq#3xZtn!!Qz2yvBDhC5az*J^98De3Yvea4C<&iw4w5bwJ5t)=NHwamz% zoK1Y4P_?EUgJ=b{0a9wFJC69jhx=Phcg7G$q(qgd1m|bsS-WuM6ISJNs1fpqlrgwc>rGw&#}CamBeLRb)?7Kd(be z2GFyl_1W?)`%IwLirF?*#(2)Tkn@QR+mlsBvQL`9Z5%lKEtDiT?QS%OiG^|%qdnb#YJnbOi>5uhrmR~Y##pATm67ycnm-}@ zC*?ty`%3Q8s7@k-9|=2}l%!H(=tJsnTGd6?c8->s<}+(~XJ(%*&4?#`lk%on5fD^n9eub+6bo z3e=0#4{|RpYpY8bt6uLXKjC+`H&YX#wh+IOgrMDh`tC=pCFw_6jFidFos8U*&?p4J zYyIePY7MO%WQ}moMahw3s*`U!u=|K0Uol&@iDnJ0qJ79qkEm!EyZkj=4*ql}N_FoL zM4Q%v(#M8)`+ezCUD-KRYBa=Yr1z}nK9qY8>ZJtt23c$5d?9^`^mLjrBz;C(ZAjmW zg5L+2YLNRis8)W;wHM`(bQc$;x67UnvP8W?QL1*-F_Uj)zY{gtjAVMH!)*B1b9eJz zrj!_~zM6~1nhBY$9HTvT@25Rl-lCT?(n;=-l26WBnmfZvN?FnkS`1OzdW7BDObM4c zGMT-VsfVPOfZDp&-A2@kI5C^v$<`^CKH33oU(sjPEjh)RnPrl7Zx|d&bD!o3m8dNq zVjj&6xpyFaie^9Y8EMgEj}ha7;61XdU==B*nMC@{YPgIUw-dBv5v7*tneNmF#Ufp2 z=PpHSQ96alr@2X%S25eqbsOS**CJnT>@)-7JjE|v?T1OQVdJs!ODQ2HP>b!|n%G>59W}*~#lp_zELe{( z6XoI~aQEPMGVPRUDv)M5db1q0ryR}_7hv!45g`nbyBsly%cuPp>x2_z8OuRQ>BNLm zmSfaL%1wAcJ$v*T3Ln)@#NDZ!^&Y)#RNnh-8?^&98o!HY7L63-=uAC6>3e2TOnMdB zd^Ls0zZfITn(lbg|7e|(c?|NH(i$gi%X&vBCN#Q7^GsXcKcB}fgjSr5pKdkv+XB^} z3($l3O<%!#2r8>rjde(zBg6phCZq*Uul(-3PGh@^q_9`%HgF5&wc9G0`f@2kQX(dq zk4VSRx$*cH3z{k5ldX z+gi7nZev}gjwigftcrZn%2^6vRdUWzYEilll>~>7rHblFIRp`I;~k!~rjQL$&fD$a zdC_vJITB|lQA^I{luE3CGiWJ+n*>jy7t&K4g&xnAkO z{2_Tqvcf8LGTDx3?hM-&!r5{~Cal&!wZsxlCs$VboYdtpx1VAjZLIgJIe3aQ*&bW2 z$tmVyk2mMic4~d1N0PKG)hg^PPlms<^=^#U7JFp5W@}F^KPRU+YIoAJk8F^n6*@I$ z+BKg_+p^`go$RZpEQLqS@dJ~Wqn5Ds)cU|V9;4XA%rTJHZ+ zucX&JO#*(vHBZaE`(Npo^qM>8l9X*C`2TPI%oVIQrqZr81^p}m?cUPB^2wIMC%Ln=FY}yAOm9Le z+VhgWw-GK`EwPvLl;O7(zl(5dZL3%!4BrxQkua9%-Lvy7N9v01Js(-Y^%<3IIm6C; zP8Z5@?!R5JL)xYxEu_?wWEGMn=$)&yfY_AlQDfS*N^6RylD32V*zP8L3ALvTs zmUZGJb+nV~;cRnO41AEh;aqL9mgYH2h+K8%HO|(;gt+#}#;%(m-roF~v-kY={=d#T zPk2g&;Vm_cJRd;uRPq-2N=>7vh`c6a{W()7MU2TJcj}~(tBvCF9K=i-d4`?6<6*y> zw09}u_MTxBUyxra;Hv;NaxNik1+Xf1n+k8Eq{Vw{xFAzTasu{KVsELKEb@>#Y!*!x z<2jqD#d{+=)Z&p_3}EpeWnY1Y zyh)xj$m64S`Y8B_#@|C8S=~P&C-lU~3B#0*52YbA$0vgxBt)=yj0W8TCUUFoxs3;fMN#UZBJfO)f$rnE90g9vMz=N)NrufS7ITH;r zXRh!TVBAo02@PM)oXNt>$ulR5qKSrQYVoi!muT|PMEHRf7{CE|RFH{=97IE!=n^KP zU|ufLkjE>)uj3~grk$@0=?uKNW?mlnFAr_Z%gf6LsWFj?&&l;7oQM7}eYqa#%kvZ% zgvs|!ExyF?<$(Do7bsdf|iosQ^XV=(EG;c`ts)Zip%q;Ml}9c&NqDdIAS0V zx}nsdbf8BpXGQe}Di^s^*I?4XnUkA82kb^f$W6Ko85ESFf!y#sZ!V^tnNvi`izbcS zln-~($Zf?VpGJRzp$iaEf{17GNJdi%f9$;nd{jmE zH-2Y(N!uhqganpmLQ6J<5HR%6JA^6-DH{?=fn);&L3Se`s3<7CXiyQcAWEI&-?!e?%lal&YU@O=A1KUX6_Zl0b(kn5jT?x z6`Dw75Gu@MDQ-rfoGWyI?_8ncBgnbJsMi_8Kz5S>eW)^stj;%$5}M<>ZYge#LV?cp z=o>$ii8H7ldPZ%~gF7t~Ee?=A6c2&U4-5wM6!Lzc7C(Nd2n0Y;MD7p|J4iG+cLTZ# zKkm@JK<7RXG%(JHA~N}i{qZNV9t?CI6F9TB6o77_;S;8%ejdX6 z;8h@CalHy!5d{$dQ2xxjfkuwO5Uke&HP@?_M9#VVW>D)ONpMBft)V>39i?^Q6JRIZbdN=e+vU0X@I&MRG4NxI%EU0+GM!7JTRNxIQ1-B?Mw$t&Gd zNxIo9-Hh}=y{=6A)xKUCd@IY~35YiY0as|)>fm|T~?ysD`No@eZBBu4%LswC4G8BOpDK8l< z9~zABLnUijU|)=H{!4P7LXfI9#u$dP)&w#7KDULO*AWjsAZ$qt7-Z0>Fb5Gr4??x* zA*A}Y1IUS%$-HG8J-1$v$GFOpXfnwu?jL9^IZkUPoq=WrNhXuOUL!~}+2VS`;wrsQ zZ{T7G*$pO=N7PVGEJ#|D34)vBXYi5GIM;OpT^Q16@J8M|QNZjK=FQw#M^8cseM8+2 z(#v;6p{XD<4TdIqh+3*yVN~Rnb9faJVn`M~)Gbs7vJqm@LAONQ!pNM_;G$n0EDW zo$iqQAqKSst4HKR5Y%I^C5Rs+RY-_|q&*(+KLjeopM~g=j%RcSc$0vKAO{Z-4v297 z2o`Hk{R;KX(-0(XMJ}^h9zPV8%Ly#Z&`KCyU_ZH2AQ?o+I|^nh^;;0siRcTG3?fur zuXp#OS3h}0qg&m5-bn8oru8TniWfa9pn2sqLx4c<@E9KnCc;S`3^3FtlZc18Uh*o! zgTa!P=S5%21p*8zGt2{jZKnWjpmP%jys%eb$05>yG=smoQ-C_qxeZYWgQayMN-nbv zW&#Wxqm^VF<|r#7D1Fi8>4>N*C=%x+Ovc^(w6; z2?-*TpDbd?(gj{9Z8E7y01%R}dPH;(1dkt~bi9Q78wzkSv!*5L5u+0-#_b@Pz;F2J%`BhA6#-_n3hSBGKKSqOpj>pD4-` ziE%;={%%<^3CN;VpeW4U8hW#wtWX${$QjDxD-c+~glVodfR9a_*oXtY z(My6*6zPX9qcpij3~UOk1Pa7_yzTD3kQstl*g(939|6lx?gE)($y9`*1&sltw&W{w zl1Nn)6ZI@rp*&OndOwrU@_we?_I@^%d#2&)olb(=`xz7BGS5Eco_*zKi=sGTYKao} z)35@AL45KK1c#!JMH;g3Fp@plR^BOFxL$BL#O$5288H8MjZkst1fQy5zT^6irZJey z&BPooi1}mY>7B&~gPVLAusB=;A+O-(kdWK;InS-pAvV}k0s?|NRDu{me2V9(<^|D{ z9w@_AVgg-53G7}s*rBAD)zI{6KC?qe3R8nXg-lHoBP2oAsGuX&u!*TjE=&%$D!*`4 zhzJNLr2!z4#pw*gRE*DDF}Ewh16>CVxDe$3cS9UgoTYe*4s`|=yJ*tq>Zdc&bg+aP zww#B|kePw5=^SIieL9b&8E6s5Z1A)qGBBFVvo=g=UU zg_eLGvp5{e+>ffD2&~&f05b&;&Fn&CqQjM z%0(EPB1;XuUbGI8N&w{CT@9L#=b#7iA7F?gE{#Rfl3xLI4lG_A78+Q*JOr6thd_@a zNCixE-H<{Mw}Seyd;*tyA^tFOxD~{+!Nh^}Q!y_L88^%zq+=j>B2X2@m4^?BN*vE~ zQzz6XQuAH~%TR-eFcegN=@CRJUX1{V>j#&Kitgk@AkGSO9j2_@E#NwgCmJ17m>*_k zh^8d@hk&AW2DxmBf_*9Ci3eZRz_}JGLK^&$6T{_WMs^~u55`Cs6dqbQmmEE{C9|Yf z_(cT=K%i?Jyt44-Y~rXCZ$ik2IvgD}4^twO4)zrPpA9$)P6NS&&znl2hvX-!m@L7$ z$YG@UhY0cMHpNkHFozu9RIe4TGTvDVMslL4Uw)v@;O!|B>s#ij8kqyUJ~<~3`*=T~ zdZK}xt!^1YC}nxGTfr{y1-OPP zLB5JWsg!Fqer3ktt}ZdwFx==r)F0||Edm2B!c>OGk|@CJGZeyASV<@W9tGXbCyoR{ zObIq|CBZC{{q?#~W#UF21(nWZ(d#V}VQ~kJg@Y8H(!e+?JT*!tZr*TfM6qXJ)R4~+ zg+sgPYuwo_;qgkyE#~0lIR(rBn9qS@Ee^|M2rW$ZoEUhhABI0s)zuLCG#ai<5P}8* z+6J?PQ$_rGBEgQ72C|Ry^Bx4$RdOkXi+DaF9py)dVknST3BA@ZG}IS;6sjV(FbPn2 zv*0&!!pi|X(VZ|HM40P=6THjzVvJi{KUrM6p_b`R9-g1Ll-Xeh+C?Nw0Lv>3CE$*~ z$U)76h9?EZHN3@nlVAKW>P)`uSL)^mf2M0F&nyI03egoBf0V zxQkX_4B%@TQy(DPE`;Dp--U4u*-LRyl?IrWdKDBV?-?go#@u3oa*@a9K+=0I7Rqz% zBKcelL=FcL28U%E26%>9iuVCmpoj;gpeF!7G%VE0BcTQ)zGebom*qgQ4-cqnGc(yO zat0oj^PpGd*dT5;a}~=W2*WT?1|iB^_Bo_vij0aZ~$i{c(}+i2mFzMDA4v5!G-@U{MtQ5OM%<=Q0dn z1alyeXoAe$-Q)aS<_znECTuSOazw(_c+ba&7P-hQP6>_Dbd8h$$(- zJEL5WD51auGYL>i3Fs#`1a}ES2lEWjn4?2pbEJ{KT-@C*UOp!HI3O3VDDR2G)By{E zDjE&N%gJksg??I2C;tsWuPxPgdnq{(UM0UNpnwA0-F$VLR&yZ1Aj3&JKtYj_4dGl8 zqUUok*L7M}fYr|}v+JxHrVY) zCLTRgG^qeTuVNR;j2n)DL968!mo3n_4EB`EM$yo^el#QE0W!6gh3GAC8bU(D!)rDf zj0U5nm}#^+JzAp*oB~%qW`=OxV>5wTc_h^ShScHJGrX6xzyr>@3X=`(odX z9^heIfKX_agG*sQ8&gBXc+Wk!Um{DE(GbtFU8GEfxRIpRS!^h(K^-Sx`hsqyWH+Ib zP`<8Sj2#Uifu;C-0QQ!kZ;Z4?Oc_9dzJYQs%C;QD9+OLldi4;_j-3GIG%34gwGCl_1OMx*W%y z-!2Pyf<_JkqLeU%s*wyutOCnqQ&Hbyy@myt$W&Jnu(Zb~g3j5IdhRnk4>8OK6nP|( zjqVnhDHJOn1uFhl4M&Dj$OZxf0yS>UBRd)OC~KDMg2>y*Tf7yvmt{B)Zs&^!pATk-+--CWMVc8A_nyA)6rs!0(?n(K@90t`Wjg#|}K!PC*toK=5 zdvFIV&=z6ZB7=ud(=5e&ThVCP;3oJ9Tz4T;S z(NYicgt*HIiv+eUCBc6HMFGyITAjCm2r!b7C=R71RHVszoFgV9tz@yn2!WA{qK5Y- z4Igx0+=*F+&mRf8y{FlC{S0f{j+|;aXlmswks3&n#wkhjBuUb#aKm%|0qvu)fdq$a znbc#(_Rl6JFOA#qZp{Zmq*D+4xqjWbmXbqLEq>MM&kj!=srk}>`nZ9wKKt}*jsA1X z^5utbKCsH~&sCdVs+axn>=ve;`_)&2yN=1-Sa0a`R}#9^&b>13^Jia9NtE9I!~S*X z7biYDb1BWXyQEJ0#|FMo>q3Li8`ao(IOz1s_OY$Pw1+o;)g<9FXni0Eyd(_*P&9Od zjF&X+a077O`i*9x4=0`U@-KH*BBxwRD z)R=B2y4}Q0WtUXaA=T|~Rnk$_?cgb zpTVTF35oXxuyO#ldo8S-qDi{90u|9$01(O@{vHr-5PzGDl@a_ek+CuW$$zgw-P|u= zsq6sosDBG+Wf)VF?~#X_XtF7)0GwYYs>izcs5f4;$&h?%pSY=!A|0XV#ff|K# zsefCpR0Z%~8^u*sFzoMjhBu2;1-k#=1AV76srM*zJcn`=!J(1bK?_fXDjsxiSXETL zm7UV@RCJGY{HtI|5Zt4BxHr%WL5BRBWKe(-w*QC_72Dtq`d{rjkBI+A7*{+MNQ#c$ zA3?+z{!ge}kr*DF3HZNC4v+5nSIOZ4`(GeOS>O--6Ixg7M$hXqgyu^9?}GowL#KQT z%Ie*Jl{jTV6XyR&npDQ;$^qni)PEI0R3@z}Q&j2yX17*W0ht9E|D=+NZL6x9?0-^C zdH%VZh9CPsSs4*gCkz9V=bR)tDsDTUk7Uki@>k21Z|FqgQ`G$XDfsGOq!Q_gYwy5k zV^Rwp_NLaHg0#H+?5xzL)9{h< zf7luU2d)NG3R}&nR5uP88yd*V=k(RpaTUUWDYn-I3uiiqDqQin8z>9bgXI8rxe@3C zxWT87+dKf|`>7}z&Ux&n;E2&CC`vy_#~a;C>)sC~d@WI|om0;D={Ad>hEx{M`PL`C zNbX(mB9G?BJ3%-#wPcr^6Csr@)cwG5?ME37xZ{Aj#rYF%u9I|T6Ng3V2a9_|C7d6j zw+0s&qQ;_1H5Lu5B0QCh`z*%1}!#X+r16TCbMY&y^RvE z=I(ib>wK24goP(w1YXZsv=D-R!95h~qc}|}*i78vCAC;J+yS<81-5;^j4~^+mQ7p0d6;s^K{S_w7U!D;7!FHb6J_MJVJAeOb2ZM! zVnu7UACA%D@ohgK%S3oRj&9Kk1`y-7GEZvdN$gZF^Q6Y=mna8X0O)!;hsYyv@{vba z65(V-0{V=SEs3;V=3Gz2!YUxc5|1TGREncvfpK2XKo5Hi;XV~{fUIHIz^}z_K_JfY zL;$ep>;!KS4oV2<;Ema4fI~gJ0E+sF5JzSQM{S3ttNhy&gaM%4p&)jk6K->{c()Ht zqG*#uo8D-hZZ>5ELzRk@i_}<=+Z{USBXaYNzO?-k8L;uH#GQeM&`a9`$D-Fj0OxkT z&NZ6~Do=6fTYA`wI;kWN#<@WQzk~3u;+!=Ymy1RSMq0H1vtm?ftvGLF(BWLi5bQ3% z-cExG3yC}*_5#rQID{#s`{7WU$%>^Hq9#~b32IfetH%(4^WpqgBYxy3op{oVAA*Cd zM)6}3KW6dcD}HmXIF8*HCGlB9QRqx&>5Lyl3QE0tOtVOV7ZQiLhsVZn|AcSq0; zB8AZE0Lu{f1BAj5Un^}Vk()k*`ZxlFVU`FAIzUd;jHA2~L=A4EIMMu!L^|Gu?vR!` z5F=*@Heqv0QcX&jDgvvh(7%9!{e2YHsI6EKppX_J5vM~)$K&(}@%7{YS|e8l81Zc6 zArrrw@k~dyQ~|yS;mryN`5@$@rx1Ex3v``l150C`b@2zmj!@ zin(|%#U5*+$Z4~N#VR(2?B=SSV*GfFXe-L`9oe#VX|P}k62P|dRC54w14AsErGXE$sUl;KeaMM6!l5#TZk(t!Xi>GEZqSp3x@fWxCW6bJ;1>{z!4Mi+%W9C5l*W4~i452#$=Q=DXgPR* zt5*Umc;z4s0ZSq^f)oPOF&$>$K}CU|@Ri7ZC?(y2Y|!jPObWtoWSl-KGi^Vi4I3hZ z$c{HSfR{Z{B@~2}gepAXAf;$utB45VFC%en;tjuoIOv*SEZSNSgqW!?0 zXQd5VVxJdSvJ@5c0 zfWgM?Eimf|%2y2y#g0$DJ4h6z9t1{$p?MxqnMUYdY^DR@OOQ=2Owu?MV`Uzq$XG=s z^YBPHU=;Ap#h?j)X$hk6eh3slA!8z*Hp)*Hpn<&=pfyJsJrIZy$s?2;&Raxj+SczZ z#cm{i&VoPi(Kbu48)h;{7yK@d!}mFV1I67)!yFD`n4?HN4e<&iK;EQ{E}VvSeGo&L zXJY>W=4pJQDNe!g$t4#Z5DzqDl;J~gXEWY69X0bk#Fk7BcBwKB`bD((tc7d`EhibfDyGp zXfg-Qpa>0M?7~Jz@1iIKvFne)L~@coA+d`F5W^t`BNJGXAlpT9AXJtmu71I^(Mv`M zzhY;#9Ldo_q}anO>X;YmsrCSDJJLSj5p<0TTgvH)HmRLZK@!WT!wzAzTbTI>MFzVZ zc!@-s534cz3^1ByGXleAmJ+5pu-hEwHUuI9Xk#BrV}uDCgU1nLi{}7?QbcSQE>lEA zVaNdt6%o%+$PzXTa~*2{rdm{?!S+f|CA8-l0|a|U{nh+e>rbzD0OjCzpu+>4{^*>e zf~&8f<3u7+n@mq;u~8-t5;lu$+VCFckz^8zfIC&Kq{4V2q6^1>7M6zq!(mY|VaF-) zVp0oc6ySI+gYqbhI`9>N!^E05f@^LkOjv;OioxDqpVdA}UbT;>n2#Ibvt9_Fl@WHw0pYV=2%q&v_^iRJm(Z;OeVPP_ z&T@xn=1W}!Z;jmBFq?s*`&mu%Qe=PuiD;ael_9u8WcJD|fJ5a<&*41+ycoSW4&^L1 zFMKdC1x!B=x8cZ~7q@XH<=lpYh;oGBuioG%F3(VvdG}xS!QDQ3qWxl|!^q$p#^#;AT{ap~m@Lg)U~mB};mx_&Gzv z*4GTBioT~wT8Dg?$TFPsB>N1ztx+RH4VjftU>9k?!2fy?m5S}2 zB8hTbNKXaOIDVeG$(I?XvMI&$=_Xt2`@;>f9-EQFvboeM9+pvbPXV7Ht_qm=F&_ScbS0 zWI|YmASKuee#FjQ+LY?f5Gb1MP7shiCZ3E5>>;XA<1Q!1V-`g5KIP+aPMYG$OIQX& zvRDzXFCUM&6U7_L#~VewxqLiq2R@rB_VhW5QwL%TIntm3jj$wW7JxG_;99t$;GF<7 z(~KDoHuMPX7)KJVUWk!{9pN;SU90R>ws2R^aQ7oZ8iv=HVC8}r@5YCLvMrjdo5g{y z<)KK!fx^WBG=fUxX<7-WP>qk7@@LG^L&!`oSXdqk(}&I*FGf=cfQW=Z;+u>S16zgX zrA)jY$_#I#$Sh(>M(~o0(X~k61`*$fj3U0U#kirwt8r%#JC+Hi$iRCeG_Y#tbgfI0$ipfL#lzn)TI%OFn0Gw{`-2+2 zQPM#ZP?H-hg1l))ilwv6YMyHrzYAdRi)`HHHlcm;n>=|FVbvlh8AuW6+KUEM6G{jV z#|>{!A}WZD@$`&6%Mxwkm9W5o4bI7`>VxxB#`ez3?KCmXK9*M8k~8!3CKOOU70*|V zNdfZmV6uIpBeHuzUM@a$#H4DGy*nj$&QHm)Psqz3)4rgVIE-5AD@+G zPf5+TYm)N|?IN~szCFX9-z_&aZ=xJq6L5NErRC=pH+KS_#ZQshUg zt(B%mTH9x5Tl2F3fWj)Iuv7Z=&WW{Zr$|L8bdynquM866qdBrPsF zKCWdnWH$QKzJ>OB(EjJ^tV_r^9 zUhb&4^7tm%)3Q_Y?dk5kWf6}-XSHBbOr`L_gjp%sS(EJfO%jQyZhA(?jlu_wS}}Y( zt}?v5%MH%Ya+K>unS6?aroBR5GM6cE*fhuuujNwWLh!K z?dj?EbPPO4p&L&OlgIp2Zv2j!bIf zE)vP>tO6FH<4N*{k}{bi6Zq!N4~Tk|IL0>5T~TZu26m8V#kMsn#&x<#KShKMmuVF4WSpmR9wwt@-%Tpm(YjhkbatVEBh2U$5C%bH~w5foJD!w$GotWrHeX+tsy4c9m|Kz31xn zCVN9VW$xR%{+a!bCP|j|M7<@V}DsPZTiK$n6Z~yKXB|) z?-$4Y-s3^(mc6OJ>g6w6>LZr#wEWrmbnuOr*VHIEdb`F4rnVvHerO+ZJ8)Oc8gK5j z=Hn{GwLdDS?v|Km>ptUSsy{97aQ$7chBi=j4{dnp{lbP%%79%$4_|ZNc^6X{Rtmz-qrH5qOEZx8?JWY*?~Ym8wlzZ&!B z%AGj}ADWu?_44R~X1g;Ap6`F5Fc5t;35S&eag1n<1_BMotRk@Up*Hr6G(s1~!|6B- zr?Z~J38v;cE>@*eIN`Jk=a_u(oQmreI+}&QdN}^H2QWqh)~kSV0(lZq?oXtDjbBT3 zNun1ceuDB3!G~HGa8q$8stf8$K)FshDs>R}%)sv#fVT|cvw)M1<5KT|*%zVQK9qj} zINd~DIf(lO;rDUv$5o6AK0PTM^#!5KcEDeSdOiWXY~ZpJxT;a+H>52D{FaD&6ZIFO z?p45H7x1o&=RJTu64w)mO92k;313`~;JOVMvvJh|+%(kJoJ>Z*X$~45!!;BOIm>W0 zK;Gw3*FNBqhBh2W++@I9PHje!YAE|S(vG4Iyd6|p51bfi^d4Xw0qp8H3D&@~3EcA` z3i>EV9zL{|f)8= z7<9(Q&v+>dg(AJ{x?7BMdEq%ev)3Kf}($iNjvw)!Z(k*>=xesDG0$n1# zU1|(2>i$+x9}hThOuRptIuL>l9qZi_v?H6y zm1K%XKia({@p8^~E!tJM!>x47W^nEDhyWHi6*8rJANW3cFN}gMFK|+wWn~&yFs(g(HP_SnC8a-bT4uJLq zMam+iRO1%w7Q{Ca`{37P=r2fPD0p$PRhT7K9;%JZ1Kp7R(KzR_@vsW2z z9wk;01gR+xXM03dS@uhWVbil>qwgJXc}%ARV8WdNdax>Acs~kP=v3tk(SKBist1;* zh2_;mRsGTm23=#~-Yjl>q;n&S&c-^t47q%10A~Q0NXQ=S{lPTl(`9>+5bB*E%riUS zkxsBnQLrc@?v#N>T?QA!Q0B;7vutJ>-2{n@!k3U7QZ|`HhxqLEX(X0Gu?vz&6SRV@ zUERABNhk+58*(a7ip2>G?8m9B6q$~-V3d~uH~_k*2q2+JkW>akZxQrG`NV--SPE1c z!qP5NQb{CaCRde6=6CMW#w;2*w11F3n7^=HO6$JdihLb7dxa}B=s(zRKC22 z*E*pPsYnvR-ul~HZodqW?d}fJ0Z#KCcV!1E-diLk+zm)o7^I_cz4C>H*-eC@ubq=_ z!_KGjb$B$9BFAaW=5m2m*5Emh!fndd(G^6Q2#H&sd{v=26tl1-rJf|zlLq!xj8A$d zQ$@&(0Z18(f8x|$SyB~9TLCCi0n~|)ZUqckP6g=NM@&T9vin86{M| zM})P++f@?(4j2+7qtV_Ke+__#hZO=@@M@RN_l^BVgfGFWTq2rM&9&zKIIr{z?VP)VmYj zhZFx-3VP;E6HpYd2&k%2O5c#}Kop@Vujr2Q>{*spuK{eEJAo}flc`AjM0j=Xzz!8B zL(1n_D}tH;PHrFN+w3Px6pCQnKcL<1pCLV`M8naNB=kqWFvjj8N7teBqC z$7_iS5qMWqC1~bDoYG`XkcXyeKcIS`S-zjt0@7nK3=cYlQ@cu zhl*2MF+(K@n*ueS3H*t96!}!PH6%qG(qaHixHCX{>jYIu99nj|_bCe3^iaRNN({k^ z(L#rz6xkCVHA{j)v}O=8umQ=Lc56<`#H^gc9IPkiW@L@VLF065I(9H*(n8}Swkg)k zlmct2-JWZ;V`qaM%axJVjw!jcMv0~IbZaj5GFZD0=+hfZm-#70k*uSfnvy;~1xuRN zu_*-(tYF%$_S|%WNx{^@46JxIwNA*)O3UOmq*x2EzAV=n$)+smTYX&XE0?$-?26hBku`uk&${o!ir-`LUYk?!hVUM%|3Np~5Dm5jw$bltRM`nrx zb&eMct-NViOU=o0&}u6xAO!OY9b*d}k*t&4m~?wuUb>8sgIdgiU{#jrfR$S$rdvU% z@mMBLw{}P=u*b)7WU0nT)?Ef8a$-qW>%P8dv1Xh3*Tc?@*UWQAd{&RR?xu~=zHE_ z6EgF%iPws<^T3oTV6`-~53NeED$Dp{c@xA3ZxCZn;JlGl&^aqNCA&j*UfLKdI@Ezp zHr6~Wucu&ROmcn^9i)$B&nP%?ZsaurO1^^_HU(?)sSn%J98r7(SW_~HUx}e}M*}BL z1Kx!M7K~Mp1x^y>>=UyJIP0cmV@CpphZh_SGntn;39Jq*`4WOM8>Grax)VZFp}>hc z5LE*!WkuPVi!A|nsiT!#2VOgni}w=%?Q)zevj+wZF;9YMEAdVwyK`ButTaqy))U|& zS+_E6OQEd}wAV%q1X*Z6TsczEm%J}z(W2x_w`XTzJk#EYCY)SEHwE>KJX)0}t}agu z_F%bsdDoR8nANK^hCXp%nRM)@^6qd{E03B;X1^nF>LBd&056FSqn;CO%gD-y02L#N z#=>3tY-(lI2=@D*Va!ogBj9PIV0125{yJNBg;cllO&@|Ux?;FzQ-|8IZOfWd2y#J5 z6p&=dgW%wUjfA>qPYtIB=oup9U&hvkwp)=?ye zkfI?XV9jI~rc(x4Y83FUm!(7`YuRZcfRjm3R=6~U@#5f0gsdNQNg7!qa-Q@QM@l41 zC|^{_wRa?D0r%hw_*Z{-F7hE-&qj9!Wr10)q<(Ni`B4D1$`Z7VCwB~La< z)0Awlg2b)XTD(!Kxp)GphO`IIiXg$!I47U z3UkUM`^aL1C0d!zMvqm7ebp@w?-WksJDl)tQ(4h_X?Sj7b~efv-KE`b8_Uy_f~p9> zEmK&i*>*CVNqliCG$lUehFViEf<&?wZq${|R#>K-Vsf)fiZ#3yaBl4`=*1`=qo%AJ z@!Em;zfznC%}0Mzw{;|sx=7a3jaXHcdzHTH*lTzfv^W<3pu@>LMC)VRNOLAF z#2cLMirOe*lJIUF_}qu2lRZBiovKJfbk}&Y4AC19*D%=SSrVxp2%G|;i6Ck63P)#> za-xBil?!W?v<(DVBpV?c#WXfKr}5S*;+f0~FCB=fQ%;JbDG?XINkc$+q~;aoVw#0C z!lN*^AZv6k#2ZbVB3W~4z+K@c!Rk)NRz(7W3L@D9f2mlXj11D;O5rvY3)_X|@5sxO zNdjc)p&*A$c8B31AVqXVv`E&KBXO5PNH3)&|1KuEm?t`- zA~)5$~G`OD%=Y3>j0Qk`{=CPT(TH}GesyWtYYI)h+5qkt?pd`urdo0qV%sK z+CruxSp($PB1G;)Nhk_2A%ED7h!-Kf2v35OfXNmU1vw>Ui`mNpP`bDiPS%jmPc#-! zeYpDqjrMdJNyQXvrhTF{J!^Cp$#rG+9X`A;{2z8&PDe2T#B@e@Bx%}*84Wa+-~=2D zP|gv74|CDs)GTu8K)t0~aX5odwxNp(}?(A$wkgpK4%FBvx9Kst8Njue1Vlb-{XA9 z>0R(IG_6*z6!Z|E1uOGsoRNW9F&+}Ik(+aru|X^>=Izk%X>eR%OpJwVf^`Flz?AZY zP_|WQVnPNB&0o<0`NDt!G2qhy*#w)p-5z3|9LbW2+W(q!T7jBGPz7JhM=Q7^jJhk^ zo;w|XV%TfC6{)xa7u?idUS3Iy-Ajsy_@HBVWQ%mAY#hrzS!?M4%SZ;j82RC$UIYp)!~@ zhy(4cvOWg%bj$`JXyGyEV1PoFFjZveLc*iiy?ZsuC&&9b-FufE#PJT|qO$#- zZwGtPER)fQ_zEAWSCu3u zJH|60sJ}6*mQP%!U>JJ)>}95?L?4uc;x;d+WthhBbId~2i(W2(dca5rhKk;b2ma8#7F{;U+65Z_)D5B%JF!Y+u z@U_E8`rcY18a~FJ-v;j#vL@mCZGLtd;zWah!H;%G(EGDJOVl!8qZ zp`$$94K+o;aIsMl(L9HOYe#Tye#-b12;f}DsJQ>j5C?YhVRmtBT6v^n`lF)%??x7{ zq8~(i6#AxQ<-6PQ-)4=(D22hnDTz^T&hKliLEf&ovltOrADwgSu|W!bhF08Weup_uQsw9nHN$m$jMH@9fAc@k6$LvDN?Z zr6o^ptNH7moVlAL;!J-uYFAsoxz!=|Q%;S1X}0q<$3uD2cJ276ZN4{(-hZ_y;oYAO zj$M4UZ>Ndx;mo7dW9Xaf=@;kwq=#@dNYmg13QmxD{b9#>nZN!6k_KFG#n1b*bZHk? z^^Gl`O73+LCk>^jk=R$@$ii})qaX^RAgcTzj>@$=;^L#5^~azwdhG!?{+xaU&@^yB8MPCH{p1yFD^JJ6kStyCI;IZ$?>gcw%_Z2QGd? zpv)hR$(MO9|4?b6vY9H>_dgv$76H|H;lnMwYFZ(nK+`EBtR`P$6ki*|bG_VrM^s^I z2Bl&1m6V9Z?D48T* z$p`PD87@tiBCL(9l(BIX&(3dD&jYxI;hKnRAueLf1Gp~X!ixta8?N5C=zR2l`;T}K zT`rYKlGBQdm?r_h_~Cyd9p}Lj*SB1}C@EoUUD^B;Pk&B+7dL{V#Lq!!yHg|0$Em~b zMS?W^ag7v$u=1?Np34r{Z0LgxmHnkYI8xjVXKgx3Be8d`JRRn%!{(i2o5Llup0EA8+r*8FTy&#xGvO!{xyfz=Mu)6Dp~Q z8--u((<*~X@|~l4kZJr`2y27Spql5a5>)C?R+q)Iz(uO(@gnIuss~hK+2ah`kyQHi zs{0Hq#Gv1-s)bJqF#T>-C}Y7)yGMn0KWM*Dfq%67R6Z(6KTX|`vHO^Qx_T^QX-qpy ztw-9EYJVmfpHp{IsS;74_I0(dO46392O{=ebuGNYn$=*st!n+#!BWtt>NeXgTElir z_3f6LtR73;ZZRHK7hPwp@pa~ZL_OsOJ`sO|HM+qD-(dQ0)e~b_qZsp1^^_R3A*NBx z;Fxa5)SFe?EkU8%Epcy}I=x{U^08&?Hhh_So8?J%gUw-@rR*wu2iGOG)Bh%mnWc(( zPBqVend*r471ajgT9xJUEVW;*@&AW{b)A!gDNadZT(P!ooLM znx1m8=bgSdM7Jj%bG+(T+Q!^*^g#%})BL>zwq7JmHhejK8TL+F)eS8;t!gsUOp9 zFjn(ri7e>@W9kRShv(`Kvbp;6xNhTmRy9|@1J@qaY4sfSY4s9Z%hYSsyKwEtbx{4P z>WKPxc1j)dqdLZ=c~xb+q8`Fjz486qu&e6nT4wNNPcpWiu`e0>jj{b2c1Xi+Ygou? zP400YozHQfYKOIrkNdnQp*_Ngr&_Z| z!8I)KMeQ#drZciYR*N+N?(LX%troAa(yr4I+pOpJO5k&;992oChciG@YbKv*JF5nul}Mw*UV~| zwO915f&1_J&}w+2d97;xSM}>zHMNsfo5{?jteWwfKGvi%m@FpkO?>xR^1Y=WX4Zt7 z8?hKuOSAb;{b-ZAnkm%O(`3G_Phx6cR+EJ@v(wO?sq3;vpjwd2fS%DcU`^OVY&09s z7BZ%P(hzE77NhoA1CE^fKWAtato1cjH-!Z^32qszpJ(Xk!$N(`^9>0my!ErDsjkU) zfg#7F@iX0TN-{lY3S4Md$V@t;Ay8G*(7+I3=xXp^Vwlf-G`{9)tRtI;7dI|7^fIf$ z%{|Tf5@Q%%2g$TsjecnAUSqUI<)^8w(Z6HrZDPGl+Px;c)JXdc-XJOIubCkMEX?=1 zIR)=TW-;KgQOw`v)1PVUs2^aRSQk}KwSKWr6l!4FB|gv#+T}jJAWVtR!zxXH>OL05 zdaAUa`#_U-+2d2HtzLaJD`sptWAB4C8T*B?St|CjifvJ`Z&mE7ian=hZ>ia5YWAa= zJ*HtVXxN7u_Kk*J(y(W=>~$^Ee&M69hTYPVv>Sp4KYLWtW|j1XN-9-LSJl!LwdC@V z-c?K2&C)crw8TeR>?1v?mS(A?>1t`Yk2FUmT{BC+=%j5r>2n|HlvY}&mDX#ewOZ*# zt+YZb&Cp6G)za%~>5N`Ft(R`n7X|G8tF-lJw$TE@k8ric3Hs8P&7}!Ds z+p1=(HSDmOy{=*3s@YLB`&7-2sWDX9Pil5n%}%S?Z)$c)&5o$q(<-)4#n$uo&R4M# zAGS!v_V}>U$Zt7A?* zyQXJX^z62dUDUH%dbY&CmKxY|1~$*YuIkzEdbSYX!2!BD`reekv?#B6DPEQnqKQM? zAnXwziF+sLuL00reXwDEBz}8Cm-RuqByG}M_>(l#MwLc-en2onq^UGgTb?TP5!tKW ze@S>?{J3sD;D{~lbXFt-yUOXW0oP(;mpvVf$wqf7=NNbfX{}}=s$u*LAst<#P5l)i zCG$KsN%=(GH?w(S0cUjsyp9@P%IUYgj zbgV6n?~kWbhVP&TSCPd%>%Xpz63VJgO= z{cXNFF|A}9t}`{!;X@L|EmTZX(%aV4R>LdC-)2-}9;taz<&e~t5z1%Tz;?|naJ+u1Ll49TKwql*yR;>O{iCV=} zsvxi?>%X+!3w;MIE}Tgn#QGCh8ChlqN{>dHZAP7Xphg#@8aN<2$Y!AjLy&23N&zi` zJMwa)18ja2sSnckx2NMxoaxcEZJ`un3ab1CtP*azA-khN1Nlnf}f1Px(fVl#jKt;q0o2gV&;#& zhP@6GQF?pTto^^Q`sMO@$INBVZ=3$fyyFW3Yu}20qRHeV_E3?Rulv^|>ufrN@LTuID+}zW^ zbO!LcR;yR5ZDEwbPg7kJ{M~Ko;|Hr>urCYG`018rQLW}8sse{926`E$Xe$dG*sm)qGKH9jeyWt)xpyrx_hH9geZBqM{~Dm=Kwx zym&Yg>rYW*$7JP=Er?3X&yE649rMz`$6#UN;E{A|W^2*RmJo?_TZ+mtBX}kns+hjhsQV1tWn%_&@&Minq8Y) z{9=5&w{#^r?@cPP#y7t)_{#ErqaIw>d8WB2;mRkDJx4Y-c=rA$Yt%T~@wrv4pG^O? z|KmAl_FsxPzD##+{(+t9(gDAWc(b(bd&@FoMvT62dGD!u%NFSZrJDm@U)<^W>Eo|o zti7OlyK}#^SeJ0_T&d%7Yg_Q-So^1KXZF$0U)}KA@dM5c-S)lyz>&~8TfX@1*qcXw zSdqFx^Uj>&vrYP3c&#WYIn2ZkRNFJ%-0@1n#D4XkZ_?uaFO%OepRX6#^xHKFXF{&_ z{d3-lOuwf!5zi;L`(xCZcWU3zo2H%B**HhZEnrz zH|*_Rf7V#NZua2jLr$?b8fEKBr*wX=%Yk0H*i*WKxZ+EFUR;+je#iLa7jz3w1+;p{ z-s(p28$YOPHr}~>Rqw^V>$hIa4C%Yzuq|@3mXo7h<^#E5St`MG$RkVM~ayHE(HaNs1tzKStZ= z@qb-W6{{+$1Qn?S6;uMo-0K(r$PWmOeDhH5YsCS*;x_#D?vT1Kbg0#M%-LamUwdDd zP*c-w!_<#`YJb;a%+A0==8Fj*E!M5w)$$+`|3~o z?D7WnjM-O5UfkP%%Tx0n-?+7|qv6Pqh<85^k4R{^sAc!~FDJkK?3&Q}t5#>6OR4kl z$%t;tN6tLeaK!$)J=*l&zJ74q2I`CZCOsH+u>R?>BmDbyp0MtkbaLYxs^XE~ZmqU% zQ>_C7d;HjPh5y<5-8P22pESAC_uD?spL8Ps#|Fo@bY8sU!bhQlzkO`>xnA9Dt6qQl z__+sPczPlP6_t1%D)Fo>KxdRKy=qJYV@&eWft4zw``iVBRT`h#Cd_&1 zRZ|_M_BJz#dw&gqnPKyH%YLm*4HZyE&E+?1rHY=@@q=J(?~^~T`XqW^{aJCgVN{}y z2Aas$r=(X&j~U%$Ed*^Ee5Mw*^RWtj*N-n%I+aWxk1_W zxAnF4R-U2kI^0RwMWrd4?hf!BHrES;yj9~`Xmic8x#qfw6sfkk9<#Mos#CG*v3IJD zly`bwT0zv90w!0(?q;&q6m(s0!+HefkG2j zJ9kw?TEof-RIYtT|2AXgq7%tQH6!;Qa*VFG)V#oQGVR&L9TrUas>o-~Hv7oPrfsf$ zoWC#Uu|GGr{mJy{16#VRe(6%yw`p7IHD9@KgninaDNlCpJMfUtvy;E7*(3B)VuvUD z?_GOq%;`4z$VN+lXkBaNf%Rb%=CwR^Hhp(e>xq-f4vYuN`aJ%9^$4ouRWbbMscc=lHmtR`&{P9MPt@ZBVZa^VW5}uAF>k zYG_`yDV`>jZC3Nm+mK=+0W2&Bxn+;urDDF?-axg}<*DzTlAb^@`4$hF)5@(%7SG zz+z{ey;7qcZ!cZhw$p^#&3AtF;)^d#npE$PuJh}>expl$=auKLZ5i`kkAyMjH{>SY6IqQM9ZraXkdOm&pcwtW3+}8V+59-}#i*sh{lPFp+dUON6kle6oXTSYHy+mw^@@b3Nv zLB5mv?ujn0_Mok}+F(opZLazM+ls5oS)kX%w8XW>1_30`3ytb%AGaZoi7MuLo@uK& z+7I@p=ee3K%2QAiT~A|uB{y_U%`Lg#1UU80AC1e^n|@pQ!kA%m3bF?K{5VPJeiQ$2ni`D>{;%vEaL`*<0@0ySioO z``N{V>-A`nm*&(gTy`P!biJA#Ge-Py@yRByKi{TZLhJSRH(#tarQXb)I}ZlF(0cOZ zk6VP*I6FEmrsE^ye%<@)D3>K@%69YX`!9ab{>_B;-^5-XlJ=##<3q1Mx}tCEHovZY zCM7ID|y*=Ks28$C=v$ir-z}bLEQP{KpffZtpsPh5mf7;~y8kR>gk! z@aHRv1JBrs15dh%t5&n<;=p}~+vDyb@=pYAM$`rsQ&;p)6tjLhv%&@V)MQC9YX{mU zLZu~un`O|`hMLr@5(mX|-!yCR!RGKDD<-d*q<^;Oy2jOmi;dgb|EEQV2{VuFowZe^ zd#Kp2(c6h3K`}O1h;h;QtV&$-<}s1c2{FTL8mEd~E^+OB*|o>!`n0TBD!V8QL8`&+ z|Asf>FHR`$w>5y)!Td8UIWq+(%dN=+23R`{=-sM)hq&lwaUEh>H0x}OiH~k*t55mV zL7^Timre;b8{kOE8EeHRF8a((NwFX3r}-6bnZsUg8Q&|hkN>>)>4YoXE#vFW(Bzhx zT$TX;l3PY@nK~$}QjBG%j7>OYqHQs;F|pAtqg#+I9*voGwEX!0RR4gtD;oCRzMk#J zdTSo9HvPtNzduqweEZp6C%>$1J!dVN@LuB2j_tL--CAAs#JU#iCNI5eJUKS?%Qt__ z&ZysUdhpgS9$njV#Gpl^k9O#CU$fMJc~2a8DP_{R2S0hyklo_<&7E#7YxR}?o1;P! znr-{ARdF-Z9>>*stE3HU-`-X;EWYW^J{{^ln>IXTVr0!MQr!MP9tXg`TO%bTNr+w^OW(+uj^(W?SA5L z@2Aq*4PUVQV%@j$r7InR`_JxMr)}q>-~F6wP3zpTr}Oq7^FF=WbKA{ZKZiWLFL~6! zLBVIw=k55w_U+E0E2dvNTdn#h!C{*e!?qSERm01SjZ$BmP+ViF_1)fWmmQ5izv-h6 zW1lZ$jUG&EHT;R_IhQ&=q#}cgqc6onG5VfG8#>Zw-s!$us4PQ75 zne^zUi6_Em9y&BByl`EE()*0hojpAAQqQ2`C%+wW=-jlD2?qb{$lYseKYD8KiVOR! zD>fT9ym2XPeb@f=(@#xo^^@thri(TV_%fnPPxU@S0F*a`hl~h=es?@ zeoj0)=yd1d6CN!5adq3Y4b^jheEGtUd~5Ab zwLgmgZ0X?<&u;4J+cG)pO6spa+&-BxsK(BP-E02vO-5>J+la0OU&ZJCSTMr0F?;Vo z^XYC`J-%6(aAxb%+ZRuF{PEcbKmHOt%XaLM*5eI^)AzsFAtv{FTJ(~xe?)1Y+?RX% z%tV9I^iIaY6{eXM@)P zvMx5hd2|nWj%K@XyKJVre@6><46uTxY8sQPrq?~ za%PXFBX@j!Cgr2?@3qNj^5Dg41Hv`Yb=udeIX~by z^m;$Ru&%>*&%N<=fo<^p#V>X8-TU*EF0MUW8jOk=GOF`$L%Pg}nO578GJ5VvSMu9m zKG*ZvZQEZNu`eYkH)3ba>oc4m9#6U1d0Ti`gVBNcHS0d{R*&>qeN*2aace@I))xmC zzOm_v4!zp-+vmSb*Jkw8D;ZnW3z8nau(!vp+%ro)ef!nlCN(xiUp&%VH}~C{hUPy_ z3|)J6@t(vVqmnkPx_mT!)5~m|)%e`RJvTRQ-JLYzq3X++wokoYilq7hlIqkQr{I-} zrhjD$e(?7}pFQ)_i^Eeh_qCok=fQ8jSQ4`Rp9($q6j>H}@y%jl|1F_c1#C>cOGwUH z$;*sMjO$sO>zOjMZO~_U+M4Ouaky9T1f+zIApFb8qn}0@}_%bMFE7 zI``K9FteZUshuYlwRMeCw_g6zin@90{`1P`SE4t6sXev&&p!s|+-F<&(Ty|rcP&Z)n(m@=$w=x>XQy3g$|y_Mi!<4RPK%YJzE`Z3>s^2P6;PLlF^ z*peF5OZ@V@dgX#=hBn&x?k&y9u`k4Q55G0=t*AfWJ@a(zhp8i%d^@<^*-vUg($8JJyyelfp$+{fMYbF~{>5>x>7MYPReeLs zD$8d}4*7Li;@q)!&#Ju_raX4>bU*1!B*tE=`d z6Mwq)YS-7V9?O3;WlY|L)vnK08Q*C6;klik9V#x(-xGHE{pqZ>^G2;%jgwox^Wc$P zz5^Fedc5EP!w-v^{XF|bY-C`gD_f(I!|Pt%^+xX_5%0gf`r8HXtm^RM?l13a-|NJT z>y4MZWXZ7Y|IiWB<9OO5R~A1JRqKlB zXW?|ViDH}P2eK{L5&7uEMDN)zlp?ZCgu>6nESxRB*!9`tZTXi&jQ9Vqo#NNE>8~vR z^qIlFAHuF1HZk)8`;MI86g_!hV-zx$gr)0>JeJhN=w%=UA8`NOSn1|GheDiKap0j6skUum>D)u`2*>Q*AAphmQRGu_3Ie ztogUMgl)R;q@HNbMViIwtFJuoGWqSfD=wse!FAbe+5Ja1^Dn)7GS`w}&i%fs#-knY z=f*9{7IKr{=HU}MH$LS|RBi5+S9?#{u$3kz3aWqU@twMOd#2}<8_nkq%oS01|CXbA z-`TL}4y98T8$4!-NbB5_f z+v2!Io0u~u{gM4VXNlkyAr?lt$20l4k6Me#q&O)xa9Uiic-?u|apC9mDsU%)fdK%I C6Tf8u literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Threading.Tasks.Extensions.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000000000000000000000000000000000000..dfab23478ab4d6bc266ed91ed6b96bcebb3cf8b7 GIT binary patch literal 25984 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 literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Xml.ReaderWriter.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Xml.ReaderWriter.dll new file mode 100644 index 0000000000000000000000000000000000000000..022e63a21a86003cb34d9e4082ad1816c5eedbc0 GIT binary patch literal 606592 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

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

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

+ /// Monitors the task (which should be ProcessRecordAsync) to control + /// the lifetime of the job itself + /// + /// + public void Monitor(Task task) + { + SetJobState(JobState.Running); + task.ContinueWith(antecedent => + { + if (antecedent.IsCanceled) + { + // if the task was canceled, we're just going to call it completed. + SetJobState(JobState.Completed); + } + else if (antecedent.IsFaulted) + { + foreach (var innerException in antecedent.Exception.Flatten().InnerExceptions) + { + WriteError(new System.Management.Automation.ErrorRecord(innerException, string.Empty, System.Management.Automation.ErrorCategory.NotSpecified, null)); + } + + // a fault indicates an actual failure + SetJobState(JobState.Failed); + } + else + { + // otherwiser it's a completed state. + SetJobState(JobState.Completed); + } + }, CancellationToken); + } + + private void CheckForCancellation() + { + if (IsJobDone) + { + throw new LongRunningJobCancelledException("Long running job is canceled or stopping, continuation of the cmdlet is not permitted."); + } + } + + public void WriteInformation(InformationRecord informationRecord) + { + CheckForCancellation(); + + this.Information.Add(informationRecord); + } + + public bool ShouldContinue(string query, string caption, bool hasSecurityImpact, ref bool yesToAll, ref bool noToAll) + { + CheckForInteractive(); + return false; + } + + public void WriteDebug(string text) + { + _statusMessage = text; + CheckForCancellation(); + + if (Debug.IsOpen && Debug.Count < MaxRecords) + { + Debug.Add(new DebugRecord(text)); + } + } + + public void WriteError(ErrorRecord errorRecord) + { + if (Error.IsOpen) + { + Error.Add(errorRecord); + } + } + + public void WriteObject(object sendToPipeline) + { + CheckForCancellation(); + + if (Output.IsOpen) + { + Output.Add(new PSObject(sendToPipeline)); + } + } + + public void WriteObject(object sendToPipeline, bool enumerateCollection) + { + CheckForCancellation(); + + if (enumerateCollection && sendToPipeline is System.Collections.IEnumerable enumerable) + { + foreach (var item in enumerable) + { + WriteObject(item); + } + } + else + { + WriteObject(sendToPipeline); + } + } + + public void WriteProgress(ProgressRecord progressRecord) + { + CheckForCancellation(); + + if (Progress.IsOpen && Progress.Count < MaxRecords) + { + Progress.Add(progressRecord); + } + } + + public void WriteProgress(long sourceId, ProgressRecord progressRecord) + { + CheckForCancellation(); + + if (Progress.IsOpen && Progress.Count < MaxRecords) + { + Progress.Add(progressRecord); + } + } + + public void WriteVerbose(string text) + { + CheckForCancellation(); + + if (Verbose.IsOpen && Verbose.Count < MaxRecords) + { + Verbose.Add(new VerboseRecord(text)); + } + } + + public void WriteWarning(string text) + { + CheckForCancellation(); + + if (Warning.IsOpen && Warning.Count < MaxRecords) + { + Warning.Add(new WarningRecord(text)); + } + } + + public void WriteCommandDetail(string text) + { + WriteVerbose(text); + } + + public bool ShouldProcess(string target) + { + CheckForInteractive(); + return false; + } + + public bool ShouldProcess(string target, string action) + { + CheckForInteractive(); + return false; + } + + public bool ShouldProcess(string verboseDescription, string verboseWarning, string caption) + { + CheckForInteractive(); + return false; + } + + public bool ShouldProcess(string verboseDescription, string verboseWarning, string caption, out ShouldProcessReason shouldProcessReason) + { + CheckForInteractive(); + shouldProcessReason = ShouldProcessReason.None; + return false; + } + + public bool ShouldContinue(string query, string caption) + { + CheckForInteractive(); + return false; + } + + public bool ShouldContinue(string query, string caption, ref bool yesToAll, ref bool noToAll) + { + CheckForInteractive(); + return false; + } + + public bool TransactionAvailable() + { + // interactivity required? + return false; + } + + public void ThrowTerminatingError(ErrorRecord errorRecord) + { + if (Error.IsOpen) + { + Error.Add(errorRecord); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/AsyncOperationResponse.cs b/swaggerci/app/generated/runtime/AsyncOperationResponse.cs new file mode 100644 index 000000000000..06872a5060f8 --- /dev/null +++ b/swaggerci/app/generated/runtime/AsyncOperationResponse.cs @@ -0,0 +1,176 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + [System.ComponentModel.TypeConverter(typeof(AsyncOperationResponseTypeConverter))] + public class AsyncOperationResponse + { + private string _target; + public string Target { get => _target; set => _target = value; } + public AsyncOperationResponse() + { + } + internal AsyncOperationResponse(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json) + { + // pull target + { Target = If(json?.PropertyT("target"), out var _v) ? (string)_v : (string)Target; } + } + public string ToJsonString() + { + return $"{{ \"target\" : \"{this.Target}\" }}"; + } + + public static AsyncOperationResponse FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject json ? new AsyncOperationResponse(json) : null; + } + + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static AsyncOperationResponse FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(jsonText)); + + } + + public partial class AsyncOperationResponseTypeConverter : System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to a type + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static object ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(AsyncOperationResponse).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AsyncOperationResponse.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString()); ; + } + catch + { + // Unable to use JSON pattern + } + + if (typeof(System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return new AsyncOperationResponse { Target = (sourceValue as System.Management.Automation.PSObject).GetValueForProperty("target", "", global::System.Convert.ToString) }; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return new AsyncOperationResponse { Target = (sourceValue as global::System.Collections.IDictionary).GetValueForProperty("target", "", global::System.Convert.ToString) }; + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportCmdletSurface.cs b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportCmdletSurface.cs new file mode 100644 index 000000000000..0fad624ae023 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportCmdletSurface.cs @@ -0,0 +1,113 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Text; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "CmdletSurface")] + [DoNotExport] + public class ExportCmdletSurface : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ModuleName { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string CmdletFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string OutputFolder { get; set; } + + [Parameter] + public bool IncludeGeneralParameters { get; set; } + + [Parameter] + public bool UseExpandedFormat { get; set; } + + protected override void ProcessRecord() + { + try + { + var variants = GetScriptCmdlets(this, CmdletFolder) + .SelectMany(fi => fi.ToVariants()) + .Where(v => !v.IsDoNotExport) + .ToArray(); + var allProfiles = variants.SelectMany(v => v.Profiles).Distinct().ToArray(); + var profileGroups = allProfiles.Any() + ? variants + .SelectMany(v => (v.Profiles.Any() ? v.Profiles : allProfiles).Select(p => (profile: p, variant: v))) + .GroupBy(pv => pv.profile) + .Select(pvg => new ProfileGroup(pvg.Select(pv => pv.variant).ToArray(), pvg.Key)) + : new[] { new ProfileGroup(variants) }; + foreach (var profileGroup in profileGroups) + { + var variantGroups = profileGroup.Variants + .GroupBy(v => new { v.CmdletName }) + .Select(vg => new VariantGroup(ModuleName, vg.Key.CmdletName, vg.Select(v => v).ToArray(), String.Empty, profileGroup.ProfileName)); + var sb = UseExpandedFormat ? ExpandedFormat(variantGroups) : CondensedFormat(variantGroups); + Directory.CreateDirectory(OutputFolder); + File.WriteAllText(Path.Combine(OutputFolder, $"CmdletSurface-{profileGroup.ProfileName}.md"), sb.ToString()); + } + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + + private StringBuilder ExpandedFormat(IEnumerable variantGroups) + { + var sb = new StringBuilder(); + foreach (var variantGroup in variantGroups.OrderBy(vg => vg.CmdletName)) + { + sb.Append($"### {variantGroup.CmdletName}{Environment.NewLine}"); + var parameterGroups = variantGroup.ParameterGroups + .Where(pg => !pg.DontShow && (IncludeGeneralParameters || (pg.OrderCategory != ParameterCategory.Azure && pg.OrderCategory != ParameterCategory.Runtime))); + foreach (var parameterGroup in parameterGroups) + { + sb.Append($" - {parameterGroup.ParameterName} `{parameterGroup.ParameterType.ToSyntaxTypeName()}`{Environment.NewLine}"); + } + sb.AppendLine(); + } + + return sb; + } + + private StringBuilder CondensedFormat(IEnumerable variantGroups) + { + var sb = new StringBuilder(); + var condensedGroups = variantGroups + .GroupBy(vg => vg.CmdletNoun) + .Select(vgg => ( + CmdletNoun: vgg.Key, + CmdletVerbs: vgg.Select(vg => vg.CmdletVerb).OrderBy(cv => cv).ToArray(), + ParameterGroups: vgg.SelectMany(vg => vg.ParameterGroups).DistinctBy(p => p.ParameterName).ToArray(), + OutputTypes: vgg.SelectMany(vg => vg.OutputTypes).Select(ot => ot.Type).DistinctBy(t => t.Name).Select(t => t.ToSyntaxTypeName()).ToArray())) + .OrderBy(vg => vg.CmdletNoun); + foreach (var condensedGroup in condensedGroups) + { + sb.Append($"### {condensedGroup.CmdletNoun} [{String.Join(", ", condensedGroup.CmdletVerbs)}] `{String.Join(", ", condensedGroup.OutputTypes)}`{Environment.NewLine}"); + var parameterGroups = condensedGroup.ParameterGroups + .Where(pg => !pg.DontShow && (IncludeGeneralParameters || (pg.OrderCategory != ParameterCategory.Azure && pg.OrderCategory != ParameterCategory.Runtime))); + foreach (var parameterGroup in parameterGroups) + { + sb.Append($" - {parameterGroup.ParameterName} `{parameterGroup.ParameterType.ToSyntaxTypeName()}`{Environment.NewLine}"); + } + sb.AppendLine(); + } + + return sb; + } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportExampleStub.cs b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportExampleStub.cs new file mode 100644 index 000000000000..43758f515c97 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportExampleStub.cs @@ -0,0 +1,74 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.MarkdownTypesExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "ExampleStub")] + [DoNotExport] + public class ExportExampleStub : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExportsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string OutputFolder { get; set; } + + protected override void ProcessRecord() + { + try + { + if (!Directory.Exists(ExportsFolder)) + { + throw new ArgumentException($"Exports folder '{ExportsFolder}' does not exist"); + } + + var exportDirectories = Directory.GetDirectories(ExportsFolder); + if (!exportDirectories.Any()) + { + exportDirectories = new[] { ExportsFolder }; + } + + var exampleText = String.Join(String.Empty, DefaultExampleHelpInfos.Select(ehi => ehi.ToHelpExampleOutput())); + foreach (var exportDirectory in exportDirectories) + { + var outputFolder = OutputFolder; + if (exportDirectory != ExportsFolder) + { + outputFolder = Path.Combine(OutputFolder, Path.GetFileName(exportDirectory)); + Directory.CreateDirectory(outputFolder); + } + + var cmdletFilePaths = GetScriptCmdlets(exportDirectory).Select(fi => Path.Combine(outputFolder, $"{fi.Name}.md")).ToArray(); + var currentExamplesFilePaths = Directory.GetFiles(outputFolder).ToArray(); + // Remove examples of non-existing cmdlets + var removedCmdletFilePaths = currentExamplesFilePaths.Except(cmdletFilePaths); + foreach (var removedCmdletFilePath in removedCmdletFilePaths) + { + File.Delete(removedCmdletFilePath); + } + + // Only create example stubs if they don't exist + foreach (var cmdletFilePath in cmdletFilePaths.Except(currentExamplesFilePaths)) + { + File.WriteAllText(cmdletFilePath, exampleText); + } + } + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportFormatPs1xml.cs b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportFormatPs1xml.cs new file mode 100644 index 000000000000..130a1b88b4d8 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportFormatPs1xml.cs @@ -0,0 +1,101 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "FormatPs1xml")] + [DoNotExport] + public class ExportFormatPs1xml : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string FilePath { get; set; } + + private const string ModelNamespace = @"Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models"; + private const string SupportNamespace = @"Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support"; + private const string PropertiesExcludedForTableview = @""; + + private static readonly bool IsAzure = Convert.ToBoolean(@"true"); + + protected override void ProcessRecord() + { + try + { + var viewModels = GetFilteredViewParameters().Select(CreateViewModel).ToList(); + var ps1xml = new Configuration + { + ViewDefinitions = new ViewDefinitions + { + Views = viewModels + } + }; + File.WriteAllText(FilePath, ps1xml.ToXmlString()); + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + + private static IEnumerable GetFilteredViewParameters() + { + //https://stackoverflow.com/a/79738/294804 + //https://stackoverflow.com/a/949285/294804 + var types = Assembly.GetExecutingAssembly().GetExportedTypes() + .Where(t => t.IsClass + && (t.Namespace.StartsWith(ModelNamespace) || t.Namespace.StartsWith(SupportNamespace)) + && !t.GetCustomAttributes().Any()); + return types.Select(t => new ViewParameters(t, t.GetProperties() + .Select(p => new PropertyFormat(p)) + .Where(pf => !pf.Property.GetCustomAttributes().Any() + && (!PropertiesExcludedForTableview.Split(',').Contains(pf.Property.Name)) + && (pf.FormatTable != null || (pf.Origin != PropertyOrigin.Inlined && pf.Property.PropertyType.IsPsSimple()))) + .OrderByDescending(pf => pf.Index.HasValue) + .ThenBy(pf => pf.Index) + .ThenByDescending(pf => pf.Origin.HasValue) + .ThenBy(pf => pf.Origin))).Where(vp => vp.Properties.Any()); + } + + private static View CreateViewModel(ViewParameters viewParameters) + { + var entries = viewParameters.Properties.Select(pf => + (TableColumnHeader: new TableColumnHeader { Label = pf.Label, Width = pf.Width }, + TableColumnItem: new TableColumnItem { PropertyName = pf.Property.Name })).ToArray(); + + return new View + { + Name = viewParameters.Type.FullName, + ViewSelectedBy = new ViewSelectedBy + { + TypeName = viewParameters.Type.FullName + }, + TableControl = new TableControl + { + TableHeaders = new TableHeaders + { + TableColumnHeaders = entries.Select(e => e.TableColumnHeader).ToList() + }, + TableRowEntries = new TableRowEntries + { + TableRowEntry = new TableRowEntry + { + TableColumnItems = new TableColumnItems + { + TableItems = entries.Select(e => e.TableColumnItem).ToList() + } + } + } + } + }; + } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportHelpMarkdown.cs b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportHelpMarkdown.cs new file mode 100644 index 000000000000..42b47201f488 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportHelpMarkdown.cs @@ -0,0 +1,53 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.MarkdownRenderer; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "HelpMarkdown")] + [DoNotExport] + public class ExportHelpMarkdown : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public PSModuleInfo ModuleInfo { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public PSObject[] FunctionInfo { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public PSObject[] HelpInfo { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string DocsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExamplesFolder { get; set; } + + protected override void ProcessRecord() + { + try + { + var helpInfos = HelpInfo.Select(hi => hi.ToPsHelpInfo()); + var variantGroups = FunctionInfo.Select(fi => fi.BaseObject).Cast() + .Join(helpInfos, fi => fi.Name, phi => phi.CmdletName, (fi, phi) => fi.ToVariants(phi)) + .Select(va => new VariantGroup(ModuleInfo.Name, va.First().CmdletName, va, String.Empty)); + WriteMarkdowns(variantGroups, ModuleInfo.ToModuleInfo(), DocsFolder, ExamplesFolder); + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportModelSurface.cs b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportModelSurface.cs new file mode 100644 index 000000000000..1537fb0b9348 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportModelSurface.cs @@ -0,0 +1,117 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Reflection; +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "ModelSurface")] + [DoNotExport] + public class ExportModelSurface : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string OutputFolder { get; set; } + + [Parameter] + public bool UseExpandedFormat { get; set; } + + private const string ModelNamespace = @"Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models"; + private const string SupportNamespace = @"Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Support"; + + protected override void ProcessRecord() + { + try + { + var types = Assembly.GetExecutingAssembly().GetExportedTypes() + .Where(t => t.IsClass && (t.Namespace.StartsWith(ModelNamespace) || t.Namespace.StartsWith(SupportNamespace))); + var typeInfos = types.Select(t => new ModelTypeInfo + { + Type = t, + TypeName = t.Name, + Properties = t.GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(p => !p.GetIndexParameters().Any()).OrderBy(p => p.Name).ToArray(), + NamespaceGroup = t.Namespace.Split('.').LastOrDefault().EmptyIfNull() + }).Where(mti => mti.Properties.Any()); + var sb = UseExpandedFormat ? ExpandedFormat(typeInfos) : CondensedFormat(typeInfos); + Directory.CreateDirectory(OutputFolder); + File.WriteAllText(Path.Combine(OutputFolder, "ModelSurface.md"), sb.ToString()); + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + + private static StringBuilder ExpandedFormat(IEnumerable typeInfos) + { + var sb = new StringBuilder(); + foreach (var typeInfo in typeInfos.OrderBy(mti => mti.TypeName).ThenBy(mti => mti.NamespaceGroup)) + { + sb.Append($"### {typeInfo.TypeName} [{typeInfo.NamespaceGroup}]{Environment.NewLine}"); + foreach (var property in typeInfo.Properties) + { + sb.Append($" - {property.Name} `{property.PropertyType.ToSyntaxTypeName()}`{Environment.NewLine}"); + } + sb.AppendLine(); + } + + return sb; + } + + private static StringBuilder CondensedFormat(IEnumerable typeInfos) + { + var sb = new StringBuilder(); + var typeGroups = typeInfos + .GroupBy(mti => mti.TypeName) + .Select(tig => ( + Types: tig.Select(mti => mti.Type).ToArray(), + TypeName: tig.Key, + Properties: tig.SelectMany(mti => mti.Properties).DistinctBy(p => p.Name).OrderBy(p => p.Name).ToArray(), + NamespaceGroups: tig.Select(mti => mti.NamespaceGroup).OrderBy(ng => ng).ToArray() + )) + .OrderBy(tg => tg.TypeName); + foreach (var typeGroup in typeGroups) + { + var aType = typeGroup.Types.Select(GetAssociativeType).FirstOrDefault(t => t != null); + var aText = aType != null ? $@" \<{aType.ToSyntaxTypeName()}\>" : String.Empty; + sb.Append($"### {typeGroup.TypeName}{aText} [{String.Join(", ", typeGroup.NamespaceGroups)}]{Environment.NewLine}"); + foreach (var property in typeGroup.Properties) + { + var propertyAType = GetAssociativeType(property.PropertyType); + var propertyAText = propertyAType != null ? $" <{propertyAType.ToSyntaxTypeName()}>" : String.Empty; + var enumNames = GetEnumFieldNames(property.PropertyType.Unwrap()); + var enumNamesText = enumNames.Any() ? $" **{{{String.Join(", ", enumNames)}}}**" : String.Empty; + sb.Append($" - {property.Name} `{property.PropertyType.ToSyntaxTypeName()}{propertyAText}`{enumNamesText}{Environment.NewLine}"); + } + sb.AppendLine(); + } + + return sb; + } + + //https://stackoverflow.com/a/4963190/294804 + private static Type GetAssociativeType(Type type) => + type.GetInterfaces().FirstOrDefault(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IAssociativeArray<>))?.GetGenericArguments().First(); + + private static string[] GetEnumFieldNames(Type type) => + type.IsValueType && !type.IsPrimitive && type != typeof(decimal) && type != typeof(DateTime) + ? type.GetFields(BindingFlags.Public | BindingFlags.Static).Where(f => f.FieldType == type).Select(p => p.Name).ToArray() + : new string[] { }; + + private class ModelTypeInfo + { + public Type Type { get; set; } + public string TypeName { get; set; } + public PropertyInfo[] Properties { get; set; } + public string NamespaceGroup { get; set; } + } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportProxyCmdlet.cs b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportProxyCmdlet.cs new file mode 100644 index 000000000000..a2fdd6b3d4a4 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportProxyCmdlet.cs @@ -0,0 +1,169 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Text; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsHelpers; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.MarkdownRenderer; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsProxyTypeExtensions; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "ProxyCmdlet", DefaultParameterSetName = "Docs")] + [DoNotExport] + public class ExportProxyCmdlet : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ModuleName { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string[] ModulePath { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExportsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string InternalFolder { get; set; } + + [Parameter(Mandatory = true, ParameterSetName = "Docs")] + [AllowEmptyString] + public string ModuleDescription { get; set; } + + [Parameter(Mandatory = true, ParameterSetName = "Docs")] + [ValidateNotNullOrEmpty] + public string DocsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExamplesFolder { get; set; } + + [Parameter(Mandatory = true, ParameterSetName = "Docs")] + public Guid ModuleGuid { get; set; } + + [Parameter(Mandatory = true, ParameterSetName = "NoDocs")] + public SwitchParameter ExcludeDocs { get; set; } + + protected override void ProcessRecord() + { + try + { + var variants = GetModuleCmdletsAndHelpInfo(this, ModulePath).SelectMany(ci => ci.ToVariants()).Where(v => !v.IsDoNotExport).ToArray(); + var allProfiles = variants.SelectMany(v => v.Profiles).Distinct().ToArray(); + var profileGroups = allProfiles.Any() + ? variants + .SelectMany(v => (v.Profiles.Any() ? v.Profiles : allProfiles).Select(p => (profile: p, variant: v))) + .GroupBy(pv => pv.profile) + .Select(pvg => new ProfileGroup(pvg.Select(pv => pv.variant).ToArray(), pvg.Key)) + : new[] { new ProfileGroup(variants) }; + var variantGroups = profileGroups.SelectMany(pg => pg.Variants + .GroupBy(v => new { v.CmdletName, v.IsInternal }) + .Select(vg => new VariantGroup(ModuleName, vg.Key.CmdletName, vg.Select(v => v).ToArray(), + Path.Combine(vg.Key.IsInternal ? InternalFolder : ExportsFolder, pg.ProfileFolder), pg.ProfileName, isInternal: vg.Key.IsInternal))) + .ToArray(); + + var license = new StringBuilder(); + license.Append(@" +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +"); + HashSet LicenseSet = new HashSet(); + foreach (var variantGroup in variantGroups) + { + var parameterGroups = variantGroup.ParameterGroups.ToList(); + var isValidProfile = !String.IsNullOrEmpty(variantGroup.ProfileName) && variantGroup.ProfileName != NoProfiles; + var examplesFolder = isValidProfile ? Path.Combine(ExamplesFolder, variantGroup.ProfileName) : ExamplesFolder; + var markdownInfo = new MarkdownHelpInfo(variantGroup, examplesFolder); + List examples = new List(); + foreach (var it in markdownInfo.Examples) + { + examples.Add(it); + } + variantGroup.HelpInfo.Examples = examples.ToArray(); + var sb = new StringBuilder(); + sb.Append($"{Environment.NewLine}"); + sb.Append(variantGroup.ToHelpCommentOutput()); + sb.Append($"function {variantGroup.CmdletName} {{{Environment.NewLine}"); + sb.Append(variantGroup.Aliases.ToAliasOutput()); + sb.Append(variantGroup.OutputTypes.ToOutputTypeOutput()); + sb.Append(variantGroup.ToCmdletBindingOutput()); + sb.Append(variantGroup.ProfileName.ToProfileOutput()); + + sb.Append("param("); + sb.Append($"{(parameterGroups.Any() ? Environment.NewLine : String.Empty)}"); + foreach (var parameterGroup in parameterGroups) + { + var parameters = parameterGroup.HasAllVariants ? parameterGroup.Parameters.Take(1) : parameterGroup.Parameters; + parameters = parameters.Where(p => !p.IsHidden()); + if (!parameters.Any()) + { + continue; + } + foreach (var parameter in parameters) + { + sb.Append(parameter.ToParameterOutput(variantGroup.HasMultipleVariants, parameterGroup.HasAllVariants)); + } + sb.Append(parameterGroup.Aliases.ToAliasOutput(true)); + sb.Append(parameterGroup.HasValidateNotNull.ToValidateNotNullOutput()); + sb.Append(parameterGroup.HasAllowEmptyArray.ToAllowEmptyArray()); + sb.Append(parameterGroup.CompleterInfo.ToArgumentCompleterOutput()); + sb.Append(parameterGroup.OrderCategory.ToParameterCategoryOutput()); + sb.Append(parameterGroup.InfoAttribute.ToInfoOutput(parameterGroup.ParameterType)); + sb.Append(parameterGroup.ToDefaultInfoOutput()); + sb.Append(parameterGroup.ParameterType.ToParameterTypeOutput()); + sb.Append(parameterGroup.Description.ToParameterDescriptionOutput()); + sb.Append(parameterGroup.ParameterName.ToParameterNameOutput(parameterGroups.IndexOf(parameterGroup) == parameterGroups.Count - 1)); + } + sb.Append($"){Environment.NewLine}{Environment.NewLine}"); + + sb.Append(variantGroup.ToBeginOutput()); + sb.Append(variantGroup.ToProcessOutput()); + sb.Append(variantGroup.ToEndOutput()); + + sb.Append($"}}{Environment.NewLine}"); + + Directory.CreateDirectory(variantGroup.OutputFolder); + File.WriteAllText(variantGroup.FilePath, license.ToString()); + File.AppendAllText(variantGroup.FilePath, sb.ToString()); + if (!LicenseSet.Contains(Path.Combine(variantGroup.OutputFolder, "ProxyCmdletDefinitions.ps1"))) + { + // only add license in the header + File.AppendAllText(Path.Combine(variantGroup.OutputFolder, "ProxyCmdletDefinitions.ps1"), license.ToString()); + LicenseSet.Add(Path.Combine(variantGroup.OutputFolder, "ProxyCmdletDefinitions.ps1")); + } + File.AppendAllText(Path.Combine(variantGroup.OutputFolder, "ProxyCmdletDefinitions.ps1"), sb.ToString()); + } + + if (!ExcludeDocs) + { + var moduleInfo = new PsModuleHelpInfo(ModuleName, ModuleGuid, ModuleDescription); + foreach (var variantGroupsByProfile in variantGroups.GroupBy(vg => vg.ProfileName)) + { + var profileName = variantGroupsByProfile.Key; + var isValidProfile = !String.IsNullOrEmpty(profileName) && profileName != NoProfiles; + var docsFolder = isValidProfile ? Path.Combine(DocsFolder, profileName) : DocsFolder; + var examplesFolder = isValidProfile ? Path.Combine(ExamplesFolder, profileName) : ExamplesFolder; + WriteMarkdowns(variantGroupsByProfile, moduleInfo, docsFolder, examplesFolder); + } + } + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportPsd1.cs b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportPsd1.cs new file mode 100644 index 000000000000..2420c9a2a9d7 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportPsd1.cs @@ -0,0 +1,191 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Text; +using System.Text.RegularExpressions; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "Psd1")] + [DoNotExport] + public class ExportPsd1 : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExportsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string CustomFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string Psd1Path { get; set; } + + [Parameter(Mandatory = true)] + public Guid ModuleGuid { get; set; } + + private static readonly bool IsAzure = Convert.ToBoolean(@"true"); + private const string CustomFolderRelative = "./custom"; + private const string Indent = Psd1Indent; + private const string Undefined = "undefined"; + private bool IsUndefined(string value) => string.Equals(Undefined, value, StringComparison.OrdinalIgnoreCase); + + protected override void ProcessRecord() + { + try + { + if (!Directory.Exists(ExportsFolder)) + { + throw new ArgumentException($"Exports folder '{ExportsFolder}' does not exist"); + } + + if (!Directory.Exists(CustomFolder)) + { + throw new ArgumentException($"Custom folder '{CustomFolder}' does not exist"); + } + + string version = Convert.ToString(@"0.1.0"); + // Validate the module version should be semantic version + // Following regex is official from https://semver.org/ + Regex rx = new Regex(@"^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$", RegexOptions.Compiled); + if (rx.Matches(version).Count != 1) + { + throw new ArgumentException("Module-version is not a valid Semantic Version"); + } + + string previewVersion = null; + if (version.Contains('-')) + { + string[] versions = version.Split("-".ToCharArray(), 2); + version = versions[0]; + previewVersion = versions[1]; + } + + var sb = new StringBuilder(); + sb.AppendLine("@{"); + sb.AppendLine($@"{GuidStart} = '{ModuleGuid}'"); + sb.AppendLine($@"{Indent}RootModule = '{"./Az.ContainerAppsApi.psm1"}'"); + sb.AppendLine($@"{Indent}ModuleVersion = '{version}'"); + sb.AppendLine($@"{Indent}CompatiblePSEditions = 'Core', 'Desktop'"); + sb.AppendLine($@"{Indent}Author = '{"Microsoft Corporation"}'"); + sb.AppendLine($@"{Indent}CompanyName = '{"Microsoft Corporation"}'"); + sb.AppendLine($@"{Indent}Copyright = '{"Microsoft Corporation. All rights reserved."}'"); + sb.AppendLine($@"{Indent}Description = '{"Microsoft Azure PowerShell: ContainerAppsApi cmdlets"}'"); + sb.AppendLine($@"{Indent}PowerShellVersion = '5.1'"); + sb.AppendLine($@"{Indent}DotNetFrameworkVersion = '4.7.2'"); + + // RequiredModules + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}RequiredModules = @({"undefined"})"); + } + + // RequiredAssemblies + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}RequiredAssemblies = @({"undefined"})"); + } + else + { + sb.AppendLine($@"{Indent}RequiredAssemblies = '{"./bin/Az.ContainerAppsApi.private.dll"}'"); + } + + // NestedModules + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}NestedModules = @({"undefined"})"); + } + + // FormatsToProcess + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}FormatsToProcess = @({"undefined"})"); + } + else + { + var customFormatPs1xmlFiles = Directory.GetFiles(CustomFolder) + .Where(f => f.EndsWith(".format.ps1xml")) + .Select(f => $"{CustomFolderRelative}/{Path.GetFileName(f)}"); + var formatList = customFormatPs1xmlFiles.Prepend("./Az.ContainerAppsApi.format.ps1xml").ToPsList(); + sb.AppendLine($@"{Indent}FormatsToProcess = {formatList}"); + } + + // TypesToProcess + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}TypesToProcess = @({"undefined"})"); + } + + // ScriptsToProcess + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}ScriptsToProcess = @({"undefined"})"); + } + + var functionInfos = GetScriptCmdlets(ExportsFolder).ToArray(); + // FunctionsToExport + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}FunctionsToExport = @({"undefined"})"); + } + else + { + var cmdletsList = functionInfos.Select(fi => fi.Name).Distinct().Append("*").ToPsList(); + sb.AppendLine($@"{Indent}FunctionsToExport = {cmdletsList}"); + } + + // AliasesToExport + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}AliasesToExport = @({"undefined"})"); + } + else + { + var aliasesList = functionInfos.SelectMany(fi => fi.ScriptBlock.Attributes).ToAliasNames().Append("*").ToPsList(); + sb.AppendLine($@"{Indent}AliasesToExport = {aliasesList}"); + } + + // CmdletsToExport + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}CmdletsToExport = @({"undefined"})"); + } + + sb.AppendLine($@"{Indent}PrivateData = @{{"); + sb.AppendLine($@"{Indent}{Indent}PSData = @{{"); + + if (previewVersion != null) + { + sb.AppendLine($@"{Indent}{Indent}{Indent}Prerelease = '{previewVersion}'"); + } + sb.AppendLine($@"{Indent}{Indent}{Indent}Tags = {"Azure ResourceManager ARM PSModule ContainerAppsApi".Split(' ').ToPsList().NullIfEmpty() ?? "''"}"); + sb.AppendLine($@"{Indent}{Indent}{Indent}LicenseUri = '{"https://aka.ms/azps-license"}'"); + sb.AppendLine($@"{Indent}{Indent}{Indent}ProjectUri = '{"https://github.com/Azure/azure-powershell"}'"); + sb.AppendLine($@"{Indent}{Indent}{Indent}ReleaseNotes = ''"); + var profilesList = ""; + if (IsAzure && !String.IsNullOrEmpty(profilesList)) + { + sb.AppendLine($@"{Indent}{Indent}{Indent}Profiles = {profilesList}"); + } + + sb.AppendLine($@"{Indent}{Indent}}}"); + sb.AppendLine($@"{Indent}}}"); + sb.AppendLine(@"}"); + + File.WriteAllText(Psd1Path, sb.ToString()); + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportTestStub.cs b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportTestStub.cs new file mode 100644 index 000000000000..9f8234f582ab --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/ExportTestStub.cs @@ -0,0 +1,148 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Text; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsProxyOutputExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "TestStub")] + [DoNotExport] + public class ExportTestStub : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ModuleName { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExportsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string OutputFolder { get; set; } + + [Parameter] + public SwitchParameter IncludeGenerated { get; set; } + + protected override void ProcessRecord() + { + try + { + if (!Directory.Exists(ExportsFolder)) + { + throw new ArgumentException($"Exports folder '{ExportsFolder}' does not exist"); + } + + var exportDirectories = Directory.GetDirectories(ExportsFolder); + if (!exportDirectories.Any()) + { + exportDirectories = new[] { ExportsFolder }; + } + var utilFile = Path.Combine(OutputFolder, "utils.ps1"); + if (!File.Exists(utilFile)) + { + var sc = new StringBuilder(); + sc.AppendLine(@"function RandomString([bool]$allChars, [int32]$len) { + if ($allChars) { + return -join ((33..126) | Get-Random -Count $len | % {[char]$_}) + } else { + return -join ((48..57) + (97..122) | Get-Random -Count $len | % {[char]$_}) + } +} +$env = @{} +if ($UsePreviousConfigForRecord) { + $previousEnv = Get-Content (Join-Path $PSScriptRoot 'env.json') | ConvertFrom-Json + $previousEnv.psobject.properties | Foreach-Object { $env[$_.Name] = $_.Value } +} +# Add script method called AddWithCache to $env, when useCache is set true, it will try to get the value from the $env first. +# example: $val = $env.AddWithCache('key', $val, $true) +$env | Add-Member -Type ScriptMethod -Value { param( [string]$key, [object]$val, [bool]$useCache) if ($this.Contains($key) -and $useCache) { return $this[$key] } else { $this[$key] = $val; return $val } } -Name 'AddWithCache' +function setupEnv() { + # Preload subscriptionId and tenant from context, which will be used in test + # as default. You could change them if needed. + $env.SubscriptionId = (Get-AzContext).Subscription.Id + $env.Tenant = (Get-AzContext).Tenant.Id + # For any resources you created for test, you should add it to $env here. + $envFile = 'env.json' + if ($TestMode -eq 'live') { + $envFile = 'localEnv.json' + } + set-content -Path (Join-Path $PSScriptRoot $envFile) -Value (ConvertTo-Json $env) +} +function cleanupEnv() { + # Clean resources you create for testing +} +"); + File.WriteAllText(utilFile, sc.ToString()); + } + foreach (var exportDirectory in exportDirectories) + { + var outputFolder = OutputFolder; + if (exportDirectory != ExportsFolder) + { + outputFolder = Path.Combine(OutputFolder, Path.GetFileName(exportDirectory)); + Directory.CreateDirectory(outputFolder); + } + + var variantGroups = GetScriptCmdlets(exportDirectory) + .SelectMany(fi => fi.ToVariants()) + .Where(v => !v.IsDoNotExport) + .GroupBy(v => v.CmdletName) + .Select(vg => new VariantGroup(ModuleName, vg.Key, vg.Select(v => v).ToArray(), outputFolder, isTest: true)) + .Where(vtg => !File.Exists(vtg.FilePath) && (IncludeGenerated || !vtg.IsGenerated)); + + foreach (var variantGroup in variantGroups) + { + var sb = new StringBuilder(); + sb.AppendLine($"if(($null -eq $TestName) -or ($TestName -contains '{variantGroup.CmdletName}'))"); + sb.AppendLine(@"{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath)" +); + sb.AppendLine($@" $TestRecordingFile = Join-Path $PSScriptRoot '{variantGroup.CmdletName}.Recording.json'"); + sb.AppendLine(@" $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} +"); + + + sb.AppendLine($"Describe '{variantGroup.CmdletName}' {{"); + var variants = variantGroup.Variants + .Where(v => IncludeGenerated || !v.Attributes.OfType().Any()) + .ToList(); + + foreach (var variant in variants) + { + sb.AppendLine($"{Indent}It '{variant.VariantName}' -skip {{"); + sb.AppendLine($"{Indent}{Indent}{{ throw [System.NotImplementedException] }} | Should -Not -Throw"); + var variantSeparator = variants.IndexOf(variant) == variants.Count - 1 ? String.Empty : Environment.NewLine; + sb.AppendLine($"{Indent}}}{variantSeparator}"); + } + sb.AppendLine("}"); + + File.WriteAllText(variantGroup.FilePath, sb.ToString()); + } + } + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Cmdlets/GetCommonParameter.cs b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/GetCommonParameter.cs new file mode 100644 index 000000000000..8fad23170b31 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/GetCommonParameter.cs @@ -0,0 +1,52 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + [Cmdlet(VerbsCommon.Get, "CommonParameter")] + [OutputType(typeof(Dictionary))] + [DoNotExport] + public class GetCommonParameter : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public PSCmdlet PSCmdlet { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public Dictionary PSBoundParameter { get; set; } + + protected override void ProcessRecord() + { + try + { + var variants = PSCmdlet.MyInvocation.MyCommand.ToVariants(); + var commonParameterNames = variants.ToParameterGroups() + .Where(pg => pg.OrderCategory == ParameterCategory.Azure || pg.OrderCategory == ParameterCategory.Runtime) + .Select(pg => pg.ParameterName); + if (variants.Any(v => v.SupportsShouldProcess)) + { + commonParameterNames = commonParameterNames.Append("Confirm").Append("WhatIf"); + } + if (variants.Any(v => v.SupportsPaging)) + { + commonParameterNames = commonParameterNames.Append("First").Append("Skip").Append("IncludeTotalCount"); + } + + var names = commonParameterNames.ToArray(); + var keys = PSBoundParameter.Keys.Where(k => names.Contains(k)); + WriteObject(keys.ToDictionary(key => key, key => PSBoundParameter[key]), true); + } + catch (System.Exception ee) + { + System.Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Cmdlets/GetModuleGuid.cs b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/GetModuleGuid.cs new file mode 100644 index 000000000000..a907c7af2578 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/GetModuleGuid.cs @@ -0,0 +1,31 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + [Cmdlet(VerbsCommon.Get, "ModuleGuid")] + [DoNotExport] + public class GetModuleGuid : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string Psd1Path { get; set; } + + protected override void ProcessRecord() + { + try + { + WriteObject(ReadGuidFromPsd1(Psd1Path)); + } + catch (System.Exception ee) + { + System.Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Cmdlets/GetScriptCmdlet.cs b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/GetScriptCmdlet.cs new file mode 100644 index 000000000000..ae9fd1b29fa5 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Cmdlets/GetScriptCmdlet.cs @@ -0,0 +1,54 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + [Cmdlet(VerbsCommon.Get, "ScriptCmdlet")] + [OutputType(typeof(string[]))] + [DoNotExport] + public class GetScriptCmdlet : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ScriptFolder { get; set; } + + [Parameter] + public SwitchParameter IncludeDoNotExport { get; set; } + + [Parameter] + public SwitchParameter AsAlias { get; set; } + + [Parameter] + public SwitchParameter AsFunctionInfo { get; set; } + + protected override void ProcessRecord() + { + try + { + var functionInfos = GetScriptCmdlets(this, ScriptFolder) + .Where(fi => IncludeDoNotExport || !fi.ScriptBlock.Attributes.OfType().Any()) + .ToArray(); + if (AsFunctionInfo) + { + WriteObject(functionInfos, true); + return; + } + var aliases = functionInfos.SelectMany(i => i.ScriptBlock.Attributes).ToAliasNames(); + var names = functionInfos.Select(fi => fi.Name).Distinct(); + var output = (AsAlias ? aliases : names).DefaultIfEmpty("''").ToArray(); + WriteObject(output, true); + } + catch (System.Exception ee) + { + System.Console.Error.WriteLine($"{ee.GetType().Name}: {ee.Message}"); + System.Console.Error.WriteLine(ee.StackTrace); + throw ee; + } + } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/CollectionExtensions.cs b/swaggerci/app/generated/runtime/BuildTime/CollectionExtensions.cs new file mode 100644 index 000000000000..1c9d559b1add --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/CollectionExtensions.cs @@ -0,0 +1,20 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + internal static class CollectionExtensions + { + public static T[] NullIfEmpty(this T[] collection) => (collection?.Any() ?? false) ? collection : null; + public static IEnumerable EmptyIfNull(this IEnumerable collection) => collection ?? Enumerable.Empty(); + + // https://stackoverflow.com/a/4158364/294804 + public static IEnumerable DistinctBy(this IEnumerable collection, Func selector) => + collection.GroupBy(selector).Select(group => group.First()); + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/MarkdownRenderer.cs b/swaggerci/app/generated/runtime/BuildTime/MarkdownRenderer.cs new file mode 100644 index 000000000000..eeb591e56e41 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/MarkdownRenderer.cs @@ -0,0 +1,114 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.MarkdownTypesExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsProxyOutputExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + internal static class MarkdownRenderer + { + public static void WriteMarkdowns(IEnumerable variantGroups, PsModuleHelpInfo moduleHelpInfo, string docsFolder, string examplesFolder) + { + Directory.CreateDirectory(docsFolder); + var markdownInfos = variantGroups.Where(vg => !vg.IsInternal).Select(vg => new MarkdownHelpInfo(vg, examplesFolder)).OrderBy(mhi => mhi.CmdletName).ToArray(); + + foreach (var markdownInfo in markdownInfos) + { + var sb = new StringBuilder(); + sb.Append(markdownInfo.ToHelpMetadataOutput()); + sb.Append($"# {markdownInfo.CmdletName}{Environment.NewLine}{Environment.NewLine}"); + sb.Append($"## SYNOPSIS{Environment.NewLine}{markdownInfo.Synopsis.ToDescriptionFormat()}{Environment.NewLine}{Environment.NewLine}"); + + sb.Append($"## SYNTAX{Environment.NewLine}{Environment.NewLine}"); + var hasMultipleParameterSets = markdownInfo.SyntaxInfos.Length > 1; + foreach (var syntaxInfo in markdownInfo.SyntaxInfos) + { + sb.Append(syntaxInfo.ToHelpSyntaxOutput(hasMultipleParameterSets)); + } + + sb.Append($"## DESCRIPTION{Environment.NewLine}{markdownInfo.Description.ToDescriptionFormat()}{Environment.NewLine}{Environment.NewLine}"); + + sb.Append($"## EXAMPLES{Environment.NewLine}{Environment.NewLine}"); + foreach (var exampleInfo in markdownInfo.Examples) + { + sb.Append(exampleInfo.ToHelpExampleOutput()); + } + + sb.Append($"## PARAMETERS{Environment.NewLine}{Environment.NewLine}"); + foreach (var parameter in markdownInfo.Parameters) + { + sb.Append(parameter.ToHelpParameterOutput()); + } + if (markdownInfo.SupportsShouldProcess) + { + foreach (var parameter in SupportsShouldProcessParameters) + { + sb.Append(parameter.ToHelpParameterOutput()); + } + } + + sb.Append($"### CommonParameters{Environment.NewLine}This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).{Environment.NewLine}{Environment.NewLine}"); + + sb.Append($"## INPUTS{Environment.NewLine}{Environment.NewLine}"); + foreach (var input in markdownInfo.Inputs) + { + sb.Append($"### {input}{Environment.NewLine}{Environment.NewLine}"); + } + + sb.Append($"## OUTPUTS{Environment.NewLine}{Environment.NewLine}"); + foreach (var output in markdownInfo.Outputs) + { + sb.Append($"### {output}{Environment.NewLine}{Environment.NewLine}"); + } + + sb.Append($"## NOTES{Environment.NewLine}{Environment.NewLine}"); + sb.Append($"ALIASES{Environment.NewLine}{Environment.NewLine}"); + foreach (var alias in markdownInfo.Aliases) + { + sb.Append($"{alias}{Environment.NewLine}{Environment.NewLine}"); + } + if (markdownInfo.ComplexInterfaceInfos.Any()) + { + sb.Append($"{ComplexParameterHeader}{Environment.NewLine}"); + } + foreach (var complexInterfaceInfo in markdownInfo.ComplexInterfaceInfos) + { + sb.Append($"{complexInterfaceInfo.ToNoteOutput(includeDashes: true, includeBackticks: true)}{Environment.NewLine}{Environment.NewLine}"); + } + + sb.Append($"## RELATED LINKS{Environment.NewLine}{Environment.NewLine}"); + foreach (var relatedLink in markdownInfo.RelatedLinks) + { + sb.Append($"{relatedLink}{Environment.NewLine}{Environment.NewLine}"); + } + + File.WriteAllText(Path.Combine(docsFolder, $"{markdownInfo.CmdletName}.md"), sb.ToString()); + } + + WriteModulePage(moduleHelpInfo, markdownInfos, docsFolder); + } + + private static void WriteModulePage(PsModuleHelpInfo moduleInfo, MarkdownHelpInfo[] markdownInfos, string docsFolder) + { + var sb = new StringBuilder(); + sb.Append(moduleInfo.ToModulePageMetadataOutput()); + sb.Append($"# {moduleInfo.Name} Module{Environment.NewLine}"); + sb.Append($"## Description{Environment.NewLine}{moduleInfo.Description.ToDescriptionFormat()}{Environment.NewLine}{Environment.NewLine}"); + + sb.Append($"## {moduleInfo.Name} Cmdlets{Environment.NewLine}"); + foreach (var markdownInfo in markdownInfos) + { + sb.Append(markdownInfo.ToModulePageCmdletOutput()); + } + + File.WriteAllText(Path.Combine(docsFolder, $"{moduleInfo.Name}.md"), sb.ToString()); + } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Models/PsFormatTypes.cs b/swaggerci/app/generated/runtime/BuildTime/Models/PsFormatTypes.cs new file mode 100644 index 000000000000..192882cbfd81 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Models/PsFormatTypes.cs @@ -0,0 +1,138 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Xml.Serialization; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + internal class ViewParameters + { + public Type Type { get; } + public IEnumerable Properties { get; } + + public ViewParameters(Type type, IEnumerable properties) + { + Type = type; + Properties = properties; + } + } + + internal class PropertyFormat + { + public PropertyInfo Property { get; } + public FormatTableAttribute FormatTable { get; } + + public int? Index { get; } + public string Label { get; } + public int? Width { get; } + public PropertyOrigin? Origin { get; } + + public PropertyFormat(PropertyInfo propertyInfo) + { + Property = propertyInfo; + FormatTable = Property.GetCustomAttributes().FirstOrDefault(); + var origin = Property.GetCustomAttributes().FirstOrDefault(); + + Index = FormatTable?.HasIndex ?? false ? (int?)FormatTable.Index : null; + Label = FormatTable?.Label ?? propertyInfo.Name; + Width = FormatTable?.HasWidth ?? false ? (int?)FormatTable.Width : null; + // If we have an index, we don't want to use Origin. + Origin = FormatTable?.HasIndex ?? false ? null : origin?.Origin; + } + } + + [Serializable] + [XmlRoot(nameof(Configuration))] + public class Configuration + { + [XmlElement("ViewDefinitions")] + public ViewDefinitions ViewDefinitions { get; set; } + } + + [Serializable] + public class ViewDefinitions + { + //https://stackoverflow.com/a/10518657/294804 + [XmlElement("View")] + public List Views { get; set; } + } + + [Serializable] + public class View + { + [XmlElement(nameof(Name))] + public string Name { get; set; } + [XmlElement(nameof(ViewSelectedBy))] + public ViewSelectedBy ViewSelectedBy { get; set; } + [XmlElement(nameof(TableControl))] + public TableControl TableControl { get; set; } + } + + [Serializable] + public class ViewSelectedBy + { + [XmlElement(nameof(TypeName))] + public string TypeName { get; set; } + } + + [Serializable] + public class TableControl + { + [XmlElement(nameof(TableHeaders))] + public TableHeaders TableHeaders { get; set; } + [XmlElement(nameof(TableRowEntries))] + public TableRowEntries TableRowEntries { get; set; } + } + + [Serializable] + public class TableHeaders + { + [XmlElement("TableColumnHeader")] + public List TableColumnHeaders { get; set; } + } + + [Serializable] + public class TableColumnHeader + { + [XmlElement(nameof(Label))] + public string Label { get; set; } + [XmlElement(nameof(Width))] + public int? Width { get; set; } + + //https://stackoverflow.com/a/4095225/294804 + public bool ShouldSerializeWidth() => Width.HasValue; + } + + [Serializable] + public class TableRowEntries + { + [XmlElement(nameof(TableRowEntry))] + public TableRowEntry TableRowEntry { get; set; } + } + + [Serializable] + public class TableRowEntry + { + [XmlElement(nameof(TableColumnItems))] + public TableColumnItems TableColumnItems { get; set; } + } + + [Serializable] + public class TableColumnItems + { + [XmlElement("TableColumnItem")] + public List TableItems { get; set; } + } + + [Serializable] + public class TableColumnItem + { + [XmlElement(nameof(PropertyName))] + public string PropertyName { get; set; } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Models/PsHelpMarkdownOutputs.cs b/swaggerci/app/generated/runtime/BuildTime/Models/PsHelpMarkdownOutputs.cs new file mode 100644 index 000000000000..437c51dec5d3 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Models/PsHelpMarkdownOutputs.cs @@ -0,0 +1,199 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsHelpOutputExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + internal class HelpMetadataOutput + { + public MarkdownHelpInfo HelpInfo { get; } + + public HelpMetadataOutput(MarkdownHelpInfo helpInfo) + { + HelpInfo = helpInfo; + } + + public override string ToString() => $@"--- +external help file:{(!String.IsNullOrEmpty(HelpInfo.ExternalHelpFilename) ? $" {HelpInfo.ExternalHelpFilename}" : String.Empty)} +Module Name: {HelpInfo.ModuleName} +online version: {HelpInfo.OnlineVersion} +schema: {HelpInfo.Schema.ToString(3)} +--- + +"; + } + + internal class HelpSyntaxOutput + { + public MarkdownSyntaxHelpInfo SyntaxInfo { get; } + public bool HasMultipleParameterSets { get; } + + public HelpSyntaxOutput(MarkdownSyntaxHelpInfo syntaxInfo, bool hasMultipleParameterSets) + { + SyntaxInfo = syntaxInfo; + HasMultipleParameterSets = hasMultipleParameterSets; + } + + public override string ToString() + { + var psnText = HasMultipleParameterSets ? $"### {SyntaxInfo.ParameterSetName}{(SyntaxInfo.IsDefault ? " (Default)" : String.Empty)}{Environment.NewLine}" : String.Empty; + return $@"{psnText}``` +{SyntaxInfo.SyntaxText} +``` + +"; + } + } + + internal class HelpExampleOutput + { + private string ExampleTemplate = + "{0}{1}" + Environment.NewLine + + "{2}" + Environment.NewLine + "{3}" + Environment.NewLine + "{4}" + Environment.NewLine + Environment.NewLine + + "{5}" + Environment.NewLine + Environment.NewLine; + + private string ExampleTemplateWithOutput = + "{0}{1}" + Environment.NewLine + + "{2}" + Environment.NewLine + "{3}" + Environment.NewLine + "{4}" + Environment.NewLine + Environment.NewLine + + "{5}" + Environment.NewLine + "{6}" + Environment.NewLine + "{7}" + Environment.NewLine + Environment.NewLine + + "{8}" + Environment.NewLine + Environment.NewLine; + + public MarkdownExampleHelpInfo ExampleInfo { get; } + + public HelpExampleOutput(MarkdownExampleHelpInfo exampleInfo) + { + ExampleInfo = exampleInfo; + } + + public override string ToString() + { + if (string.IsNullOrEmpty(ExampleInfo.Output)) + { + return string.Format(ExampleTemplate, + ExampleNameHeader, ExampleInfo.Name, + ExampleCodeHeader, ExampleInfo.Code, ExampleCodeFooter, + ExampleInfo.Description.ToDescriptionFormat()); + } + else + { + return string.Format(ExampleTemplateWithOutput, + ExampleNameHeader, ExampleInfo.Name, + ExampleCodeHeader, ExampleInfo.Code, ExampleCodeFooter, + ExampleOutputHeader, ExampleInfo.Output, ExampleOutputFooter, + ExampleInfo.Description.ToDescriptionFormat()); ; + } + } + } + + internal class HelpParameterOutput + { + public MarkdownParameterHelpInfo ParameterInfo { get; } + + public HelpParameterOutput(MarkdownParameterHelpInfo parameterInfo) + { + ParameterInfo = parameterInfo; + } + + public override string ToString() + { + var pipelineInputTypes = new[] + { + ParameterInfo.AcceptsPipelineByValue ? "ByValue" : String.Empty, + ParameterInfo.AcceptsPipelineByPropertyName ? "ByPropertyName" : String.Empty + }.JoinIgnoreEmpty(", "); + var pipelineInput = ParameterInfo.AcceptsPipelineByValue || ParameterInfo.AcceptsPipelineByPropertyName + ? $@"{true} ({pipelineInputTypes})" + : false.ToString(); + + return $@"### -{ParameterInfo.Name} +{ParameterInfo.Description.ToDescriptionFormat()} + +```yaml +Type: {ParameterInfo.Type.FullName} +Parameter Sets: {(ParameterInfo.HasAllParameterSets ? "(All)" : ParameterInfo.ParameterSetNames.JoinIgnoreEmpty(", "))} +Aliases:{(ParameterInfo.Aliases.Any() ? $" {ParameterInfo.Aliases.JoinIgnoreEmpty(", ")}" : String.Empty)} + +Required: {ParameterInfo.IsRequired} +Position: {ParameterInfo.Position} +Default value: {ParameterInfo.DefaultValue} +Accept pipeline input: {pipelineInput} +Accept wildcard characters: {ParameterInfo.AcceptsWildcardCharacters} +``` + +"; + } + } + + internal class ModulePageMetadataOutput + { + public PsModuleHelpInfo ModuleInfo { get; } + + private static string HelpLinkPrefix { get; } = @"https://docs.microsoft.com/en-us/powershell/module/"; + + public ModulePageMetadataOutput(PsModuleHelpInfo moduleInfo) + { + ModuleInfo = moduleInfo; + } + + public override string ToString() => $@"--- +Module Name: {ModuleInfo.Name} +Module Guid: {ModuleInfo.Guid} +Download Help Link: {HelpLinkPrefix}{ModuleInfo.Name.ToLowerInvariant()} +Help Version: 1.0.0.0 +Locale: en-US +--- + +"; + } + + internal class ModulePageCmdletOutput + { + public MarkdownHelpInfo HelpInfo { get; } + + public ModulePageCmdletOutput(MarkdownHelpInfo helpInfo) + { + HelpInfo = helpInfo; + } + + public override string ToString() => $@"### [{HelpInfo.CmdletName}]({HelpInfo.CmdletName}.md) +{HelpInfo.Synopsis.ToDescriptionFormat()} + +"; + } + + internal static class PsHelpOutputExtensions + { + public static string EscapeAngleBrackets(this string text) => text?.Replace("<", @"\<").Replace(">", @"\>"); + public static string ReplaceSentenceEndWithNewline(this string text) => text?.Replace(". ", $".{Environment.NewLine}").Replace(". ", $".{Environment.NewLine}"); + public static string ReplaceBrWithNewline(this string text) => text?.Replace("
", $"{Environment.NewLine}"); + public static string ToDescriptionFormat(this string text, bool escapeAngleBrackets = true) + { + var description = text?.ReplaceBrWithNewline(); + description = escapeAngleBrackets ? description?.EscapeAngleBrackets() : description; + return description?.ReplaceSentenceEndWithNewline().Trim(); + } + + public const string ExampleNameHeader = "### "; + public const string ExampleCodeHeader = "```powershell"; + public const string ExampleCodeFooter = "```"; + public const string ExampleOutputHeader = "```output"; + public const string ExampleOutputFooter = "```"; + + public static HelpMetadataOutput ToHelpMetadataOutput(this MarkdownHelpInfo helpInfo) => new HelpMetadataOutput(helpInfo); + + public static HelpSyntaxOutput ToHelpSyntaxOutput(this MarkdownSyntaxHelpInfo syntaxInfo, bool hasMultipleParameterSets) => new HelpSyntaxOutput(syntaxInfo, hasMultipleParameterSets); + + public static HelpExampleOutput ToHelpExampleOutput(this MarkdownExampleHelpInfo exampleInfo) => new HelpExampleOutput(exampleInfo); + + public static HelpParameterOutput ToHelpParameterOutput(this MarkdownParameterHelpInfo parameterInfo) => new HelpParameterOutput(parameterInfo); + + public static ModulePageMetadataOutput ToModulePageMetadataOutput(this PsModuleHelpInfo moduleInfo) => new ModulePageMetadataOutput(moduleInfo); + + public static ModulePageCmdletOutput ToModulePageCmdletOutput(this MarkdownHelpInfo helpInfo) => new ModulePageCmdletOutput(helpInfo); + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Models/PsHelpTypes.cs b/swaggerci/app/generated/runtime/BuildTime/Models/PsHelpTypes.cs new file mode 100644 index 000000000000..46297f336ad2 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Models/PsHelpTypes.cs @@ -0,0 +1,202 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + internal class PsHelpInfo + { + public string CmdletName { get; } + public string ModuleName { get; } + public string Synopsis { get; } + public string Description { get; } + public string AlertText { get; } + public string Category { get; } + public PsHelpLinkInfo OnlineVersion { get; } + public PsHelpLinkInfo[] RelatedLinks { get; } + public bool? HasCommonParameters { get; } + public bool? HasWorkflowCommonParameters { get; } + + public PsHelpTypeInfo[] InputTypes { get; } + public PsHelpTypeInfo[] OutputTypes { get; } + public PsHelpExampleInfo[] Examples { get; set; } + public string[] Aliases { get; } + + public PsParameterHelpInfo[] Parameters { get; } + public PsHelpSyntaxInfo[] Syntax { get; } + + public object Component { get; } + public object Functionality { get; } + public object PsSnapIn { get; } + public object Role { get; } + public string NonTerminatingErrors { get; } + + public PsHelpInfo(PSObject helpObject = null) + { + helpObject = helpObject ?? new PSObject(); + CmdletName = helpObject.GetProperty("Name").NullIfEmpty() ?? helpObject.GetNestedProperty("details", "name"); + ModuleName = helpObject.GetProperty("ModuleName"); + Synopsis = helpObject.GetProperty("Synopsis"); + Description = helpObject.GetProperty("description").EmptyIfNull().ToDescriptionText().NullIfEmpty() ?? + helpObject.GetNestedProperty("details", "description").EmptyIfNull().ToDescriptionText(); + AlertText = helpObject.GetNestedProperty("alertSet", "alert").EmptyIfNull().ToDescriptionText(); + Category = helpObject.GetProperty("Category"); + HasCommonParameters = helpObject.GetProperty("CommonParameters").ToNullableBool(); + HasWorkflowCommonParameters = helpObject.GetProperty("WorkflowCommonParameters").ToNullableBool(); + + var links = helpObject.GetNestedProperty("relatedLinks", "navigationLink").EmptyIfNull().Select(nl => nl.ToLinkInfo()).ToArray(); + OnlineVersion = links.FirstOrDefault(l => l.Text?.ToLowerInvariant().StartsWith("online version:") ?? links.Length == 1); + RelatedLinks = links.Where(l => !l.Text?.ToLowerInvariant().StartsWith("online version:") ?? links.Length != 1).ToArray(); + + InputTypes = helpObject.GetNestedProperty("inputTypes", "inputType").EmptyIfNull().Select(it => it.ToTypeInfo()).ToArray(); + OutputTypes = helpObject.GetNestedProperty("returnValues", "returnValue").EmptyIfNull().Select(rv => rv.ToTypeInfo()).ToArray(); + Examples = helpObject.GetNestedProperty("examples", "example").EmptyIfNull().Select(e => e.ToExampleInfo()).ToArray(); + Aliases = helpObject.GetProperty("aliases").EmptyIfNull().Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); + + Parameters = helpObject.GetNestedProperty("parameters", "parameter").EmptyIfNull().Select(p => p.ToPsParameterHelpInfo()).ToArray(); + Syntax = helpObject.GetNestedProperty("syntax", "syntaxItem").EmptyIfNull().Select(si => si.ToSyntaxInfo()).ToArray(); + + Component = helpObject.GetProperty("Component"); + Functionality = helpObject.GetProperty("Functionality"); + PsSnapIn = helpObject.GetProperty("PSSnapIn"); + Role = helpObject.GetProperty("Role"); + NonTerminatingErrors = helpObject.GetProperty("nonTerminatingErrors"); + } + } + + internal class PsHelpTypeInfo + { + public string Name { get; } + public string Description { get; } + + public PsHelpTypeInfo(PSObject typeObject) + { + Name = typeObject.GetNestedProperty("type", "name").EmptyIfNull().Trim(); + Description = typeObject.GetProperty("description").EmptyIfNull().ToDescriptionText(); + } + } + + internal class PsHelpLinkInfo + { + public string Uri { get; } + public string Text { get; } + + public PsHelpLinkInfo(PSObject linkObject) + { + Uri = linkObject.GetProperty("uri"); + Text = linkObject.GetProperty("linkText"); + } + } + + internal class PsHelpSyntaxInfo + { + public string CmdletName { get; } + public PsParameterHelpInfo[] Parameters { get; } + + public PsHelpSyntaxInfo(PSObject syntaxObject) + { + CmdletName = syntaxObject.GetProperty("name"); + Parameters = syntaxObject.GetProperty("parameter").EmptyIfNull().Select(p => p.ToPsParameterHelpInfo()).ToArray(); + } + } + + internal class PsHelpExampleInfo + { + public string Title { get; } + public string Code { get; } + public string Output { get; } + public string Remarks { get; } + + public PsHelpExampleInfo(PSObject exampleObject) + { + Title = exampleObject.GetProperty("title"); + Code = exampleObject.GetProperty("code"); + Output = exampleObject.GetProperty("output"); + Remarks = exampleObject.GetProperty("remarks").EmptyIfNull().ToDescriptionText(); + } + public PsHelpExampleInfo(MarkdownExampleHelpInfo markdownExample) + { + Title = markdownExample.Name; + Code = markdownExample.Code; + Output = markdownExample.Output; + Remarks = markdownExample.Description; + } + + public static implicit operator PsHelpExampleInfo(MarkdownExampleHelpInfo markdownExample) => new PsHelpExampleInfo(markdownExample); + } + + internal class PsParameterHelpInfo + { + public string DefaultValueAsString { get; } + + public string Name { get; } + public string TypeName { get; } + public string Description { get; } + public string SupportsPipelineInput { get; } + public string PositionText { get; } + public string[] ParameterSetNames { get; } + public string[] Aliases { get; } + + public bool? SupportsGlobbing { get; } + public bool? IsRequired { get; } + public bool? IsVariableLength { get; } + public bool? IsDynamic { get; } + + public PsParameterHelpInfo(PSObject parameterHelpObject = null) + { + parameterHelpObject = parameterHelpObject ?? new PSObject(); + DefaultValueAsString = parameterHelpObject.GetProperty("defaultValue"); + Name = parameterHelpObject.GetProperty("name"); + TypeName = parameterHelpObject.GetProperty("parameterValue").NullIfEmpty() ?? parameterHelpObject.GetNestedProperty("type", "name"); + Description = parameterHelpObject.GetProperty("Description").EmptyIfNull().ToDescriptionText(); + SupportsPipelineInput = parameterHelpObject.GetProperty("pipelineInput"); + PositionText = parameterHelpObject.GetProperty("position"); + ParameterSetNames = parameterHelpObject.GetProperty("parameterSetName").EmptyIfNull().Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries); + Aliases = parameterHelpObject.GetProperty("aliases").EmptyIfNull().Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries); + + SupportsGlobbing = parameterHelpObject.GetProperty("globbing").ToNullableBool(); + IsRequired = parameterHelpObject.GetProperty("required").ToNullableBool(); + IsVariableLength = parameterHelpObject.GetProperty("variableLength").ToNullableBool(); + IsDynamic = parameterHelpObject.GetProperty("isDynamic").ToNullableBool(); + } + } + + internal class PsModuleHelpInfo + { + public string Name { get; } + public Guid Guid { get; } + public string Description { get; } + + public PsModuleHelpInfo(PSModuleInfo moduleInfo) + : this(moduleInfo?.Name ?? String.Empty, moduleInfo?.Guid ?? Guid.NewGuid(), moduleInfo?.Description ?? String.Empty) + { + } + + public PsModuleHelpInfo(string name, Guid guid, string description) + { + Name = name; + Guid = guid; + Description = description; + } + } + + internal static class HelpTypesExtensions + { + public static PsHelpInfo ToPsHelpInfo(this PSObject helpObject) => new PsHelpInfo(helpObject); + public static PsParameterHelpInfo ToPsParameterHelpInfo(this PSObject parameterHelpObject) => new PsParameterHelpInfo(parameterHelpObject); + + public static string ToDescriptionText(this IEnumerable descriptionObject) => descriptionObject != null + ? String.Join(Environment.NewLine, descriptionObject.Select(dl => dl.GetProperty("Text").EmptyIfNull())).NullIfWhiteSpace() + : null; + public static PsHelpTypeInfo ToTypeInfo(this PSObject typeObject) => new PsHelpTypeInfo(typeObject); + public static PsHelpExampleInfo ToExampleInfo(this PSObject exampleObject) => new PsHelpExampleInfo(exampleObject); + public static PsHelpLinkInfo ToLinkInfo(this PSObject linkObject) => new PsHelpLinkInfo(linkObject); + public static PsHelpSyntaxInfo ToSyntaxInfo(this PSObject syntaxObject) => new PsHelpSyntaxInfo(syntaxObject); + public static PsModuleHelpInfo ToModuleInfo(this PSModuleInfo moduleInfo) => new PsModuleHelpInfo(moduleInfo); + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Models/PsMarkdownTypes.cs b/swaggerci/app/generated/runtime/BuildTime/Models/PsMarkdownTypes.cs new file mode 100644 index 000000000000..26f6766ba30c --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Models/PsMarkdownTypes.cs @@ -0,0 +1,294 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.MarkdownTypesExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsHelpOutputExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + internal class MarkdownHelpInfo + { + public string ExternalHelpFilename { get; } + public string ModuleName { get; } + public string OnlineVersion { get; } + public Version Schema { get; } + + public string CmdletName { get; } + public string[] Aliases { get; } + public string Synopsis { get; } + public string Description { get; } + + public MarkdownSyntaxHelpInfo[] SyntaxInfos { get; } + public MarkdownExampleHelpInfo[] Examples { get; } + public MarkdownParameterHelpInfo[] Parameters { get; } + + public string[] Inputs { get; } + public string[] Outputs { get; } + public ComplexInterfaceInfo[] ComplexInterfaceInfos { get; } + public string[] RelatedLinks { get; } + + public bool SupportsShouldProcess { get; } + public bool SupportsPaging { get; } + + public MarkdownHelpInfo(VariantGroup variantGroup, string examplesFolder, string externalHelpFilename = "") + { + ExternalHelpFilename = externalHelpFilename; + ModuleName = variantGroup.RootModuleName != "" ? variantGroup.RootModuleName : variantGroup.ModuleName; + var helpInfo = variantGroup.HelpInfo; + var commentInfo = variantGroup.CommentInfo; + Schema = Version.Parse("2.0.0"); + + CmdletName = variantGroup.CmdletName; + Aliases = (variantGroup.Aliases.NullIfEmpty() ?? helpInfo.Aliases).Where(a => a != "None").ToArray(); + Synopsis = commentInfo.Synopsis; + Description = commentInfo.Description; + + SyntaxInfos = variantGroup.Variants + .Select(v => new MarkdownSyntaxHelpInfo(v, variantGroup.ParameterGroups, v.VariantName == variantGroup.DefaultParameterSetName)) + .OrderByDescending(v => v.IsDefault).ThenBy(v => v.ParameterSetName).ToArray(); + Examples = GetExamplesFromMarkdown(examplesFolder).NullIfEmpty() + ?? helpInfo.Examples.Select(e => e.ToExampleHelpInfo()).ToArray().NullIfEmpty() + ?? DefaultExampleHelpInfos; + + Parameters = variantGroup.ParameterGroups + .Where(pg => !pg.DontShow && !pg.Parameters.All(p => p.IsHidden())) + .Select(pg => new MarkdownParameterHelpInfo( + variantGroup.Variants.SelectMany(v => v.HelpInfo.Parameters).Where(phi => phi.Name == pg.ParameterName).ToArray(), pg)) + .OrderBy(phi => phi.Name).ToArray(); + + Inputs = commentInfo.Inputs; + Outputs = commentInfo.Outputs; + + ComplexInterfaceInfos = variantGroup.ComplexInterfaceInfos; + OnlineVersion = commentInfo.OnlineVersion; + RelatedLinks = commentInfo.RelatedLinks; + + SupportsShouldProcess = variantGroup.SupportsShouldProcess; + SupportsPaging = variantGroup.SupportsPaging; + } + + private MarkdownExampleHelpInfo[] GetExamplesFromMarkdown(string examplesFolder) + { + var filePath = Path.Combine(examplesFolder, $"{CmdletName}.md"); + if (!Directory.Exists(examplesFolder) || !File.Exists(filePath)) return null; + + var lines = File.ReadAllLines(filePath); + var nameIndices = lines.Select((l, i) => l.StartsWith(ExampleNameHeader) ? i : -1).Where(i => i != -1).ToArray(); + //https://codereview.stackexchange.com/a/187148/68772 + var indexCountGroups = nameIndices.Skip(1).Append(lines.Length).Zip(nameIndices, (next, current) => (NameIndex: current, LineCount: next - current)); + var exampleGroups = indexCountGroups.Select(icg => lines.Skip(icg.NameIndex).Take(icg.LineCount).ToArray()); + return exampleGroups.Select(eg => + { + var name = eg.First().Replace(ExampleNameHeader, String.Empty); + var codeStartIndex = eg.Select((l, i) => l.StartsWith(ExampleCodeHeader) ? (int?)i : null).FirstOrDefault(i => i.HasValue); + var codeEndIndex = eg.Select((l, i) => l.StartsWith(ExampleCodeFooter) ? (int?)i : null).FirstOrDefault(i => i.HasValue && i != codeStartIndex); + var code = codeStartIndex.HasValue && codeEndIndex.HasValue + ? String.Join(Environment.NewLine, eg.Skip(codeStartIndex.Value + 1).Take(codeEndIndex.Value - (codeStartIndex.Value + 1))) + : String.Empty; + var outputStartIndex = eg.Select((l, i) => l.StartsWith(ExampleOutputHeader) ? (int?)i : null).FirstOrDefault(i => i.HasValue); + var outputEndIndex = eg.Select((l, i) => l.StartsWith(ExampleOutputFooter) ? (int?)i : null).FirstOrDefault(i => i.HasValue && i > outputStartIndex); + var output = outputStartIndex.HasValue && outputEndIndex.HasValue + ? String.Join(Environment.NewLine, eg.Skip(outputStartIndex.Value + 1).Take(outputEndIndex.Value - (outputStartIndex.Value + 1))) + : String.Empty; + var descriptionStartIndex = (outputEndIndex ?? (codeEndIndex ?? 0)) + 1; + descriptionStartIndex = String.IsNullOrWhiteSpace(eg[descriptionStartIndex]) ? descriptionStartIndex + 1 : descriptionStartIndex; + var descriptionEndIndex = eg.Length - 1; + descriptionEndIndex = String.IsNullOrWhiteSpace(eg[descriptionEndIndex]) ? descriptionEndIndex - 1 : descriptionEndIndex; + var description = String.Join(Environment.NewLine, eg.Skip(descriptionStartIndex).Take((descriptionEndIndex + 1) - descriptionStartIndex)); + return new MarkdownExampleHelpInfo(name, code, output, description); + }).ToArray(); + } + } + + internal class MarkdownSyntaxHelpInfo + { + public Variant Variant { get; } + public bool IsDefault { get; } + public string ParameterSetName { get; } + public Parameter[] Parameters { get; } + public string SyntaxText { get; } + + public MarkdownSyntaxHelpInfo(Variant variant, ParameterGroup[] parameterGroups, bool isDefault) + { + Variant = variant; + IsDefault = isDefault; + ParameterSetName = Variant.VariantName; + Parameters = Variant.Parameters + .Where(p => !p.DontShow && !p.IsHidden()).OrderByDescending(p => p.IsMandatory) + //https://stackoverflow.com/a/6461526/294804 + .ThenByDescending(p => p.Position.HasValue).ThenBy(p => p.Position) + // Use the OrderCategory of the parameter group because the final order category is the highest of the group, and not the order category of the individual parameters from the variants. + .ThenBy(p => parameterGroups.First(pg => pg.ParameterName == p.ParameterName).OrderCategory).ThenBy(p => p.ParameterName).ToArray(); + SyntaxText = CreateSyntaxFormat(); + } + + //https://github.com/PowerShell/platyPS/blob/a607a926bfffe1e1a1e53c19e0057eddd0c07611/src/Markdown.MAML/Renderer/Markdownv2Renderer.cs#L29-L32 + private const int SyntaxLineWidth = 110; + private string CreateSyntaxFormat() + { + var parameterStrings = Parameters.Select(p => p.ToPropertySyntaxOutput().ToString()); + if (Variant.SupportsShouldProcess) + { + parameterStrings = parameterStrings.Append(" [-Confirm]").Append(" [-WhatIf]"); + } + parameterStrings = parameterStrings.Append(" []"); + + var lines = new List(20); + return parameterStrings.Aggregate(Variant.CmdletName, (current, ps) => + { + var combined = current + ps; + if (combined.Length <= SyntaxLineWidth) return combined; + + lines.Add(current); + return ps; + }, last => + { + lines.Add(last); + return String.Join(Environment.NewLine, lines); + }); + } + } + + internal class MarkdownExampleHelpInfo + { + public string Name { get; } + public string Code { get; } + public string Output { get; } + public string Description { get; } + + public MarkdownExampleHelpInfo(string name, string code, string output, string description) + { + Name = name; + Code = code; + Output = output; + Description = description; + } + } + + internal class MarkdownParameterHelpInfo + { + public string Name { get; set; } + public string Description { get; set; } + public Type Type { get; set; } + public string Position { get; set; } + public string DefaultValue { get; set; } + + public bool HasAllParameterSets { get; set; } + public string[] ParameterSetNames { get; set; } + public string[] Aliases { get; set; } + + public bool IsRequired { get; set; } + public bool IsDynamic { get; set; } + public bool AcceptsPipelineByValue { get; set; } + public bool AcceptsPipelineByPropertyName { get; set; } + public bool AcceptsWildcardCharacters { get; set; } + + // For use by common parameters that have no backing data in the objects themselves. + public MarkdownParameterHelpInfo() { } + + public MarkdownParameterHelpInfo(PsParameterHelpInfo[] parameterHelpInfos, ParameterGroup parameterGroup) + { + Name = parameterGroup.ParameterName; + Description = parameterGroup.Description.NullIfEmpty() + ?? parameterHelpInfos.Select(phi => phi.Description).FirstOrDefault(d => !String.IsNullOrEmpty(d)).EmptyIfNull(); + Type = parameterGroup.ParameterType; + Position = parameterGroup.FirstPosition?.ToString() + ?? parameterHelpInfos.Select(phi => phi.PositionText).FirstOrDefault(d => !String.IsNullOrEmpty(d)).ToUpperFirstCharacter().NullIfEmpty() + ?? "Named"; + // This no longer uses firstHelpInfo.DefaultValueAsString since it seems to be broken. For example, it has a value of 0 for Int32, but no default value was declared. + DefaultValue = parameterGroup.DefaultInfo?.Script ?? "None"; + + HasAllParameterSets = parameterGroup.HasAllVariants; + ParameterSetNames = (parameterGroup.Parameters.Select(p => p.VariantName).ToArray().NullIfEmpty() + ?? parameterHelpInfos.SelectMany(phi => phi.ParameterSetNames).Distinct()) + .OrderBy(psn => psn).ToArray(); + Aliases = parameterGroup.Aliases.NullIfEmpty() ?? parameterHelpInfos.SelectMany(phi => phi.Aliases).ToArray(); + + IsRequired = parameterHelpInfos.Select(phi => phi.IsRequired).FirstOrDefault(r => r == true) ?? parameterGroup.Parameters.Any(p => p.IsMandatory); + IsDynamic = parameterHelpInfos.Select(phi => phi.IsDynamic).FirstOrDefault(d => d == true) ?? false; + AcceptsPipelineByValue = parameterHelpInfos.Select(phi => phi.SupportsPipelineInput?.Contains("ByValue")).FirstOrDefault(bv => bv == true) ?? parameterGroup.ValueFromPipeline; + AcceptsPipelineByPropertyName = parameterHelpInfos.Select(phi => phi.SupportsPipelineInput?.Contains("ByPropertyName")).FirstOrDefault(bv => bv == true) ?? parameterGroup.ValueFromPipelineByPropertyName; + AcceptsWildcardCharacters = parameterGroup.SupportsWildcards; + } + } + + internal static class MarkdownTypesExtensions + { + public static MarkdownExampleHelpInfo ToExampleHelpInfo(this PsHelpExampleInfo exampleInfo) => new MarkdownExampleHelpInfo(exampleInfo.Title, exampleInfo.Code, exampleInfo.Output, exampleInfo.Remarks); + + public static MarkdownExampleHelpInfo[] DefaultExampleHelpInfos = + { + new MarkdownExampleHelpInfo("Example 1: {{ Add title here }}", $@"{{{{ Add code here }}}}", $@"{{{{ Add output here }}}}", @"{{ Add description here }}"), + new MarkdownExampleHelpInfo("Example 2: {{ Add title here }}", $@"{{{{ Add code here }}}}", $@"{{{{ Add output here }}}}", @"{{ Add description here }}"), + }; + + public static MarkdownParameterHelpInfo[] SupportsShouldProcessParameters = + { + new MarkdownParameterHelpInfo + { + Name = "Confirm", + Description ="Prompts you for confirmation before running the cmdlet.", + Type = typeof(SwitchParameter), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new [] { "cf" } + }, + new MarkdownParameterHelpInfo + { + Name = "WhatIf", + Description ="Shows what would happen if the cmdlet runs. The cmdlet is not run.", + Type = typeof(SwitchParameter), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new [] { "wi" } + } + }; + + public static MarkdownParameterHelpInfo[] SupportsPagingParameters = + { + new MarkdownParameterHelpInfo + { + Name = "First", + Description ="Gets only the first 'n' objects.", + Type = typeof(ulong), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new string[0] + }, + new MarkdownParameterHelpInfo + { + Name = "IncludeTotalCount", + Description ="Reports the number of objects in the data set (an integer) followed by the objects. If the cmdlet cannot determine the total count, it returns \"Unknown total count\".", + Type = typeof(SwitchParameter), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new string[0] + }, + new MarkdownParameterHelpInfo + { + Name = "Skip", + Description ="Ignores the first 'n' objects and then gets the remaining objects.", + Type = typeof(ulong), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new string[0] + } + }; + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Models/PsProxyOutputs.cs b/swaggerci/app/generated/runtime/BuildTime/Models/PsProxyOutputs.cs new file mode 100644 index 000000000000..6b1c6b9512fd --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Models/PsProxyOutputs.cs @@ -0,0 +1,611 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; +using System.Text; +using System.Text.RegularExpressions; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsProxyOutputExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsProxyTypeExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + internal class OutputTypeOutput + { + public PSTypeName[] OutputTypes { get; } + + public OutputTypeOutput(IEnumerable outputTypes) + { + OutputTypes = outputTypes.ToArray(); + } + + public override string ToString() => OutputTypes != null && OutputTypes.Any() ? $"[OutputType({OutputTypes.Select(ot => $"[{ot}]").JoinIgnoreEmpty(ItemSeparator)})]{Environment.NewLine}" : String.Empty; + } + + internal class CmdletBindingOutput + { + public VariantGroup VariantGroup { get; } + + public CmdletBindingOutput(VariantGroup variantGroup) + { + VariantGroup = variantGroup; + } + + public override string ToString() + { + var dpsText = VariantGroup.DefaultParameterSetName.IsValidDefaultParameterSetName() ? $"DefaultParameterSetName='{VariantGroup.DefaultParameterSetName}'" : String.Empty; + var sspText = VariantGroup.SupportsShouldProcess ? $"SupportsShouldProcess{ItemSeparator}ConfirmImpact='Medium'" : String.Empty; + var pbText = $"PositionalBinding={false.ToPsBool()}"; + var propertyText = new[] { dpsText, pbText, sspText }.JoinIgnoreEmpty(ItemSeparator); + return $"[CmdletBinding({propertyText})]{Environment.NewLine}"; + } + } + + internal class ParameterOutput + { + public Parameter Parameter { get; } + public bool HasMultipleVariantsInVariantGroup { get; } + public bool HasAllVariantsInParameterGroup { get; } + + public ParameterOutput(Parameter parameter, bool hasMultipleVariantsInVariantGroup, bool hasAllVariantsInParameterGroup) + { + Parameter = parameter; + HasMultipleVariantsInVariantGroup = hasMultipleVariantsInVariantGroup; + HasAllVariantsInParameterGroup = hasAllVariantsInParameterGroup; + } + + public override string ToString() + { + var psnText = HasMultipleVariantsInVariantGroup && !HasAllVariantsInParameterGroup ? $"ParameterSetName='{Parameter.VariantName}'" : String.Empty; + var positionText = Parameter.Position != null ? $"Position={Parameter.Position}" : String.Empty; + var mandatoryText = Parameter.IsMandatory ? "Mandatory" : String.Empty; + var dontShowText = Parameter.DontShow ? "DontShow" : String.Empty; + var vfpText = Parameter.ValueFromPipeline ? "ValueFromPipeline" : String.Empty; + var vfpbpnText = Parameter.ValueFromPipelineByPropertyName ? "ValueFromPipelineByPropertyName" : String.Empty; + var propertyText = new[] { psnText, positionText, mandatoryText, dontShowText, vfpText, vfpbpnText }.JoinIgnoreEmpty(ItemSeparator); + return $"{Indent}[Parameter({propertyText})]{Environment.NewLine}"; + } + } + + internal class AliasOutput + { + public string[] Aliases { get; } + public bool IncludeIndent { get; } + + public AliasOutput(string[] aliases, bool includeIndent = false) + { + Aliases = aliases; + IncludeIndent = includeIndent; + } + + public override string ToString() => Aliases?.Any() ?? false ? $"{(IncludeIndent ? Indent : String.Empty)}[Alias({Aliases.Select(an => $"'{an}'").JoinIgnoreEmpty(ItemSeparator)})]{Environment.NewLine}" : String.Empty; + } + + internal class ValidateNotNullOutput + { + public bool HasValidateNotNull { get; } + + public ValidateNotNullOutput(bool hasValidateNotNull) + { + HasValidateNotNull = hasValidateNotNull; + } + + public override string ToString() => HasValidateNotNull ? $"{Indent}[ValidateNotNull()]{Environment.NewLine}" : String.Empty; + } + + internal class AllowEmptyArrayOutput + { + public bool HasAllowEmptyArray { get; } + + public AllowEmptyArrayOutput(bool hasAllowEmptyArray) + { + HasAllowEmptyArray = hasAllowEmptyArray; + } + + public override string ToString() => HasAllowEmptyArray ? $"{Indent}[AllowEmptyCollection()]{Environment.NewLine}" : String.Empty; + } + internal class ArgumentCompleterOutput + { + public CompleterInfo CompleterInfo { get; } + + public ArgumentCompleterOutput(CompleterInfo completerInfo) + { + CompleterInfo = completerInfo; + } + + public override string ToString() => CompleterInfo != null + ? $"{Indent}[ArgumentCompleter({(CompleterInfo.IsTypeCompleter ? $"[{CompleterInfo.Type.Unwrap().ToPsType()}]" : $"{{{CompleterInfo.Script.ToPsSingleLine("; ")}}}")})]{Environment.NewLine}" + : String.Empty; + } + + internal class DefaultInfoOutput + { + public bool HasDefaultInfo { get; } + public DefaultInfo DefaultInfo { get; } + + public DefaultInfoOutput(ParameterGroup parameterGroup) + { + HasDefaultInfo = parameterGroup.HasDefaultInfo; + DefaultInfo = parameterGroup.DefaultInfo; + } + + public override string ToString() + { + var nameText = !String.IsNullOrEmpty(DefaultInfo?.Name) ? $"Name='{DefaultInfo?.Name}'" : String.Empty; + var descriptionText = !String.IsNullOrEmpty(DefaultInfo?.Description) ? $"Description='{DefaultInfo?.Description.ToPsStringLiteral()}'" : String.Empty; + var scriptText = !String.IsNullOrEmpty(DefaultInfo?.Script) ? $"Script='{DefaultInfo?.Script.ToPsSingleLine("; ")}'" : String.Empty; + var propertyText = new[] { nameText, descriptionText, scriptText }.JoinIgnoreEmpty(ItemSeparator); + return HasDefaultInfo ? $"{Indent}[{typeof(DefaultInfoAttribute).ToPsAttributeType()}({propertyText})]{Environment.NewLine}" : String.Empty; + } + } + + internal class ParameterTypeOutput + { + public Type ParameterType { get; } + + public ParameterTypeOutput(Type parameterType) + { + ParameterType = parameterType; + } + + public override string ToString() => $"{Indent}[{ParameterType.ToPsType()}]{Environment.NewLine}"; + } + + internal class ParameterNameOutput + { + public string ParameterName { get; } + public bool IsLast { get; } + + public ParameterNameOutput(string parameterName, bool isLast) + { + ParameterName = parameterName; + IsLast = isLast; + } + + public override string ToString() => $"{Indent}${{{ParameterName}}}{(IsLast ? String.Empty : $",{Environment.NewLine}")}{Environment.NewLine}"; + } + + internal class BaseOutput + { + public VariantGroup VariantGroup { get; } + + protected static readonly bool IsAzure = Convert.ToBoolean(@"true"); + public BaseOutput(VariantGroup variantGroup) + { + VariantGroup = variantGroup; + } + public string ClearTelemetryContext() + { + return (!VariantGroup.IsInternal && IsAzure) ? $@"{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext()" : ""; + } + } + + internal class BeginOutput : BaseOutput + { + public BeginOutput(VariantGroup variantGroup) : base(variantGroup) + { + } + + public string GetProcessCustomAttributesAtRuntime() + { + return VariantGroup.IsInternal ? "" : $@"{Indent}{Indent}$cmdInfo = Get-Command -Name $mapping[$parameterSet]{Environment.NewLine}{Indent}{Indent}[Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)"; + } + private string GetTelemetry() + { + if (!VariantGroup.IsInternal && IsAzure) + { + return $@" +{Indent}{Indent}if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) {{ +{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() +{Indent}{Indent}}} +{Indent}{Indent}$preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId +{Indent}{Indent}if ($preTelemetryId -eq '') {{ +{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() +{Indent}{Indent}{Indent}[Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) +{Indent}{Indent}}} else {{ +{Indent}{Indent}{Indent}$internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets +{Indent}{Indent}{Indent}if ($internalCalledCmdlets -eq '') {{ +{Indent}{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name +{Indent}{Indent}{Indent}}} else {{ +{Indent}{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name +{Indent}{Indent}{Indent}}} +{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' +{Indent}{Indent}}} +"; + } + return ""; + } + public override string ToString() => $@"begin {{ +{Indent}try {{ +{Indent}{Indent}$outBuffer = $null +{Indent}{Indent}if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {{ +{Indent}{Indent}{Indent}$PSBoundParameters['OutBuffer'] = 1 +{Indent}{Indent}}} +{Indent}{Indent}$parameterSet = $PSCmdlet.ParameterSetName +{GetTelemetry()} +{GetParameterSetToCmdletMapping()}{GetDefaultValuesStatements()} +{GetProcessCustomAttributesAtRuntime()} +{Indent}{Indent}$wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) +{Indent}{Indent}$scriptCmd = {{& $wrappedCmd @PSBoundParameters}} +{Indent}{Indent}$steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) +{Indent}{Indent}$steppablePipeline.Begin($PSCmdlet) +{Indent}}} catch {{ +{ClearTelemetryContext()} +{Indent}{Indent}throw +{Indent}}} +}} + +"; + + private string GetParameterSetToCmdletMapping() + { + var sb = new StringBuilder(); + sb.AppendLine($"{Indent}{Indent}$mapping = @{{"); + foreach (var variant in VariantGroup.Variants) + { + sb.AppendLine($@"{Indent}{Indent}{Indent}{variant.VariantName} = '{variant.PrivateModuleName}\{variant.PrivateCmdletName}';"); + } + sb.Append($"{Indent}{Indent}}}"); + return sb.ToString(); + } + + private string GetDefaultValuesStatements() + { + var defaultInfos = VariantGroup.ParameterGroups.Where(pg => pg.HasDefaultInfo).Select(pg => pg.DefaultInfo).ToArray(); + var sb = new StringBuilder(); + + foreach (var defaultInfo in defaultInfos) + { + var variantListString = defaultInfo.ParameterGroup.VariantNames.ToPsList(); + var parameterName = defaultInfo.ParameterGroup.ParameterName; + sb.AppendLine(); + sb.AppendLine($"{Indent}{Indent}if (({variantListString}) -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('{parameterName}')) {{"); + sb.AppendLine($"{Indent}{Indent}{Indent}$PSBoundParameters['{parameterName}'] = {defaultInfo.Script}"); + sb.Append($"{Indent}{Indent}}}"); + } + return sb.ToString(); + } + } + + internal class ProcessOutput : BaseOutput + { + public ProcessOutput(VariantGroup variantGroup) : base(variantGroup) + { + } + + private string GetFinally() + { + if (IsAzure && !VariantGroup.IsInternal) + { + return $@" +{Indent}finally {{ +{Indent}{Indent}$backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId +{Indent}{Indent}$backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets +{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() +{Indent}}} +"; + } + return ""; + } + public override string ToString() => $@"process {{ +{Indent}try {{ +{Indent}{Indent}$steppablePipeline.Process($_) +{Indent}}} catch {{ +{ClearTelemetryContext()} +{Indent}{Indent}throw +{Indent}}} +{GetFinally()} +}} +"; + } + + internal class EndOutput : BaseOutput + { + public EndOutput(VariantGroup variantGroup) : base(variantGroup) + { + } + + private string GetTelemetry() + { + if (!VariantGroup.IsInternal && IsAzure) + { + return $@" +{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId +{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets +{Indent}{Indent}if ($preTelemetryId -eq '') {{ +{Indent}{Indent}{Indent}[Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) +{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() +{Indent}{Indent}}} +{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId +"; + } + return ""; + } + public override string ToString() => $@"end {{ +{Indent}try {{ +{Indent}{Indent}$steppablePipeline.End() +{GetTelemetry()} +{Indent}}} catch {{ +{ClearTelemetryContext()} +{Indent}{Indent}throw +{Indent}}} +}} +"; + } + + internal class HelpCommentOutput + { + public VariantGroup VariantGroup { get; } + public CommentInfo CommentInfo { get; } + + public HelpCommentOutput(VariantGroup variantGroup) + { + VariantGroup = variantGroup; + CommentInfo = variantGroup.CommentInfo; + } + + public override string ToString() + { + var inputs = String.Join(Environment.NewLine, CommentInfo.Inputs.Select(i => $".Inputs{Environment.NewLine}{i}")); + var inputsText = !String.IsNullOrEmpty(inputs) ? $"{Environment.NewLine}{inputs}" : String.Empty; + var outputs = String.Join(Environment.NewLine, CommentInfo.Outputs.Select(o => $".Outputs{Environment.NewLine}{o}")); + var outputsText = !String.IsNullOrEmpty(outputs) ? $"{Environment.NewLine}{outputs}" : String.Empty; + var notes = String.Join($"{Environment.NewLine}{Environment.NewLine}", VariantGroup.ComplexInterfaceInfos.Select(cii => cii.ToNoteOutput())); + var notesText = !String.IsNullOrEmpty(notes) ? $"{Environment.NewLine}.Notes{Environment.NewLine}{ComplexParameterHeader}{notes}" : String.Empty; + var relatedLinks = String.Join(Environment.NewLine, CommentInfo.RelatedLinks.Select(l => $".Link{Environment.NewLine}{l}")); + var relatedLinksText = !String.IsNullOrEmpty(relatedLinks) ? $"{Environment.NewLine}{relatedLinks}" : String.Empty; + var examples = ""; + foreach (var example in VariantGroup.HelpInfo.Examples) + { + examples = examples + ".Example" + "\r\n" + example.Code + "\r\n"; + } + return $@"<# +.Synopsis +{CommentInfo.Synopsis.ToDescriptionFormat(false)} +.Description +{CommentInfo.Description.ToDescriptionFormat(false)} +{examples}{inputsText}{outputsText}{notesText} +.Link +{CommentInfo.OnlineVersion}{relatedLinksText} +#> +"; + } + } + + internal class ParameterDescriptionOutput + { + public string Description { get; } + + public ParameterDescriptionOutput(string description) + { + Description = description; + } + + public override string ToString() => !String.IsNullOrEmpty(Description) + ? Description.ToDescriptionFormat(false).NormalizeNewLines() + .Split(new[] { Environment.NewLine }, StringSplitOptions.None) + .Aggregate(String.Empty, (c, n) => c + $"{Indent}# {n}{Environment.NewLine}") + : String.Empty; + } + + internal class ProfileOutput + { + public string ProfileName { get; } + + public ProfileOutput(string profileName) + { + ProfileName = profileName; + } + + public override string ToString() => ProfileName != NoProfiles ? $"[{typeof(ProfileAttribute).ToPsAttributeType()}('{ProfileName}')]{Environment.NewLine}" : String.Empty; + } + + internal class DescriptionOutput + { + public string Description { get; } + + public DescriptionOutput(string description) + { + Description = description; + } + + public override string ToString() => !String.IsNullOrEmpty(Description) ? $"[{typeof(DescriptionAttribute).ToPsAttributeType()}('{Description.ToPsStringLiteral()}')]{Environment.NewLine}" : String.Empty; + } + + internal class ParameterCategoryOutput + { + public ParameterCategory Category { get; } + + public ParameterCategoryOutput(ParameterCategory category) + { + Category = category; + } + + public override string ToString() => $"{Indent}[{typeof(CategoryAttribute).ToPsAttributeType()}('{Category}')]{Environment.NewLine}"; + } + + internal class InfoOutput + { + public InfoAttribute Info { get; } + public Type ParameterType { get; } + + public InfoOutput(InfoAttribute info, Type parameterType) + { + Info = info; + ParameterType = parameterType; + } + + public override string ToString() + { + // Rendering of InfoAttribute members that are not used currently + /*var serializedNameText = Info.SerializedName != null ? $"SerializedName='{Info.SerializedName}'" : String.Empty; + var readOnlyText = Info.ReadOnly ? "ReadOnly" : String.Empty; + var descriptionText = !String.IsNullOrEmpty(Info.Description) ? $"Description='{Info.Description.ToPsStringLiteral()}'" : String.Empty;*/ + + var requiredText = Info.Required ? "Required" : String.Empty; + var unwrappedType = ParameterType.Unwrap(); + var hasValidPossibleTypes = Info.PossibleTypes.Any(pt => pt != unwrappedType); + var possibleTypesText = hasValidPossibleTypes + ? $"PossibleTypes=({Info.PossibleTypes.Select(pt => $"[{pt.ToPsType()}]").JoinIgnoreEmpty(ItemSeparator)})" + : String.Empty; + var propertyText = new[] { /*serializedNameText, */requiredText,/* readOnlyText,*/ possibleTypesText/*, descriptionText*/ }.JoinIgnoreEmpty(ItemSeparator); + return hasValidPossibleTypes ? $"{Indent}[{typeof(InfoAttribute).ToPsAttributeType()}({propertyText})]{Environment.NewLine}" : String.Empty; + } + } + + internal class PropertySyntaxOutput + { + public string ParameterName { get; } + public Type ParameterType { get; } + public bool IsMandatory { get; } + public int? Position { get; } + + public bool IncludeSpace { get; } + public bool IncludeDash { get; } + + public PropertySyntaxOutput(Parameter parameter) + { + ParameterName = parameter.ParameterName; + ParameterType = parameter.ParameterType; + IsMandatory = parameter.IsMandatory; + Position = parameter.Position; + IncludeSpace = true; + IncludeDash = true; + } + + public PropertySyntaxOutput(ComplexInterfaceInfo complexInterfaceInfo) + { + ParameterName = complexInterfaceInfo.Name; + ParameterType = complexInterfaceInfo.Type; + IsMandatory = complexInterfaceInfo.Required; + Position = null; + IncludeSpace = false; + IncludeDash = false; + } + + public override string ToString() + { + var leftOptional = !IsMandatory ? "[" : String.Empty; + var leftPositional = Position != null ? "[" : String.Empty; + var rightPositional = Position != null ? "]" : String.Empty; + var type = ParameterType != typeof(SwitchParameter) ? $" <{ParameterType.ToSyntaxTypeName()}>" : String.Empty; + var rightOptional = !IsMandatory ? "]" : String.Empty; + var space = IncludeSpace ? " " : String.Empty; + var dash = IncludeDash ? "-" : String.Empty; + return $"{space}{leftOptional}{leftPositional}{dash}{ParameterName}{rightPositional}{type}{rightOptional}"; + } + } + + internal static class PsProxyOutputExtensions + { + public const string NoParameters = "__NoParameters"; + + public const string AllParameterSets = "__AllParameterSets"; + + public const string HalfIndent = " "; + + public const string Indent = HalfIndent + HalfIndent; + + public const string ItemSeparator = ", "; + + public static readonly string ComplexParameterHeader = $"COMPLEX PARAMETER PROPERTIES{Environment.NewLine}{Environment.NewLine}To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.{Environment.NewLine}{Environment.NewLine}"; + + public static string ToPsBool(this bool value) => $"${value.ToString().ToLowerInvariant()}"; + + public static string ToPsType(this Type type) + { + var regex = new Regex(@"^(.*)`{1}\d+(.*)$"); + var typeText = type.ToString(); + var match = regex.Match(typeText); + return match.Success ? $"{match.Groups[1]}{match.Groups[2]}" : typeText; + } + + public static string ToPsAttributeType(this Type type) => type.ToPsType().RemoveEnd("Attribute"); + + // https://stackoverflow.com/a/5284606/294804 + private static string RemoveEnd(this string text, string suffix) => text.EndsWith(suffix) ? text.Substring(0, text.Length - suffix.Length) : text; + + public static string ToPsSingleLine(this string value, string replacer = " ") => value.ReplaceNewLines(replacer, new[] { "
", "\r\n", "\n" }); + + public static string ToPsStringLiteral(this string value) => value?.Replace("'", "''").Replace("‘", "''").Replace("’", "''").ToPsSingleLine().Trim() ?? String.Empty; + + public static string JoinIgnoreEmpty(this IEnumerable values, string separator) => String.Join(separator, values?.Where(v => !String.IsNullOrEmpty(v))); + + // https://stackoverflow.com/a/41961738/294804 + public static string ToSyntaxTypeName(this Type type) + { + if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) + { + return $"{type.GetGenericArguments().First().ToSyntaxTypeName()}?"; + } + + if (type.IsGenericType) + { + var genericTypes = String.Join(ItemSeparator, type.GetGenericArguments().Select(ToSyntaxTypeName)); + return $"{type.Name.Split('`').First()}<{genericTypes}>"; + } + + return type.Name; + } + + public static OutputTypeOutput ToOutputTypeOutput(this IEnumerable outputTypes) => new OutputTypeOutput(outputTypes); + + public static CmdletBindingOutput ToCmdletBindingOutput(this VariantGroup variantGroup) => new CmdletBindingOutput(variantGroup); + + public static ParameterOutput ToParameterOutput(this Parameter parameter, bool hasMultipleVariantsInVariantGroup, bool hasAllVariantsInParameterGroup) => new ParameterOutput(parameter, hasMultipleVariantsInVariantGroup, hasAllVariantsInParameterGroup); + + public static AliasOutput ToAliasOutput(this string[] aliases, bool includeIndent = false) => new AliasOutput(aliases, includeIndent); + + public static ValidateNotNullOutput ToValidateNotNullOutput(this bool hasValidateNotNull) => new ValidateNotNullOutput(hasValidateNotNull); + + public static AllowEmptyArrayOutput ToAllowEmptyArray(this bool hasAllowEmptyArray) => new AllowEmptyArrayOutput(hasAllowEmptyArray); + + public static ArgumentCompleterOutput ToArgumentCompleterOutput(this CompleterInfo completerInfo) => new ArgumentCompleterOutput(completerInfo); + + public static DefaultInfoOutput ToDefaultInfoOutput(this ParameterGroup parameterGroup) => new DefaultInfoOutput(parameterGroup); + + public static ParameterTypeOutput ToParameterTypeOutput(this Type parameterType) => new ParameterTypeOutput(parameterType); + + public static ParameterNameOutput ToParameterNameOutput(this string parameterName, bool isLast) => new ParameterNameOutput(parameterName, isLast); + + public static BeginOutput ToBeginOutput(this VariantGroup variantGroup) => new BeginOutput(variantGroup); + + public static ProcessOutput ToProcessOutput(this VariantGroup variantGroup) => new ProcessOutput(variantGroup); + + public static EndOutput ToEndOutput(this VariantGroup variantGroup) => new EndOutput(variantGroup); + + public static HelpCommentOutput ToHelpCommentOutput(this VariantGroup variantGroup) => new HelpCommentOutput(variantGroup); + + public static ParameterDescriptionOutput ToParameterDescriptionOutput(this string description) => new ParameterDescriptionOutput(description); + + public static ProfileOutput ToProfileOutput(this string profileName) => new ProfileOutput(profileName); + + public static DescriptionOutput ToDescriptionOutput(this string description) => new DescriptionOutput(description); + + public static ParameterCategoryOutput ToParameterCategoryOutput(this ParameterCategory category) => new ParameterCategoryOutput(category); + + public static PropertySyntaxOutput ToPropertySyntaxOutput(this Parameter parameter) => new PropertySyntaxOutput(parameter); + + public static PropertySyntaxOutput ToPropertySyntaxOutput(this ComplexInterfaceInfo complexInterfaceInfo) => new PropertySyntaxOutput(complexInterfaceInfo); + + public static InfoOutput ToInfoOutput(this InfoAttribute info, Type parameterType) => new InfoOutput(info, parameterType); + + public static string ToNoteOutput(this ComplexInterfaceInfo complexInterfaceInfo, string currentIndent = "", bool includeDashes = false, bool includeBackticks = false, bool isFirst = true) + { + string RenderProperty(ComplexInterfaceInfo info, string indent, bool dash, bool backtick) => + $"{indent}{(dash ? "- " : String.Empty)}{(backtick ? "`" : String.Empty)}{info.ToPropertySyntaxOutput()}{(backtick ? "`" : String.Empty)}: {info.Description}"; + + var nested = complexInterfaceInfo.NestedInfos.Select(ni => + { + var nestedIndent = $"{currentIndent}{HalfIndent}"; + return ni.IsComplexInterface + ? ni.ToNoteOutput(nestedIndent, includeDashes, includeBackticks, false) + : RenderProperty(ni, nestedIndent, includeDashes, includeBackticks); + }).Prepend(RenderProperty(complexInterfaceInfo, currentIndent, !isFirst && includeDashes, includeBackticks)); + return String.Join(Environment.NewLine, nested); + } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/Models/PsProxyTypes.cs b/swaggerci/app/generated/runtime/BuildTime/Models/PsProxyTypes.cs new file mode 100644 index 000000000000..d831da87c7fb --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/Models/PsProxyTypes.cs @@ -0,0 +1,514 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Reflection; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsProxyOutputExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell.PsProxyTypeExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + internal class ProfileGroup + { + public string ProfileName { get; } + public Variant[] Variants { get; } + public string ProfileFolder { get; } + + public ProfileGroup(Variant[] variants, string profileName = NoProfiles) + { + ProfileName = profileName; + Variants = variants; + ProfileFolder = ProfileName != NoProfiles ? ProfileName : String.Empty; + } + } + + internal class VariantGroup + { + public string ModuleName { get; } + + public string RootModuleName {get => @"";} + public string CmdletName { get; } + public string CmdletVerb { get; } + public string CmdletNoun { get; } + public string ProfileName { get; } + public Variant[] Variants { get; } + public ParameterGroup[] ParameterGroups { get; } + public ComplexInterfaceInfo[] ComplexInterfaceInfos { get; } + + public string[] Aliases { get; } + public PSTypeName[] OutputTypes { get; } + public bool SupportsShouldProcess { get; } + public bool SupportsPaging { get; } + public string DefaultParameterSetName { get; } + public bool HasMultipleVariants { get; } + public PsHelpInfo HelpInfo { get; } + public bool IsGenerated { get; } + public bool IsInternal { get; } + + public string OutputFolder { get; } + public string FileName { get; } + public string FilePath { get; } + + public CommentInfo CommentInfo { get; } + + public VariantGroup(string moduleName, string cmdletName, Variant[] variants, string outputFolder, string profileName = NoProfiles, bool isTest = false, bool isInternal = false) + { + ModuleName = moduleName; + CmdletName = cmdletName; + var cmdletNameParts = CmdletName.Split('-'); + CmdletVerb = cmdletNameParts.First(); + CmdletNoun = cmdletNameParts.Last(); + ProfileName = profileName; + Variants = variants; + ParameterGroups = Variants.ToParameterGroups().OrderBy(pg => pg.OrderCategory).ThenByDescending(pg => pg.IsMandatory).ToArray(); + var aliasDuplicates = ParameterGroups.SelectMany(pg => pg.Aliases) + //https://stackoverflow.com/a/18547390/294804 + .GroupBy(a => a).Where(g => g.Count() > 1).Select(g => g.Key).ToArray(); + if (aliasDuplicates.Any()) + { + throw new ParsingMetadataException($"The alias(es) [{String.Join(", ", aliasDuplicates)}] are defined on multiple parameters for cmdlet '{CmdletName}', which is not supported."); + } + ComplexInterfaceInfos = ParameterGroups.Where(pg => !pg.DontShow && pg.IsComplexInterface).OrderBy(pg => pg.ParameterName).Select(pg => pg.ComplexInterfaceInfo).ToArray(); + + Aliases = Variants.SelectMany(v => v.Attributes).ToAliasNames().ToArray(); + OutputTypes = Variants.SelectMany(v => v.Info.OutputType).Where(ot => ot.Type != null).GroupBy(ot => ot.Type).Select(otg => otg.First()).ToArray(); + SupportsShouldProcess = Variants.Any(v => v.SupportsShouldProcess); + SupportsPaging = Variants.Any(v => v.SupportsPaging); + DefaultParameterSetName = DetermineDefaultParameterSetName(); + HasMultipleVariants = Variants.Length > 1; + HelpInfo = Variants.Select(v => v.HelpInfo).FirstOrDefault() ?? new PsHelpInfo(); + IsGenerated = Variants.All(v => v.Attributes.OfType().Any()); + IsInternal = isInternal; + + OutputFolder = outputFolder; + FileName = $"{CmdletName}{(isTest ? ".Tests" : String.Empty)}.ps1"; + FilePath = Path.Combine(OutputFolder, FileName); + + CommentInfo = new CommentInfo(this); + } + + private string DetermineDefaultParameterSetName() + { + var defaultParameterSet = Variants + .Select(v => v.Metadata.DefaultParameterSetName) + .LastOrDefault(dpsn => dpsn.IsValidDefaultParameterSetName()); + + if (String.IsNullOrEmpty(defaultParameterSet)) + { + var variantParamCountGroups = Variants + .Select(v => ( + variant: v.VariantName, + paramCount: v.CmdletOnlyParameters.Count(p => p.IsMandatory), + isSimple: v.CmdletOnlyParameters.Where(p => p.IsMandatory).All(p => p.ParameterType.IsPsSimple()))) + .GroupBy(vpc => vpc.isSimple) + .ToArray(); + var variantParameterCounts = (variantParamCountGroups.Any(g => g.Key) ? variantParamCountGroups.Where(g => g.Key) : variantParamCountGroups).SelectMany(g => g).ToArray(); + var smallestParameterCount = variantParameterCounts.Min(vpc => vpc.paramCount); + defaultParameterSet = variantParameterCounts.First(vpc => vpc.paramCount == smallestParameterCount).variant; + } + + return defaultParameterSet; + } + } + + internal class Variant + { + public string CmdletName { get; } + public string VariantName { get; } + public CommandInfo Info { get; } + public CommandMetadata Metadata { get; } + public PsHelpInfo HelpInfo { get; } + public bool HasParameterSets { get; } + public bool IsFunction { get; } + public string PrivateModuleName { get; } + public string PrivateCmdletName { get; } + public bool SupportsShouldProcess { get; } + public bool SupportsPaging { get; } + + public Attribute[] Attributes { get; } + public Parameter[] Parameters { get; } + public Parameter[] CmdletOnlyParameters { get; } + public bool IsInternal { get; } + public bool IsDoNotExport { get; } + public string[] Profiles { get; } + + public Variant(string cmdletName, string variantName, CommandInfo info, CommandMetadata metadata, bool hasParameterSets = false, PsHelpInfo helpInfo = null) + { + CmdletName = cmdletName; + VariantName = variantName; + Info = info; + HelpInfo = helpInfo ?? new PsHelpInfo(); + Metadata = metadata; + HasParameterSets = hasParameterSets; + IsFunction = Info.CommandType == CommandTypes.Function; + PrivateModuleName = Info.Source; + PrivateCmdletName = Metadata.Name; + SupportsShouldProcess = Metadata.SupportsShouldProcess; + SupportsPaging = Metadata.SupportsPaging; + + Attributes = this.ToAttributes(); + Parameters = this.ToParameters().OrderBy(p => p.OrderCategory).ThenByDescending(p => p.IsMandatory).ToArray(); + IsInternal = Attributes.OfType().Any(); + IsDoNotExport = Attributes.OfType().Any(); + CmdletOnlyParameters = Parameters.Where(p => !p.Categories.Any(c => c == ParameterCategory.Azure || c == ParameterCategory.Runtime)).ToArray(); + Profiles = Attributes.OfType().SelectMany(pa => pa.Profiles).ToArray(); + } + } + + internal class ParameterGroup + { + public string ParameterName { get; } + public Parameter[] Parameters { get; } + + public string[] VariantNames { get; } + public string[] AllVariantNames { get; } + public bool HasAllVariants { get; } + public Type ParameterType { get; } + public string Description { get; } + + public string[] Aliases { get; } + public bool HasValidateNotNull { get; } + public bool HasAllowEmptyArray { get; } + public CompleterInfo CompleterInfo { get; } + public DefaultInfo DefaultInfo { get; } + public bool HasDefaultInfo { get; } + public ParameterCategory OrderCategory { get; } + public bool DontShow { get; } + public bool IsMandatory { get; } + public bool SupportsWildcards { get; } + public bool IsComplexInterface { get; } + public ComplexInterfaceInfo ComplexInterfaceInfo { get; } + public InfoAttribute InfoAttribute { get; } + + public int? FirstPosition { get; } + public bool ValueFromPipeline { get; } + public bool ValueFromPipelineByPropertyName { get; } + public bool IsInputType { get; } + + public ParameterGroup(string parameterName, Parameter[] parameters, string[] allVariantNames) + { + ParameterName = parameterName; + Parameters = parameters; + + VariantNames = Parameters.Select(p => p.VariantName).ToArray(); + AllVariantNames = allVariantNames; + HasAllVariants = VariantNames.Any(vn => vn == AllParameterSets) || !AllVariantNames.Except(VariantNames).Any(); + var types = Parameters.Select(p => p.ParameterType).Distinct().ToArray(); + if (types.Length > 1) + { + throw new ParsingMetadataException($"The parameter '{ParameterName}' has multiple parameter types [{String.Join(", ", types.Select(t => t.Name))}] defined, which is not supported."); + } + ParameterType = types.First(); + Description = Parameters.Select(p => p.Description).FirstOrDefault(d => !String.IsNullOrEmpty(d)).EmptyIfNull(); + + Aliases = Parameters.SelectMany(p => p.Attributes).ToAliasNames().ToArray(); + HasValidateNotNull = Parameters.SelectMany(p => p.Attributes.OfType()).Any(); + HasAllowEmptyArray = Parameters.SelectMany(p => p.Attributes.OfType()).Any(); + CompleterInfo = Parameters.Select(p => p.CompleterInfoAttribute).FirstOrDefault()?.ToCompleterInfo() + ?? Parameters.Select(p => p.ArgumentCompleterAttribute).FirstOrDefault()?.ToCompleterInfo(); + DefaultInfo = Parameters.Select(p => p.DefaultInfoAttribute).FirstOrDefault()?.ToDefaultInfo(this) + ?? Parameters.Select(p => p.DefaultValueAttribute).FirstOrDefault(dv => dv != null)?.ToDefaultInfo(this); + HasDefaultInfo = DefaultInfo != null && !String.IsNullOrEmpty(DefaultInfo.Script); + // When DefaultInfo is present, force all parameters from this group to be optional. + if (HasDefaultInfo) + { + foreach (var parameter in Parameters) + { + parameter.IsMandatory = false; + } + } + OrderCategory = Parameters.Select(p => p.OrderCategory).Distinct().DefaultIfEmpty(ParameterCategory.Body).Min(); + DontShow = Parameters.All(p => p.DontShow); + IsMandatory = HasAllVariants && Parameters.Any(p => p.IsMandatory); + SupportsWildcards = Parameters.Any(p => p.SupportsWildcards); + IsComplexInterface = Parameters.Any(p => p.IsComplexInterface); + ComplexInterfaceInfo = Parameters.Where(p => p.IsComplexInterface).Select(p => p.ComplexInterfaceInfo).FirstOrDefault(); + InfoAttribute = Parameters.Select(p => p.InfoAttribute).First(); + + FirstPosition = Parameters.Select(p => p.Position).FirstOrDefault(p => p != null); + ValueFromPipeline = Parameters.Any(p => p.ValueFromPipeline); + ValueFromPipelineByPropertyName = Parameters.Any(p => p.ValueFromPipelineByPropertyName); + IsInputType = ValueFromPipeline || ValueFromPipelineByPropertyName; + } + } + + internal class Parameter + { + public string VariantName { get; } + public string ParameterName { get; } + public ParameterMetadata Metadata { get; } + public PsParameterHelpInfo HelpInfo { get; } + public Type ParameterType { get; } + + public Attribute[] Attributes { get; } + public ParameterCategory[] Categories { get; } + public ParameterCategory OrderCategory { get; } + public PSDefaultValueAttribute DefaultValueAttribute { get; } + public DefaultInfoAttribute DefaultInfoAttribute { get; } + public ParameterAttribute ParameterAttribute { get; } + public bool SupportsWildcards { get; } + public CompleterInfoAttribute CompleterInfoAttribute { get; } + public ArgumentCompleterAttribute ArgumentCompleterAttribute { get; } + + public bool ValueFromPipeline { get; } + public bool ValueFromPipelineByPropertyName { get; } + public int? Position { get; } + public bool DontShow { get; } + public bool IsMandatory { get; set; } + + public InfoAttribute InfoAttribute { get; } + public ComplexInterfaceInfo ComplexInterfaceInfo { get; } + public bool IsComplexInterface { get; } + public string Description { get; } + + public Parameter(string variantName, string parameterName, ParameterMetadata metadata, PsParameterHelpInfo helpInfo = null) + { + VariantName = variantName; + ParameterName = parameterName; + Metadata = metadata; + HelpInfo = helpInfo ?? new PsParameterHelpInfo(); + + Attributes = Metadata.Attributes.ToArray(); + ParameterType = Attributes.OfType().FirstOrDefault()?.Type ?? Metadata.ParameterType; + Categories = Attributes.OfType().SelectMany(ca => ca.Categories).Distinct().ToArray(); + OrderCategory = Categories.DefaultIfEmpty(ParameterCategory.Body).Min(); + DefaultValueAttribute = Attributes.OfType().FirstOrDefault(); + DefaultInfoAttribute = Attributes.OfType().FirstOrDefault(); + ParameterAttribute = Attributes.OfType().FirstOrDefault(pa => pa.ParameterSetName == VariantName || pa.ParameterSetName == AllParameterSets); + if (ParameterAttribute == null) + { + throw new ParsingMetadataException($"The variant '{VariantName}' has multiple parameter sets defined, which is not supported."); + } + SupportsWildcards = Attributes.OfType().Any(); + CompleterInfoAttribute = Attributes.OfType().FirstOrDefault(); + ArgumentCompleterAttribute = Attributes.OfType().FirstOrDefault(); + + ValueFromPipeline = ParameterAttribute.ValueFromPipeline; + ValueFromPipelineByPropertyName = ParameterAttribute.ValueFromPipelineByPropertyName; + Position = ParameterAttribute.Position == Int32.MinValue ? (int?)null : ParameterAttribute.Position; + DontShow = ParameterAttribute.DontShow; + IsMandatory = ParameterAttribute.Mandatory; + + var complexParameterName = ParameterName.ToUpperInvariant(); + var complexMessage = $"{Environment.NewLine}To construct, see NOTES section for {complexParameterName} properties and create a hash table."; + var description = ParameterAttribute.HelpMessage.NullIfEmpty() ?? HelpInfo.Description.NullIfEmpty() ?? InfoAttribute?.Description.NullIfEmpty() ?? String.Empty; + // Remove the complex type message as it will be reinserted if this is a complex type + description = description.NormalizeNewLines().Replace(complexMessage, String.Empty).Replace(complexMessage.ToPsSingleLine(), String.Empty); + // Make an InfoAttribute for processing only if one isn't provided + InfoAttribute = Attributes.OfType().FirstOrDefault() ?? new InfoAttribute { PossibleTypes = new[] { ParameterType.Unwrap() }, Required = IsMandatory }; + // Set the description if the InfoAttribute does not have one since they are exported without a description + InfoAttribute.Description = String.IsNullOrEmpty(InfoAttribute.Description) ? description : InfoAttribute.Description; + ComplexInterfaceInfo = InfoAttribute.ToComplexInterfaceInfo(complexParameterName, ParameterType, true); + IsComplexInterface = ComplexInterfaceInfo.IsComplexInterface; + Description = $"{description}{(IsComplexInterface ? complexMessage : String.Empty)}"; + } + } + + internal class ComplexInterfaceInfo + { + public InfoAttribute InfoAttribute { get; } + + public string Name { get; } + public Type Type { get; } + public bool Required { get; } + public bool ReadOnly { get; } + public string Description { get; } + + public ComplexInterfaceInfo[] NestedInfos { get; } + public bool IsComplexInterface { get; } + + public ComplexInterfaceInfo(string name, Type type, InfoAttribute infoAttribute, bool? required, List seenTypes) + { + Name = name; + Type = type; + InfoAttribute = infoAttribute; + + Required = required ?? InfoAttribute.Required; + ReadOnly = InfoAttribute.ReadOnly; + Description = InfoAttribute.Description.ToPsSingleLine(); + + var unwrappedType = Type.Unwrap(); + var hasBeenSeen = seenTypes?.Contains(unwrappedType) ?? false; + (seenTypes ?? (seenTypes = new List())).Add(unwrappedType); + NestedInfos = hasBeenSeen ? new ComplexInterfaceInfo[]{} : + unwrappedType.GetInterfaces() + .Concat(InfoAttribute.PossibleTypes) + .SelectMany(pt => pt.GetProperties() + .SelectMany(pi => pi.GetCustomAttributes(true).OfType() + .Select(ia => ia.ToComplexInterfaceInfo(pi.Name, pi.PropertyType, seenTypes: seenTypes)))) + .Where(cii => !cii.ReadOnly).OrderByDescending(cii => cii.Required).ToArray(); + // https://stackoverflow.com/a/503359/294804 + var associativeArrayInnerType = Type.GetInterfaces() + .FirstOrDefault(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IAssociativeArray<>)) + ?.GetTypeInfo().GetGenericArguments().First(); + if (!hasBeenSeen && associativeArrayInnerType != null) + { + var anyInfo = new InfoAttribute { Description = "This indicates any property can be added to this object." }; + NestedInfos = NestedInfos.Prepend(anyInfo.ToComplexInterfaceInfo("(Any)", associativeArrayInnerType)).ToArray(); + } + IsComplexInterface = NestedInfos.Any(); + } + } + + internal class CommentInfo + { + public string Description { get; } + public string Synopsis { get; } + + public string[] Examples { get; } + public string[] Inputs { get; } + public string[] Outputs { get; } + + public string OnlineVersion { get; } + public string[] RelatedLinks { get; } + + private const string HelpLinkPrefix = @"https://docs.microsoft.com/en-us/powershell/module/"; + + public CommentInfo(VariantGroup variantGroup) + { + var helpInfo = variantGroup.HelpInfo; + Description = variantGroup.Variants.SelectMany(v => v.Attributes).OfType().FirstOrDefault()?.Description.NullIfEmpty() + ?? helpInfo.Description.EmptyIfNull(); + // If there is no Synopsis, PowerShell may put in the Syntax string as the Synopsis. This seems unintended, so we remove the Synopsis in this situation. + var synopsis = helpInfo.Synopsis.EmptyIfNull().Trim().StartsWith(variantGroup.CmdletName) ? String.Empty : helpInfo.Synopsis; + Synopsis = synopsis.NullIfEmpty() ?? Description; + + Examples = helpInfo.Examples.Select(rl => rl.Code).ToArray(); + + Inputs = (variantGroup.ParameterGroups.Where(pg => pg.IsInputType).Select(pg => pg.ParameterType.FullName).ToArray().NullIfEmpty() ?? + helpInfo.InputTypes.Where(it => it.Name.NullIfWhiteSpace() != null).Select(it => it.Name).ToArray()) + .Where(i => i != "None").Distinct().OrderBy(i => i).ToArray(); + Outputs = (variantGroup.OutputTypes.Select(ot => ot.Type.FullName).ToArray().NullIfEmpty() ?? + helpInfo.OutputTypes.Where(it => it.Name.NullIfWhiteSpace() != null).Select(ot => ot.Name).ToArray()) + .Where(o => o != "None").Distinct().OrderBy(o => o).ToArray(); + + // Use root module name in the help link + var moduleName = variantGroup.RootModuleName == "" ? variantGroup.ModuleName.ToLowerInvariant() : variantGroup.RootModuleName.ToLowerInvariant(); + OnlineVersion = helpInfo.OnlineVersion?.Uri.NullIfEmpty() ?? $@"{HelpLinkPrefix}{moduleName}/{variantGroup.CmdletName.ToLowerInvariant()}"; + RelatedLinks = helpInfo.RelatedLinks.Select(rl => rl.Text).ToArray(); + } + } + + internal class CompleterInfo + { + public string Name { get; } + public string Description { get; } + public string Script { get; } + public Type Type { get; } + public bool IsTypeCompleter { get; } + + public CompleterInfo(CompleterInfoAttribute infoAttribute) + { + Name = infoAttribute.Name; + Description = infoAttribute.Description; + Script = infoAttribute.Script; + } + + public CompleterInfo(ArgumentCompleterAttribute completerAttribute) + { + Script = completerAttribute.ScriptBlock?.ToString(); + if (completerAttribute.Type != null) + { + Type = completerAttribute.Type; + IsTypeCompleter = true; + } + } + } + + internal class DefaultInfo + { + public string Name { get; } + public string Description { get; } + public string Script { get; } + public ParameterGroup ParameterGroup { get; } + + public DefaultInfo(DefaultInfoAttribute infoAttribute, ParameterGroup parameterGroup) + { + Name = infoAttribute.Name; + Description = infoAttribute.Description; + Script = infoAttribute.Script; + ParameterGroup = parameterGroup; + } + + public DefaultInfo(PSDefaultValueAttribute defaultValueAttribute, ParameterGroup parameterGroup) + { + Description = defaultValueAttribute.Help; + ParameterGroup = parameterGroup; + if (defaultValueAttribute.Value != null) + { + Script = defaultValueAttribute.Value.ToString(); + } + } + } + + internal static class PsProxyTypeExtensions + { + public const string NoProfiles = "__NoProfiles"; + + public static bool IsValidDefaultParameterSetName(this string parameterSetName) => + !String.IsNullOrEmpty(parameterSetName) && parameterSetName != AllParameterSets; + + public static Variant[] ToVariants(this CommandInfo info, PsHelpInfo helpInfo) + { + var metadata = new CommandMetadata(info); + var privateCmdletName = metadata.Name.Split('!').First(); + var parts = privateCmdletName.Split('_'); + return parts.Length > 1 + ? new[] { new Variant(parts[0], parts[1], info, metadata, helpInfo: helpInfo) } + // Process multiple parameter sets, so we declare a variant per parameter set. + : info.ParameterSets.Select(ps => new Variant(privateCmdletName, ps.Name, info, metadata, true, helpInfo)).ToArray(); + } + + public static Variant[] ToVariants(this CmdletAndHelpInfo info) => info.CommandInfo.ToVariants(info.HelpInfo); + + public static Variant[] ToVariants(this CommandInfo info, PSObject helpInfo = null) => info.ToVariants(helpInfo?.ToPsHelpInfo()); + + public static Parameter[] ToParameters(this Variant variant) + { + var parameters = variant.Metadata.Parameters.AsEnumerable(); + var parameterHelp = variant.HelpInfo.Parameters.AsEnumerable(); + + if (variant.HasParameterSets) + { + parameters = parameters.Where(p => p.Value.ParameterSets.Keys.Any(k => k == variant.VariantName || k == AllParameterSets)); + parameterHelp = parameterHelp.Where(ph => (!ph.ParameterSetNames.Any() || ph.ParameterSetNames.Any(psn => psn == variant.VariantName || psn == AllParameterSets)) && ph.Name != "IncludeTotalCount"); + } + var result = parameters.Select(p => new Parameter(variant.VariantName, p.Key, p.Value, parameterHelp.FirstOrDefault(ph => ph.Name == p.Key))); + if (variant.SupportsPaging) { + // If supportsPaging is set, we will need to add First and Skip parameters since they are treated as common parameters which as not contained on Metadata>parameters + variant.Info.Parameters["First"].Attributes.OfType().FirstOrDefault(pa => pa.ParameterSetName == variant.VariantName || pa.ParameterSetName == AllParameterSets).HelpMessage = "Gets only the first 'n' objects."; + variant.Info.Parameters["Skip"].Attributes.OfType().FirstOrDefault(pa => pa.ParameterSetName == variant.VariantName || pa.ParameterSetName == AllParameterSets).HelpMessage = "Ignores the first 'n' objects and then gets the remaining objects."; + result = result.Append(new Parameter(variant.VariantName, "First", variant.Info.Parameters["First"], parameterHelp.FirstOrDefault(ph => ph.Name == "First"))); + result = result.Append(new Parameter(variant.VariantName, "Skip", variant.Info.Parameters["Skip"], parameterHelp.FirstOrDefault(ph => ph.Name == "Skip"))); + } + return result.ToArray(); + } + + public static Attribute[] ToAttributes(this Variant variant) => variant.IsFunction + ? ((FunctionInfo)variant.Info).ScriptBlock.Attributes.ToArray() + : variant.Metadata.CommandType.GetCustomAttributes(false).Cast().ToArray(); + + public static IEnumerable ToParameterGroups(this Variant[] variants) + { + var allVariantNames = variants.Select(vg => vg.VariantName).ToArray(); + return variants + .SelectMany(v => v.Parameters) + .GroupBy(p => p.ParameterName, StringComparer.InvariantCultureIgnoreCase) + .Select(pg => new ParameterGroup(pg.Key, pg.Select(p => p).ToArray(), allVariantNames)); + } + + public static ComplexInterfaceInfo ToComplexInterfaceInfo(this InfoAttribute infoAttribute, string name, Type type, bool? required = null, List seenTypes = null) + => new ComplexInterfaceInfo(name, type, infoAttribute, required, seenTypes); + + public static CompleterInfo ToCompleterInfo(this CompleterInfoAttribute infoAttribute) => new CompleterInfo(infoAttribute); + public static CompleterInfo ToCompleterInfo(this ArgumentCompleterAttribute completerAttribute) => new CompleterInfo(completerAttribute); + + public static DefaultInfo ToDefaultInfo(this DefaultInfoAttribute infoAttribute, ParameterGroup parameterGroup) => new DefaultInfo(infoAttribute, parameterGroup); + public static DefaultInfo ToDefaultInfo(this PSDefaultValueAttribute defaultValueAttribute, ParameterGroup parameterGroup) => new DefaultInfo(defaultValueAttribute, parameterGroup); + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/PsAttributes.cs b/swaggerci/app/generated/runtime/BuildTime/PsAttributes.cs new file mode 100644 index 000000000000..e829400ebff1 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/PsAttributes.cs @@ -0,0 +1,114 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi +{ + [AttributeUsage(AttributeTargets.Class)] + public class DescriptionAttribute : Attribute + { + public string Description { get; } + + public DescriptionAttribute(string description) + { + Description = description; + } + } + + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property)] + public class DoNotExportAttribute : Attribute + { + } + + [AttributeUsage(AttributeTargets.Class)] + public class InternalExportAttribute : Attribute + { + } + + [AttributeUsage(AttributeTargets.Class)] + public class GeneratedAttribute : Attribute + { + } + + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property)] + public class DoNotFormatAttribute : Attribute + { + } + + [AttributeUsage(AttributeTargets.Class)] + public class ProfileAttribute : Attribute + { + public string[] Profiles { get; } + + public ProfileAttribute(params string[] profiles) + { + Profiles = profiles; + } + } + + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] + public class CategoryAttribute : Attribute + { + public ParameterCategory[] Categories { get; } + + public CategoryAttribute(params ParameterCategory[] categories) + { + Categories = categories; + } + } + + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] + public class ExportAsAttribute : Attribute + { + public Type Type { get; set; } + + public ExportAsAttribute(Type type) + { + Type = type; + } + } + + public enum ParameterCategory + { + // Note: Order is significant + Uri = 0, + Path, + Query, + Header, + Cookie, + Body, + Azure, + Runtime + } + + [AttributeUsage(AttributeTargets.Property)] + public class OriginAttribute : Attribute + { + public PropertyOrigin Origin { get; } + + public OriginAttribute(PropertyOrigin origin) + { + Origin = origin; + } + } + + public enum PropertyOrigin + { + // Note: Order is significant + Inherited = 0, + Owned, + Inlined + } + + [AttributeUsage(AttributeTargets.Property)] + public class FormatTableAttribute : Attribute + { + public int Index { get; set; } = -1; + public bool HasIndex => Index != -1; + public string Label { get; set; } + public int Width { get; set; } = -1; + public bool HasWidth => Width != -1; + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/PsExtensions.cs b/swaggerci/app/generated/runtime/BuildTime/PsExtensions.cs new file mode 100644 index 000000000000..2e036bbd11fb --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/PsExtensions.cs @@ -0,0 +1,169 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + internal static class PsExtensions + { + // https://stackoverflow.com/a/863944/294804 + // https://stackoverflow.com/a/4452598/294804 + // https://stackoverflow.com/a/28701974/294804 + // Note: This will unwrap nested collections, but we don't generate nested collections. + public static Type Unwrap(this Type type) + { + if (type.IsArray) + { + return type.GetElementType().Unwrap(); + } + + var typeInfo = type.GetTypeInfo(); + if (typeInfo.IsGenericType + && (typeInfo.GetGenericTypeDefinition() == typeof(Nullable<>) || typeof(IEnumerable<>).IsAssignableFrom(type))) + { + return typeInfo.GetGenericArguments().First().Unwrap(); + } + + return type; + } + + // https://stackoverflow.com/a/863944/294804 + private static bool IsSimple(this Type type) + { + var typeInfo = type.GetTypeInfo(); + return typeInfo.IsPrimitive + || typeInfo.IsEnum + || type == typeof(string) + || type == typeof(decimal); + } + + // https://stackoverflow.com/a/32025393/294804 + private static bool HasImplicitConversion(this Type baseType, Type targetType) => + baseType.GetMethods(BindingFlags.Public | BindingFlags.Static) + .Where(mi => mi.Name == "op_Implicit" && mi.ReturnType == targetType) + .Any(mi => mi.GetParameters().FirstOrDefault()?.ParameterType == baseType); + + public static bool IsPsSimple(this Type type) + { + var unwrappedType = type.Unwrap(); + return unwrappedType.IsSimple() + || unwrappedType == typeof(SwitchParameter) + || unwrappedType == typeof(Hashtable) + || unwrappedType == typeof(PSCredential) + || unwrappedType == typeof(ScriptBlock) + || unwrappedType == typeof(DateTime) + || unwrappedType == typeof(Uri) + || unwrappedType.HasImplicitConversion(typeof(string)); + } + + public static string ToPsList(this IEnumerable items) => String.Join(", ", items.Select(i => $"'{i}'")); + + public static IEnumerable ToAliasNames(this IEnumerable attributes) => attributes.OfType().SelectMany(aa => aa.AliasNames).Distinct(); + + public static bool IsArrayAndElementTypeIsT(this object item) + { + var itemType = item.GetType(); + var tType = typeof(T); + return itemType.IsArray && !tType.IsArray && tType.IsAssignableFrom(itemType.GetElementType()); + } + + public static bool IsTArrayAndElementTypeIsItem(this object item) + { + var itemType = item.GetType(); + var tType = typeof(T); + return !itemType.IsArray && tType.IsArray && (tType.GetElementType()?.IsAssignableFrom(itemType) ?? false); + } + + public static bool IsTypeOrArrayOfType(this object item) => item is T || item.IsArrayAndElementTypeIsT() || item.IsTArrayAndElementTypeIsItem(); + + public static T NormalizeArrayType(this object item) + { + if (item is T result) + { + return result; + } + + if (item.IsArrayAndElementTypeIsT()) + { + var array = (T[])Convert.ChangeType(item, typeof(T[])); + return array.FirstOrDefault(); + } + + if (item.IsTArrayAndElementTypeIsItem()) + { + var tType = typeof(T); + var array = Array.CreateInstance(tType.GetElementType(), 1); + array.SetValue(item, 0); + return (T)Convert.ChangeType(array, tType); + } + + return default(T); + } + + public static T GetNestedProperty(this PSObject psObject, params string[] names) => psObject.Properties.GetNestedProperty(names); + + public static T GetNestedProperty(this PSMemberInfoCollection properties, params string[] names) + { + var lastName = names.Last(); + var nestedProperties = names.Take(names.Length - 1).Aggregate(properties, (p, n) => p?.GetProperty(n)?.Properties); + return nestedProperties != null ? nestedProperties.GetProperty(lastName) : default(T); + } + + public static T GetProperty(this PSObject psObject, string name) => psObject.Properties.GetProperty(name); + + public static T GetProperty(this PSMemberInfoCollection properties, string name) + { + switch (properties[name]?.Value) + { + case PSObject psObject when psObject.BaseObject is PSCustomObject && psObject.ImmediateBaseObject.IsTypeOrArrayOfType(): + return psObject.ImmediateBaseObject.NormalizeArrayType(); + case PSObject psObject when psObject.BaseObject.IsTypeOrArrayOfType(): + return psObject.BaseObject.NormalizeArrayType(); + case object value when value.IsTypeOrArrayOfType(): + return value.NormalizeArrayType(); + default: + return default(T); + } + } + + public static IEnumerable RunScript(this PSCmdlet cmdlet, string script) + => PsHelpers.RunScript(cmdlet.InvokeCommand, script); + + public static void RunScript(this PSCmdlet cmdlet, string script) + => cmdlet.RunScript(script); + + public static IEnumerable RunScript(this EngineIntrinsics engineIntrinsics, string script) + => PsHelpers.RunScript(engineIntrinsics.InvokeCommand, script); + + public static void RunScript(this EngineIntrinsics engineIntrinsics, string script) + => engineIntrinsics.RunScript(script); + + public static IEnumerable RunScript(this PSCmdlet cmdlet, ScriptBlock block) + => PsHelpers.RunScript(cmdlet.InvokeCommand, block.ToString()); + + public static void RunScript(this PSCmdlet cmdlet, ScriptBlock block) + => cmdlet.RunScript(block.ToString()); + + public static IEnumerable RunScript(this EngineIntrinsics engineIntrinsics, ScriptBlock block) + => PsHelpers.RunScript(engineIntrinsics.InvokeCommand, block.ToString()); + + public static void RunScript(this EngineIntrinsics engineIntrinsics, ScriptBlock block) + => engineIntrinsics.RunScript(block.ToString()); + + /// + /// Returns if a parameter should be hidden by checking for . + /// + /// A PowerShell parameter. + public static bool IsHidden(this Parameter parameter) + { + return parameter.Attributes.Any(attr => attr is DoNotExportAttribute); + } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/PsHelpers.cs b/swaggerci/app/generated/runtime/BuildTime/PsHelpers.cs new file mode 100644 index 000000000000..30b2e3e0b44e --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/PsHelpers.cs @@ -0,0 +1,105 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using Pwsh = System.Management.Automation.PowerShell; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + internal static class PsHelpers + { + public static IEnumerable RunScript(string script) + => Pwsh.Create().AddScript(script).Invoke(); + + public static void RunScript(string script) + => RunScript(script); + + public static IEnumerable RunScript(CommandInvocationIntrinsics cii, string script) + => cii.InvokeScript(script).Select(o => o?.BaseObject).Where(o => o != null).OfType(); + + public static void RunScript(CommandInvocationIntrinsics cii, string script) + => RunScript(cii, script); + + public static IEnumerable GetModuleCmdlets(PSCmdlet cmdlet, params string[] modulePaths) + { + var getCmdletsCommand = String.Join(" + ", modulePaths.Select(mp => $"(Get-Command -Module (Import-Module '{mp}' -PassThru))")); + return (cmdlet?.RunScript(getCmdletsCommand) ?? RunScript(getCmdletsCommand)) + .Where(ci => ci.CommandType != CommandTypes.Alias); + } + + public static IEnumerable GetModuleCmdlets(params string[] modulePaths) + => GetModuleCmdlets(null, modulePaths); + + public static IEnumerable GetScriptCmdlets(PSCmdlet cmdlet, string scriptFolder) + { + // https://stackoverflow.com/a/40969712/294804 + var wrappedFolder = scriptFolder.Contains("'") ? $@"""{scriptFolder}""" : $@"'{scriptFolder}'"; + var getCmdletsCommand = $@" +$currentFunctions = Get-ChildItem function: +Get-ChildItem -Path {wrappedFolder} -Recurse -Include '*.ps1' -File | ForEach-Object {{ . $_.FullName }} +Get-ChildItem function: | Where-Object {{ ($currentFunctions -notcontains $_) -and $_.CmdletBinding }} +"; + return cmdlet?.RunScript(getCmdletsCommand) ?? RunScript(getCmdletsCommand); + } + + public static IEnumerable GetScriptCmdlets(string scriptFolder) + => GetScriptCmdlets(null, scriptFolder); + + public static IEnumerable GetScriptHelpInfo(PSCmdlet cmdlet, params string[] modulePaths) + { + var importModules = String.Join(Environment.NewLine, modulePaths.Select(mp => $"Import-Module '{mp}'")); + var getHelpCommand = $@" +$currentFunctions = Get-ChildItem function: +{importModules} +Get-ChildItem function: | Where-Object {{ ($currentFunctions -notcontains $_) -and $_.CmdletBinding }} | ForEach-Object {{ Get-Help -Name $_.Name -Full }} +"; + return cmdlet?.RunScript(getHelpCommand) ?? RunScript(getHelpCommand); + } + + public static IEnumerable GetScriptHelpInfo(params string[] modulePaths) + => GetScriptHelpInfo(null, modulePaths); + + public static IEnumerable GetModuleCmdletsAndHelpInfo(PSCmdlet cmdlet, params string[] modulePaths) + { + var getCmdletAndHelp = String.Join(" + ", modulePaths.Select(mp => + $@"(Get-Command -Module (Import-Module '{mp}' -PassThru) | Where-Object {{ $_.CommandType -ne 'Alias' }} | ForEach-Object {{ @{{ CommandInfo = $_; HelpInfo = ( invoke-command {{ try {{ Get-Help -Name $_.Name -Full }} catch{{ '' }} }} ) }} }})" + )); + return (cmdlet?.RunScript(getCmdletAndHelp) ?? RunScript(getCmdletAndHelp)) + .Select(h => new CmdletAndHelpInfo { CommandInfo = (h["CommandInfo"] as PSObject)?.BaseObject as CommandInfo, HelpInfo = h["HelpInfo"] as PSObject }); + } + + public static IEnumerable GetModuleCmdletsAndHelpInfo(params string[] modulePaths) + => GetModuleCmdletsAndHelpInfo(null, modulePaths); + + public static CmdletAndHelpInfo ToCmdletAndHelpInfo(this CommandInfo commandInfo, PSObject helpInfo) => new CmdletAndHelpInfo { CommandInfo = commandInfo, HelpInfo = helpInfo }; + + public const string Psd1Indent = " "; + public const string GuidStart = Psd1Indent + "GUID"; + + public static Guid ReadGuidFromPsd1(string psd1Path) + { + var guid = Guid.NewGuid(); + if (File.Exists(psd1Path)) + { + var currentGuid = File.ReadAllLines(psd1Path) + .FirstOrDefault(l => l.StartsWith(GuidStart))?.Split(new[] { " = " }, StringSplitOptions.RemoveEmptyEntries) + .LastOrDefault()?.Replace("'", String.Empty); + guid = currentGuid != null ? Guid.Parse(currentGuid) : guid; + } + + return guid; + } + } + + internal class CmdletAndHelpInfo + { + public CommandInfo CommandInfo { get; set; } + public PSObject HelpInfo { get; set; } + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/StringExtensions.cs b/swaggerci/app/generated/runtime/BuildTime/StringExtensions.cs new file mode 100644 index 000000000000..689f342944d7 --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/StringExtensions.cs @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Linq; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + internal static class StringExtensions + { + public static string NullIfEmpty(this string text) => String.IsNullOrEmpty(text) ? null : text; + public static string NullIfWhiteSpace(this string text) => String.IsNullOrWhiteSpace(text) ? null : text; + public static string EmptyIfNull(this string text) => text ?? String.Empty; + + public static bool? ToNullableBool(this string text) => String.IsNullOrEmpty(text) ? (bool?)null : Convert.ToBoolean(text.ToLowerInvariant()); + + public static string ToUpperFirstCharacter(this string text) => String.IsNullOrEmpty(text) ? text : $"{text[0].ToString().ToUpperInvariant()}{text.Remove(0, 1)}"; + + public static string ReplaceNewLines(this string value, string replacer = " ", string[] newLineSymbols = null) + => (newLineSymbols ?? new []{ "\r\n", "\n" }).Aggregate(value.EmptyIfNull(), (current, symbol) => current.Replace(symbol, replacer)); + public static string NormalizeNewLines(this string value) => value.ReplaceNewLines("\u00A0").Replace("\u00A0", Environment.NewLine); + } +} diff --git a/swaggerci/app/generated/runtime/BuildTime/XmlExtensions.cs b/swaggerci/app/generated/runtime/BuildTime/XmlExtensions.cs new file mode 100644 index 000000000000..7be643c5c0bd --- /dev/null +++ b/swaggerci/app/generated/runtime/BuildTime/XmlExtensions.cs @@ -0,0 +1,28 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.IO; +using System.Xml; +using System.Xml.Serialization; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + internal static class XmlExtensions + { + public static string ToXmlString(this T inputObject, bool excludeDeclaration = false) + { + var serializer = new XmlSerializer(typeof(T)); + //https://stackoverflow.com/a/760290/294804 + //https://stackoverflow.com/a/3732234/294804 + var namespaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty }); + var xmlSettings = new XmlWriterSettings { OmitXmlDeclaration = excludeDeclaration, Indent = true }; + using (var stringWriter = new StringWriter()) + using (var xmlWriter = XmlWriter.Create(stringWriter, xmlSettings)) + { + serializer.Serialize(xmlWriter, inputObject, namespaces); + return stringWriter.ToString(); + } + } + } +} diff --git a/swaggerci/app/generated/runtime/CmdInfoHandler.cs b/swaggerci/app/generated/runtime/CmdInfoHandler.cs new file mode 100644 index 000000000000..cfc062625fac --- /dev/null +++ b/swaggerci/app/generated/runtime/CmdInfoHandler.cs @@ -0,0 +1,40 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Management.Automation; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + using NextDelegate = Func, Task>, Task>; + using SignalDelegate = Func, Task>; + + public class CmdInfoHandler + { + private readonly string processRecordId; + private readonly string parameterSetName; + private readonly InvocationInfo invocationInfo; + + public CmdInfoHandler(string processRecordId, InvocationInfo invocationInfo, string parameterSetName) + { + this.processRecordId = processRecordId; + this.parameterSetName = parameterSetName; + this.invocationInfo = invocationInfo; + } + + public Task SendAsync(HttpRequestMessage request, CancellationToken token, Action cancel, SignalDelegate signal, NextDelegate next) + { + request.Headers.Add("x-ms-client-request-id", processRecordId); + request.Headers.Add("CommandName", invocationInfo?.InvocationName); + request.Headers.Add("FullCommandName", invocationInfo?.MyCommand?.Name); + request.Headers.Add("ParameterSetName", parameterSetName); + + // continue with pipeline. + return next(request, token, cancel, signal); + } + } +} diff --git a/swaggerci/app/generated/runtime/Conversions/ConversionException.cs b/swaggerci/app/generated/runtime/Conversions/ConversionException.cs new file mode 100644 index 000000000000..11240525d896 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/ConversionException.cs @@ -0,0 +1,17 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal class ConversionException : Exception + { + internal ConversionException(string message) + : base(message) { } + + internal ConversionException(JsonNode node, Type targetType) + : base($"Cannot convert '{node.Type}' to a {targetType.Name}") { } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/IJsonConverter.cs b/swaggerci/app/generated/runtime/Conversions/IJsonConverter.cs new file mode 100644 index 000000000000..b90e127f4eb0 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/IJsonConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal interface IJsonConverter + { + JsonNode ToJson(object value); + + object FromJson(JsonNode node); + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/BinaryConverter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/BinaryConverter.cs new file mode 100644 index 000000000000..91ea4e695eb5 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/BinaryConverter.cs @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class BinaryConverter : JsonConverter + { + internal override JsonNode ToJson(byte[] value) => new XBinary(value); + + internal override byte[] FromJson(JsonNode node) + { + switch (node.Type) + { + case JsonType.String : return Convert.FromBase64String(node.ToString()); // Base64 Encoded + case JsonType.Binary : return ((XBinary)node).Value; + } + + throw new ConversionException(node, typeof(byte[])); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/BooleanConverter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/BooleanConverter.cs new file mode 100644 index 000000000000..99c10268db97 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/BooleanConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class BooleanConverter : JsonConverter + { + internal override JsonNode ToJson(bool value) => new JsonBoolean(value); + + internal override bool FromJson(JsonNode node) => (bool)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/DateTimeConverter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/DateTimeConverter.cs new file mode 100644 index 000000000000..8e49a29f235e --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/DateTimeConverter.cs @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class DateTimeConverter : JsonConverter + { + internal override JsonNode ToJson(DateTime value) + { + return new JsonDate(value); + } + + internal override DateTime FromJson(JsonNode node) => (DateTime)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/DateTimeOffsetConverter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/DateTimeOffsetConverter.cs new file mode 100644 index 000000000000..b2aec8611b56 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/DateTimeOffsetConverter.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class DateTimeOffsetConverter : JsonConverter + { + internal override JsonNode ToJson(DateTimeOffset value) => new JsonDate(value); + + internal override DateTimeOffset FromJson(JsonNode node) => (DateTimeOffset)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/DecimalConverter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/DecimalConverter.cs new file mode 100644 index 000000000000..056335038129 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/DecimalConverter.cs @@ -0,0 +1,16 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class DecimalConverter : JsonConverter + { + internal override JsonNode ToJson(decimal value) => new JsonNumber(value.ToString()); + + internal override decimal FromJson(JsonNode node) + { + return (decimal)node; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/DoubleConverter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/DoubleConverter.cs new file mode 100644 index 000000000000..14daf256fcc1 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/DoubleConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class DoubleConverter : JsonConverter + { + internal override JsonNode ToJson(double value) => new JsonNumber(value); + + internal override double FromJson(JsonNode node) => (double)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/EnumConverter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/EnumConverter.cs new file mode 100644 index 000000000000..98c4505ed6a3 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/EnumConverter.cs @@ -0,0 +1,30 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class EnumConverter : IJsonConverter + { + private readonly Type type; + + internal EnumConverter(Type type) + { + this.type = type ?? throw new ArgumentNullException(nameof(type)); + } + + public JsonNode ToJson(object value) => new JsonString(value.ToString()); + + public object FromJson(JsonNode node) + { + if (node.Type == JsonType.Number) + { + return Enum.ToObject(type, (int)node); + } + + return Enum.Parse(type, node.ToString(), ignoreCase: true); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/GuidConverter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/GuidConverter.cs new file mode 100644 index 000000000000..284e6c622f25 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/GuidConverter.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class GuidConverter : JsonConverter + { + internal override JsonNode ToJson(Guid value) => new JsonString(value.ToString()); + + internal override Guid FromJson(JsonNode node) => (Guid)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/HashSet'1Converter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/HashSet'1Converter.cs new file mode 100644 index 000000000000..131b390e8fd6 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/HashSet'1Converter.cs @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Collections.Generic; +using System.Linq; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class HashSetConverter : JsonConverter> + { + internal override JsonNode ToJson(HashSet value) + { + return new XSet(value); + } + + internal override HashSet FromJson(JsonNode node) + { + var collection = node as ICollection; + + if (collection.Count == 0) return null; + + // TODO: Remove Linq depedency + return new HashSet(collection.Cast()); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/Int16Converter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/Int16Converter.cs new file mode 100644 index 000000000000..4a5df895e671 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/Int16Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class Int16Converter : JsonConverter + { + internal override JsonNode ToJson(short value) => new JsonNumber(value); + + internal override short FromJson(JsonNode node) => (short)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/Int32Converter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/Int32Converter.cs new file mode 100644 index 000000000000..bfa423a05812 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/Int32Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class Int32Converter : JsonConverter + { + internal override JsonNode ToJson(int value) => new JsonNumber(value); + + internal override int FromJson(JsonNode node) => (int)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/Int64Converter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/Int64Converter.cs new file mode 100644 index 000000000000..475ea339526c --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/Int64Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class Int64Converter : JsonConverter + { + internal override JsonNode ToJson(long value) => new JsonNumber(value); + + internal override long FromJson(JsonNode node) => (long)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/JsonArrayConverter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/JsonArrayConverter.cs new file mode 100644 index 000000000000..4e338ca5e87d --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/JsonArrayConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class JsonArrayConverter : JsonConverter + { + internal override JsonNode ToJson(JsonArray value) => value; + + internal override JsonArray FromJson(JsonNode node) => (JsonArray)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/JsonObjectConverter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/JsonObjectConverter.cs new file mode 100644 index 000000000000..2de4f9e749e1 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/JsonObjectConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class JsonObjectConverter : JsonConverter + { + internal override JsonNode ToJson(JsonObject value) => value; + + internal override JsonObject FromJson(JsonNode node) => (JsonObject)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/SingleConverter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/SingleConverter.cs new file mode 100644 index 000000000000..b0dacb16607b --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/SingleConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class SingleConverter : JsonConverter + { + internal override JsonNode ToJson(float value) => new JsonNumber(value.ToString()); + + internal override float FromJson(JsonNode node) => (float)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/StringConverter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/StringConverter.cs new file mode 100644 index 000000000000..2dcdf3ecb252 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/StringConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class StringConverter : JsonConverter + { + internal override JsonNode ToJson(string value) => new JsonString(value); + + internal override string FromJson(JsonNode node) => node.ToString(); + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/TimeSpanConverter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/TimeSpanConverter.cs new file mode 100644 index 000000000000..59bf3a8ed870 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/TimeSpanConverter.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class TimeSpanConverter : JsonConverter + { + internal override JsonNode ToJson(TimeSpan value) => new JsonString(value.ToString()); + + internal override TimeSpan FromJson(JsonNode node) => (TimeSpan)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/UInt16Converter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/UInt16Converter.cs new file mode 100644 index 000000000000..872cb30ec37e --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/UInt16Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class UInt16Converter : JsonConverter + { + internal override JsonNode ToJson(ushort value) => new JsonNumber(value); + + internal override ushort FromJson(JsonNode node) => (ushort)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/UInt32Converter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/UInt32Converter.cs new file mode 100644 index 000000000000..473e1e2b316e --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/UInt32Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class UInt32Converter : JsonConverter + { + internal override JsonNode ToJson(uint value) => new JsonNumber(value); + + internal override uint FromJson(JsonNode node) => (uint)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/UInt64Converter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/UInt64Converter.cs new file mode 100644 index 000000000000..266f5902ee83 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/UInt64Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class UInt64Converter : JsonConverter + { + internal override JsonNode ToJson(ulong value) => new JsonNumber(value.ToString()); + + internal override ulong FromJson(JsonNode node) => (ulong)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/Instances/UriConverter.cs b/swaggerci/app/generated/runtime/Conversions/Instances/UriConverter.cs new file mode 100644 index 000000000000..0ba5523f937b --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/Instances/UriConverter.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class UriConverter : JsonConverter + { + internal override JsonNode ToJson(Uri value) => new JsonString(value.AbsoluteUri); + + internal override Uri FromJson(JsonNode node) => (Uri)node; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/JsonConverter.cs b/swaggerci/app/generated/runtime/Conversions/JsonConverter.cs new file mode 100644 index 000000000000..7dc777aad897 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/JsonConverter.cs @@ -0,0 +1,21 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public abstract class JsonConverter : IJsonConverter + { + internal abstract T FromJson(JsonNode node); + + internal abstract JsonNode ToJson(T value); + + #region IConverter + + object IJsonConverter.FromJson(JsonNode node) => FromJson(node); + + JsonNode IJsonConverter.ToJson(object value) => ToJson((T)value); + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/JsonConverterAttribute.cs b/swaggerci/app/generated/runtime/Conversions/JsonConverterAttribute.cs new file mode 100644 index 000000000000..3591008387d6 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/JsonConverterAttribute.cs @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class JsonConverterAttribute : Attribute + { + internal JsonConverterAttribute(Type type) + { + Converter = (IJsonConverter)Activator.CreateInstance(type); + } + + internal IJsonConverter Converter { get; } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/JsonConverterFactory.cs b/swaggerci/app/generated/runtime/Conversions/JsonConverterFactory.cs new file mode 100644 index 000000000000..009c88084b25 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/JsonConverterFactory.cs @@ -0,0 +1,91 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class JsonConverterFactory + { + private static readonly Dictionary converters = new Dictionary(); + + static JsonConverterFactory() + { + AddInternal(new BooleanConverter()); + AddInternal(new DateTimeConverter()); + AddInternal(new DateTimeOffsetConverter()); + AddInternal(new BinaryConverter()); + AddInternal(new DecimalConverter()); + AddInternal(new DoubleConverter()); + AddInternal(new GuidConverter()); + AddInternal(new Int16Converter()); + AddInternal(new Int32Converter()); + AddInternal(new Int64Converter()); + AddInternal(new SingleConverter()); + AddInternal(new StringConverter()); + AddInternal(new TimeSpanConverter()); + AddInternal(new UInt16Converter()); + AddInternal(new UInt32Converter()); + AddInternal(new UInt64Converter()); + AddInternal(new UriConverter()); + + // Hash sets + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + + // JSON + + AddInternal(new JsonObjectConverter()); + AddInternal(new JsonArrayConverter()); + } + + internal static Dictionary Instances => converters; + + internal static IJsonConverter Get(Type type) + { + var details = TypeDetails.Get(type); + + if (details.JsonConverter == null) + { + throw new ConversionException($"No converter found for '{type.Name}'."); + } + + return details.JsonConverter; + } + + internal static bool TryGet(Type type, out IJsonConverter converter) + { + var typeDetails = TypeDetails.Get(type); + + converter = typeDetails.JsonConverter; + + return converter != null; + } + + private static void AddInternal(JsonConverter converter) + => converters.Add(typeof(T), converter); + + private static void AddInternal(IJsonConverter converter) + => converters.Add(typeof(T), converter); + + internal static void Add(JsonConverter converter) + { + if (converter == null) + { + throw new ArgumentNullException(nameof(converter)); + } + + AddInternal(converter); + + var type = TypeDetails.Get(); + + type.JsonConverter = converter; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Conversions/StringLikeConverter.cs b/swaggerci/app/generated/runtime/Conversions/StringLikeConverter.cs new file mode 100644 index 000000000000..577d2c66f544 --- /dev/null +++ b/swaggerci/app/generated/runtime/Conversions/StringLikeConverter.cs @@ -0,0 +1,45 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class StringLikeConverter : IJsonConverter + { + private readonly Type type; + private readonly MethodInfo parseMethod; + + internal StringLikeConverter(Type type) + { + this.type = type ?? throw new ArgumentNullException(nameof(type)); + this.parseMethod = StringLikeHelper.GetParseMethod(type); + } + + public object FromJson(JsonNode node) => + parseMethod.Invoke(null, new[] { node.ToString() }); + + public JsonNode ToJson(object value) => new JsonString(value.ToString()); + } + + internal static class StringLikeHelper + { + private static readonly Type[] parseMethodParamaterTypes = new[] { typeof(string) }; + + internal static bool IsStringLike(Type type) + { + return GetParseMethod(type) != null; + } + + internal static MethodInfo GetParseMethod(Type type) + { + MethodInfo method = type.GetMethod("Parse", parseMethodParamaterTypes); + + if (method?.IsPublic != true) return null; + + return method; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Customizations/IJsonSerializable.cs b/swaggerci/app/generated/runtime/Customizations/IJsonSerializable.cs new file mode 100644 index 000000000000..cd0e1e2bb5e2 --- /dev/null +++ b/swaggerci/app/generated/runtime/Customizations/IJsonSerializable.cs @@ -0,0 +1,263 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json; +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + public interface IJsonSerializable + { + JsonNode ToJson(JsonObject container = null, SerializationMode serializationMode = SerializationMode.None); + } + internal static class JsonSerializable + { + /// + /// Serializes an enumerable and returns a JsonNode. + /// + /// an IEnumerable collection of items + /// A JsonNode that contains the collection of items serialized. + private static JsonNode ToJsonValue(System.Collections.IEnumerable enumerable) + { + if (enumerable != null) + { + // is it a byte array of some kind? + if (enumerable is System.Collections.Generic.IEnumerable byteEnumerable) + { + return new XBinary(System.Linq.Enumerable.ToArray(byteEnumerable)); + } + + var hasValues = false; + // just create an array of value nodes. + var result = new XNodeArray(); + foreach (var each in enumerable) + { + // we had at least one value. + hasValues = true; + + // try to serialize it. + var node = ToJsonValue(each); + if (null != node) + { + result.Add(node); + } + } + + // if we were able to add values, (or it was just empty), return it. + if (result.Count > 0 || !hasValues) + { + return result; + } + } + + // we couldn't serialize the values. Sorry. + return null; + } + + /// + /// Serializes a valuetype to a JsonNode. + /// + /// a ValueType (ie, a primitive, enum or struct) to be serialized + /// a JsonNode with the serialized value + private static JsonNode ToJsonValue(ValueType vValue) + { + // numeric type + if (vValue is SByte || vValue is Int16 || vValue is Int32 || vValue is Int64 || vValue is Byte || vValue is UInt16 || vValue is UInt32 || vValue is UInt64 || vValue is decimal || vValue is float || vValue is double) + { + return new JsonNumber(vValue.ToString()); + } + + // boolean type + if (vValue is bool bValue) + { + return new JsonBoolean(bValue); + } + + // dates + if (vValue is DateTime dtValue) + { + return new JsonDate(dtValue); + } + + // DictionaryEntity struct type + if (vValue is System.Collections.DictionaryEntry deValue) + { + return new JsonObject { { deValue.Key.ToString(), ToJsonValue(deValue.Value) } }; + } + + // sorry, no idea. + return null; + } + /// + /// Attempts to serialize an object by using ToJson() or ToJsonString() if they exist. + /// + /// the object to be serialized. + /// the serialized JsonNode (if successful), otherwise, null + private static JsonNode TryToJsonValue(dynamic oValue) + { + object jsonValue = null; + dynamic v = oValue; + try + { + jsonValue = v.ToJson().ToString(); + } + catch + { + // no harm... + try + { + jsonValue = v.ToJsonString().ToString(); + } + catch + { + // no worries here either. + } + } + + // if we got something out, let's use it. + if (null != jsonValue) + { + // JsonNumber is really a literal json value. Just don't try to cast that back to an actual number, ok? + return new JsonNumber(jsonValue.ToString()); + } + + return null; + } + + /// + /// Serialize an object by using a variety of methods. + /// + /// the object to be serialized. + /// the serialized JsonNode (if successful), otherwise, null + internal static JsonNode ToJsonValue(object value) + { + // things that implement our interface are preferred. + if (value is Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IJsonSerializable jsonSerializable) + { + return jsonSerializable.ToJson(); + } + + // strings are easy. + if (value is string || value is char) + { + return new JsonString(value.ToString()); + } + + // value types are fairly straightforward (fallback to ToJson()/ToJsonString() or literal JsonString ) + if (value is System.ValueType vValue) + { + return ToJsonValue(vValue) ?? TryToJsonValue(vValue) ?? new JsonString(vValue.ToString()); + } + + // dictionaries are objects that should be able to serialize + if (value is System.Collections.Generic.IDictionary dictionary) + { + return Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.JsonSerializable.ToJson(dictionary, null); + } + + // hashtables are converted to dictionaries for serialization + if (value is System.Collections.Hashtable hashtable) + { + var dict = new System.Collections.Generic.Dictionary(); + DictionaryExtensions.HashTableToDictionary(hashtable, dict); + return Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.JsonSerializable.ToJson(dict, null); + } + + // enumerable collections are handled like arrays (again, fallback to ToJson()/ToJsonString() or literal JsonString) + if (value is System.Collections.IEnumerable enumerableValue) + { + // some kind of enumerable value + return ToJsonValue(enumerableValue) ?? TryToJsonValue(value) ?? new JsonString(value.ToString()); + } + + // at this point, we're going to fallback to a string literal here, since we really have no idea what it is. + return new JsonString(value.ToString()); + } + + internal static JsonObject ToJson(System.Collections.Generic.Dictionary dictionary, JsonObject container) => ToJson((System.Collections.Generic.IDictionary)dictionary, container); + + /// + /// Serializes a dictionary into a JsonObject container. + /// + /// The dictionary to serailize + /// the container to serialize the dictionary into + /// the container + internal static JsonObject ToJson(System.Collections.Generic.IDictionary dictionary, JsonObject container) + { + container = container ?? new JsonObject(); + if (dictionary != null && dictionary.Count > 0) + { + foreach (var key in dictionary) + { + // currently, we don't serialize null values. + if (null != key.Value) + { + container.Add(key.Key, ToJsonValue(key.Value)); + continue; + } + } + } + return container; + } + + internal static Func> DeserializeDictionary(Func> dictionaryFactory) + { + return (node) => FromJson(node, dictionaryFactory(), (object)(DeserializeDictionary(dictionaryFactory)) as Func); + } + + internal static System.Collections.Generic.IDictionary FromJson(JsonObject json, System.Collections.Generic.Dictionary container, System.Func objectFactory, System.Collections.Generic.HashSet excludes = null) => FromJson(json, (System.Collections.Generic.IDictionary)container, objectFactory, excludes); + + + internal static System.Collections.Generic.IDictionary FromJson(JsonObject json, System.Collections.Generic.IDictionary container, System.Func objectFactory, System.Collections.Generic.HashSet excludes = null) + { + if (null == json) + { + return container; + } + + foreach (var key in json.Keys) + { + if (true == excludes?.Contains(key)) + { + continue; + } + + var value = json[key]; + try + { + switch (value.Type) + { + case JsonType.Null: + // skip null values. + continue; + + case JsonType.Array: + case JsonType.Boolean: + case JsonType.Date: + case JsonType.Binary: + case JsonType.Number: + case JsonType.String: + container.Add(key, (V)value.ToValue()); + break; + case JsonType.Object: + if (objectFactory != null) + { + var v = objectFactory(value as JsonObject); + if (null != v) + { + container.Add(key, v); + } + } + break; + } + } + catch + { + } + } + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Customizations/JsonArray.cs b/swaggerci/app/generated/runtime/Customizations/JsonArray.cs new file mode 100644 index 000000000000..edf3ff90f985 --- /dev/null +++ b/swaggerci/app/generated/runtime/Customizations/JsonArray.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public partial class JsonArray + { + internal override object ToValue() => Count == 0 ? new object[0] : System.Linq.Enumerable.ToArray(System.Linq.Enumerable.Select(this, each => each.ToValue())); + } + + +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Customizations/JsonBoolean.cs b/swaggerci/app/generated/runtime/Customizations/JsonBoolean.cs new file mode 100644 index 000000000000..f14c1550a356 --- /dev/null +++ b/swaggerci/app/generated/runtime/Customizations/JsonBoolean.cs @@ -0,0 +1,16 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal partial class JsonBoolean + { + internal static JsonBoolean Create(bool? value) => value is bool b ? new JsonBoolean(b) : null; + internal bool ToBoolean() => Value; + + internal override object ToValue() => Value; + } + + +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Customizations/JsonNode.cs b/swaggerci/app/generated/runtime/Customizations/JsonNode.cs new file mode 100644 index 000000000000..3270b3c68e21 --- /dev/null +++ b/swaggerci/app/generated/runtime/Customizations/JsonNode.cs @@ -0,0 +1,21 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + using System; + using System.Collections.Generic; + + public partial class JsonNode + { + /// + /// Returns the content of this node as the underlying value. + /// Will default to the string representation if not overridden in child classes. + /// + /// an object with the underlying value of the node. + internal virtual object ToValue() { + return this.ToString(); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Customizations/JsonNumber.cs b/swaggerci/app/generated/runtime/Customizations/JsonNumber.cs new file mode 100644 index 000000000000..14777a4e6c91 --- /dev/null +++ b/swaggerci/app/generated/runtime/Customizations/JsonNumber.cs @@ -0,0 +1,78 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + using System; + + public partial class JsonNumber + { + internal static readonly DateTime EpochDate = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); + private static long ToUnixTime(DateTime dateTime) + { + return (long)dateTime.Subtract(EpochDate).TotalSeconds; + } + private static DateTime FromUnixTime(long totalSeconds) + { + return EpochDate.AddSeconds(totalSeconds); + } + internal byte ToByte() => this; + internal int ToInt() => this; + internal long ToLong() => this; + internal short ToShort() => this; + internal UInt16 ToUInt16() => this; + internal UInt32 ToUInt32() => this; + internal UInt64 ToUInt64() => this; + internal decimal ToDecimal() => this; + internal double ToDouble() => this; + internal float ToFloat() => this; + + internal static JsonNumber Create(int? value) => value is int n ? new JsonNumber(n) : null; + internal static JsonNumber Create(long? value) => value is long n ? new JsonNumber(n) : null; + internal static JsonNumber Create(float? value) => value is float n ? new JsonNumber(n) : null; + internal static JsonNumber Create(double? value) => value is double n ? new JsonNumber(n) : null; + internal static JsonNumber Create(decimal? value) => value is decimal n ? new JsonNumber(n) : null; + internal static JsonNumber Create(DateTime? value) => value is DateTime date ? new JsonNumber(ToUnixTime(date)) : null; + + public static implicit operator DateTime(JsonNumber number) => FromUnixTime(number); + internal DateTime ToDateTime() => this; + + internal JsonNumber(decimal value) + { + this.value = value.ToString(); + } + internal override object ToValue() + { + if (IsInteger) + { + if (int.TryParse(this.value, out int iValue)) + { + return iValue; + } + if (long.TryParse(this.value, out long lValue)) + { + return lValue; + } + } + else + { + if (float.TryParse(this.value, out float fValue)) + { + return fValue; + } + if (double.TryParse(this.value, out double dValue)) + { + return dValue; + } + if (decimal.TryParse(this.value, out decimal dcValue)) + { + return dcValue; + } + } + return null; + } + } + + +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Customizations/JsonObject.cs b/swaggerci/app/generated/runtime/Customizations/JsonObject.cs new file mode 100644 index 000000000000..c49b31bebab2 --- /dev/null +++ b/swaggerci/app/generated/runtime/Customizations/JsonObject.cs @@ -0,0 +1,183 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + using System; + using System.Collections.Generic; + + public partial class JsonObject + { + internal override object ToValue() => Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.JsonSerializable.FromJson(this, new System.Collections.Generic.Dictionary(), (obj) => obj.ToValue()); + + internal void SafeAdd(string name, Func valueFn) + { + if (valueFn != null) + { + var value = valueFn(); + if (null != value) + { + items.Add(name, value); + } + } + } + + internal void SafeAdd(string name, JsonNode value) + { + if (null != value) + { + items.Add(name, value); + } + } + + internal T NullableProperty(string propertyName) where T : JsonNode + { + if (this.TryGetValue(propertyName, out JsonNode value)) + { + if (value.IsNull) + { + return null; + } + if (value is T tval) + { + return tval; + } + /* it's present, but not the correct type... */ + //throw new Exception($"Property {propertyName} in object expected type {typeof(T).Name} but value of type {value.Type.ToString()} was found."); + } + return null; + } + + internal JsonObject Property(string propertyName) + { + return PropertyT(propertyName); + } + + internal T PropertyT(string propertyName) where T : JsonNode + { + if (this.TryGetValue(propertyName, out JsonNode value)) + { + if (value.IsNull) + { + return null; // we're going to assume that the consumer knows what to do if null is explicity returned? + } + + if (value is T tval) + { + return tval; + } + /* it's present, but not the correct type... */ + // throw new Exception($"Property {propertyName} in object expected type {typeof(T).Name} but value of type {value.Type.ToString()} was found."); + } + return null; + } + + internal int NumberProperty(string propertyName, ref int output) => output = this.PropertyT(propertyName)?.ToInt() ?? output; + internal float NumberProperty(string propertyName, ref float output) => output = this.PropertyT(propertyName)?.ToFloat() ?? output; + internal byte NumberProperty(string propertyName, ref byte output) => output = this.PropertyT(propertyName)?.ToByte() ?? output; + internal long NumberProperty(string propertyName, ref long output) => output = this.PropertyT(propertyName)?.ToLong() ?? output; + internal double NumberProperty(string propertyName, ref double output) => output = this.PropertyT(propertyName)?.ToDouble() ?? output; + internal decimal NumberProperty(string propertyName, ref decimal output) => output = this.PropertyT(propertyName)?.ToDecimal() ?? output; + internal short NumberProperty(string propertyName, ref short output) => output = this.PropertyT(propertyName)?.ToShort() ?? output; + internal DateTime NumberProperty(string propertyName, ref DateTime output) => output = this.PropertyT(propertyName)?.ToDateTime() ?? output; + + internal int? NumberProperty(string propertyName, ref int? output) => output = this.NullableProperty(propertyName)?.ToInt() ?? null; + internal float? NumberProperty(string propertyName, ref float? output) => output = this.NullableProperty(propertyName)?.ToFloat() ?? null; + internal byte? NumberProperty(string propertyName, ref byte? output) => output = this.NullableProperty(propertyName)?.ToByte() ?? null; + internal long? NumberProperty(string propertyName, ref long? output) => output = this.NullableProperty(propertyName)?.ToLong() ?? null; + internal double? NumberProperty(string propertyName, ref double? output) => output = this.NullableProperty(propertyName)?.ToDouble() ?? null; + internal decimal? NumberProperty(string propertyName, ref decimal? output) => output = this.NullableProperty(propertyName)?.ToDecimal() ?? null; + internal short? NumberProperty(string propertyName, ref short? output) => output = this.NullableProperty(propertyName)?.ToShort() ?? null; + + internal DateTime? NumberProperty(string propertyName, ref DateTime? output) => output = this.NullableProperty(propertyName)?.ToDateTime() ?? null; + + + internal string StringProperty(string propertyName) => this.PropertyT(propertyName)?.ToString(); + internal string StringProperty(string propertyName, ref string output) => output = this.PropertyT(propertyName)?.ToString() ?? output; + internal char StringProperty(string propertyName, ref char output) => output = this.PropertyT(propertyName)?.ToChar() ?? output; + internal char? StringProperty(string propertyName, ref char? output) => output = this.PropertyT(propertyName)?.ToChar() ?? null; + + internal DateTime StringProperty(string propertyName, ref DateTime output) => DateTime.TryParse(this.PropertyT(propertyName)?.ToString(), out output) ? output : output; + internal DateTime? StringProperty(string propertyName, ref DateTime? output) => output = DateTime.TryParse(this.PropertyT(propertyName)?.ToString(), out var o) ? o : output; + + + internal bool BooleanProperty(string propertyName, ref bool output) => output = this.PropertyT(propertyName)?.ToBoolean() ?? output; + internal bool? BooleanProperty(string propertyName, ref bool? output) => output = this.PropertyT(propertyName)?.ToBoolean() ?? null; + + internal T[] ArrayProperty(string propertyName, ref T[] output, Func deserializer) + { + var array = this.PropertyT(propertyName); + if (array != null) + { + output = new T[array.Count]; + for (var i = 0; i < output.Length; i++) + { + output[i] = deserializer(array[i]); + } + } + return output; + } + internal T[] ArrayProperty(string propertyName, Func deserializer) + { + var array = this.PropertyT(propertyName); + if (array != null) + { + var output = new T[array.Count]; + for (var i = 0; i < output.Length; i++) + { + output[i] = deserializer(array[i]); + } + return output; + } + return new T[0]; + } + internal void IterateArrayProperty(string propertyName, Action deserializer) + { + var array = this.PropertyT(propertyName); + if (array != null) + { + for (var i = 0; i < array.Count; i++) + { + deserializer(array[i]); + } + } + } + + internal Dictionary DictionaryProperty(string propertyName, ref Dictionary output, Func deserializer) + { + var dictionary = this.PropertyT(propertyName); + if (output == null) + { + output = new Dictionary(); + } + else + { + output.Clear(); + } + if (dictionary != null) + { + foreach (var key in dictionary.Keys) + { + output[key] = deserializer(dictionary[key]); + } + } + return output; + } + + internal static JsonObject Create(IDictionary source, Func selector) + { + if (source == null || selector == null) + { + return null; + } + var result = new JsonObject(); + + foreach (var key in source.Keys) + { + result.SafeAdd(key, selector(source[key])); + } + return result; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Customizations/JsonString.cs b/swaggerci/app/generated/runtime/Customizations/JsonString.cs new file mode 100644 index 000000000000..882640ff7e1a --- /dev/null +++ b/swaggerci/app/generated/runtime/Customizations/JsonString.cs @@ -0,0 +1,34 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + using System; + using System.Globalization; + using System.Linq; + + public partial class JsonString + { + internal static string DateFormat = "yyyy-MM-dd"; + internal static string DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK"; + internal static string DateTimeRfc1123Format = "R"; + + internal static JsonString Create(string value) => value == null ? null : new JsonString(value); + internal static JsonString Create(char? value) => value is char c ? new JsonString(c.ToString()) : null; + + internal static JsonString CreateDate(DateTime? value) => value is DateTime date ? new JsonString(date.ToString(DateFormat, CultureInfo.CurrentCulture)) : null; + internal static JsonString CreateDateTime(DateTime? value) => value is DateTime date ? new JsonString(date.ToString(DateTimeFormat, CultureInfo.CurrentCulture)) : null; + internal static JsonString CreateDateTimeRfc1123(DateTime? value) => value is DateTime date ? new JsonString(date.ToString(DateTimeRfc1123Format, CultureInfo.CurrentCulture)) : null; + + internal char ToChar() => this.Value?.ToString()?.FirstOrDefault() ?? default(char); + public static implicit operator char(JsonString value) => value?.ToString()?.FirstOrDefault() ?? default(char); + public static implicit operator char? (JsonString value) => value?.ToString()?.FirstOrDefault(); + + public static implicit operator DateTime(JsonString value) => DateTime.TryParse(value, out var output) ? output : default(DateTime); + public static implicit operator DateTime? (JsonString value) => DateTime.TryParse(value, out var output) ? output : default(DateTime?); + + } + + +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Customizations/XNodeArray.cs b/swaggerci/app/generated/runtime/Customizations/XNodeArray.cs new file mode 100644 index 000000000000..fa5a80b2f544 --- /dev/null +++ b/swaggerci/app/generated/runtime/Customizations/XNodeArray.cs @@ -0,0 +1,44 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + using System; + using System.Linq; + + public partial class XNodeArray + { + internal static XNodeArray Create(T[] source, Func selector) + { + if (source == null || selector == null) + { + return null; + } + var result = new XNodeArray(); + foreach (var item in source.Select(selector)) + { + result.SafeAdd(item); + } + return result; + } + internal void SafeAdd(JsonNode item) + { + if (item != null) + { + items.Add(item); + } + } + internal void SafeAdd(Func itemFn) + { + if (itemFn != null) + { + var item = itemFn(); + if (item != null) + { + items.Add(item); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Debugging.cs b/swaggerci/app/generated/runtime/Debugging.cs new file mode 100644 index 000000000000..793610735c83 --- /dev/null +++ b/swaggerci/app/generated/runtime/Debugging.cs @@ -0,0 +1,28 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + internal static class AttachDebugger + { + internal static void Break() + { + while (!System.Diagnostics.Debugger.IsAttached) + { + System.Console.Error.WriteLine($"Waiting for debugger to attach to process {System.Diagnostics.Process.GetCurrentProcess().Id}"); + for (int i = 0; i < 50; i++) + { + if (System.Diagnostics.Debugger.IsAttached) + { + break; + } + System.Threading.Thread.Sleep(100); + System.Console.Error.Write("."); + } + System.Console.Error.WriteLine(); + } + System.Diagnostics.Debugger.Break(); + } + } +} diff --git a/swaggerci/app/generated/runtime/DictionaryExtensions.cs b/swaggerci/app/generated/runtime/DictionaryExtensions.cs new file mode 100644 index 000000000000..fee3b4fa6e3a --- /dev/null +++ b/swaggerci/app/generated/runtime/DictionaryExtensions.cs @@ -0,0 +1,33 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + internal static class DictionaryExtensions + { + internal static void HashTableToDictionary(System.Collections.Hashtable hashtable, System.Collections.Generic.IDictionary dictionary) + { + if (null == hashtable) + { + return; + } + foreach (var each in hashtable.Keys) + { + var key = each.ToString(); + var value = hashtable[key]; + if (null != value) + { + try + { + dictionary[key] = (V)value; + } + catch + { + // Values getting dropped; not compatible with target dictionary. Not sure what to do here. + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/EventData.cs b/swaggerci/app/generated/runtime/EventData.cs new file mode 100644 index 000000000000..d74e6f856719 --- /dev/null +++ b/swaggerci/app/generated/runtime/EventData.cs @@ -0,0 +1,78 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + + using System; + using System.Threading; + + ///Represents the data in signaled event. + public partial class EventData + { + /// + /// The type of the event being signaled + /// + public string Id; + + /// + /// The user-ready message from the event. + /// + public string Message; + + /// + /// When the event is about a parameter, this is the parameter name. + /// Used in Validation Events + /// + public string Parameter; + + /// + /// This represents a numeric value associated with the event. + /// Use for progress-style events + /// + public double Value; + + /// + /// Any extended data for an event should be serialized and stored here. + /// + public string ExtendedData; + + /// + /// If the event triggers after the request message has been created, this will contain the Request Message (which in HTTP calls would be HttpRequestMessage) + /// + /// Typically you'd cast this to the expected type to use it: + /// + /// if(eventData.RequestMessgae is HttpRequestMessage httpRequest) + /// { + /// httpRequest.Headers.Add("x-request-flavor", "vanilla"); + /// } + /// + /// + public object RequestMessage; + + /// + /// If the event triggers after the response is back, this will contain the Response Message (which in HTTP calls would be HttpResponseMessage) + /// + /// Typically you'd cast this to the expected type to use it: + /// + /// if(eventData.ResponseMessage is HttpResponseMessage httpResponse){ + /// var flavor = httpResponse.Headers.GetValue("x-request-flavor"); + /// } + /// + /// + public object ResponseMessage; + + /// + /// Cancellation method for this event. + /// + /// If the event consumer wishes to cancel the request that initiated this event, call Cancel() + /// + /// + /// The original initiator of the request must provide the implementation of this. + /// + public System.Action Cancel; + } + +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/EventDataExtensions.cs b/swaggerci/app/generated/runtime/EventDataExtensions.cs new file mode 100644 index 000000000000..ec75484145f5 --- /dev/null +++ b/swaggerci/app/generated/runtime/EventDataExtensions.cs @@ -0,0 +1,94 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + using System; + + /// + /// PowerShell-specific data on top of the llc# EventData + /// + /// + /// In PowerShell, we add on the EventDataConverter to support sending events between modules. + /// Obviously, this code would need to be duplcated on both modules. + /// This is preferable to sharing a common library, as versioning makes that problematic. + /// + [System.ComponentModel.TypeConverter(typeof(EventDataConverter))] + public partial class EventData : EventArgs + { + } + + /// + /// A PowerShell PSTypeConverter to adapt an EventData object that has been passed. + /// Usually used between modules. + /// + public class EventDataConverter : System.Management.Automation.PSTypeConverter + { + public override bool CanConvertTo(object sourceValue, Type destinationType) => false; + public override object ConvertTo(object sourceValue, Type destinationType, IFormatProvider formatProvider, bool ignoreCase) => null; + public override bool CanConvertFrom(dynamic sourceValue, Type destinationType) => destinationType == typeof(EventData) && CanConvertFrom(sourceValue); + public override object ConvertFrom(dynamic sourceValue, Type destinationType, IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Verifies that a given object has the required members to convert it to the target type (EventData) + /// + /// Uses a dynamic type so that it is able to use the simplest code without excessive checking. + /// + /// The instance to verify + /// True, if the object has all the required parameters. + public static bool CanConvertFrom(dynamic sourceValue) + { + try + { + // check if this has *required* parameters... + sourceValue?.Id?.GetType(); + sourceValue?.Message?.GetType(); + sourceValue?.Cancel?.GetType(); + + // remaining parameters are not *required*, + // and if they have values, it will copy them at conversion time. + } + catch + { + // if anything throws an exception (because it's null, or doesn't have that member) + return false; + } + return true; + } + + /// + /// Returns result of the delegate as the expected type, or default(T) + /// + /// This isolates any exceptions from the consumer. + /// + /// A delegate that returns a value + /// The desired output type + /// The value from the function if the type is correct + private static T To(Func srcValue) + { + try { return srcValue(); } + catch { return default(T); } + } + + /// + /// Converts an incoming object to the expected type by treating the incoming object as a dynamic, and coping the expected values. + /// + /// the incoming object + /// EventData + public static EventData ConvertFrom(dynamic sourceValue) + { + return new EventData + { + Id = To(() => sourceValue.Id), + Message = To(() => sourceValue.Message), + Parameter = To(() => sourceValue.Parameter), + Value = To(() => sourceValue.Value), + RequestMessage = To(() => sourceValue.RequestMessage), + ResponseMessage = To(() => sourceValue.ResponseMessage), + Cancel = To(() => sourceValue.Cancel) + }; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/EventListener.cs b/swaggerci/app/generated/runtime/EventListener.cs new file mode 100644 index 000000000000..c53bcfdc1bb7 --- /dev/null +++ b/swaggerci/app/generated/runtime/EventListener.cs @@ -0,0 +1,247 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + + using System; + using System.Linq; + using System.Collections; + using System.Collections.Generic; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + using GetEventData = System.Func; + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + public interface IValidates + { + Task Validate(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IEventListener listener); + } + + /// + /// The IEventListener Interface defines the communication mechanism for Signaling events during a remote call. + /// + /// + /// The interface is designed to be as minimal as possible, allow for quick peeking of the event type (id) + /// and the cancellation status and provides a delegate for retrieving the event details themselves. + /// + public interface IEventListener + { + Task Signal(string id, CancellationToken token, GetEventData createMessage); + CancellationToken Token { get; } + System.Action Cancel { get; } + } + + internal static partial class Extensions + { + public static Task Signal(this IEventListener instance, string id, CancellationToken token, Func createMessage) => instance.Signal(id, token, createMessage); + public static Task Signal(this IEventListener instance, string id, CancellationToken token) => instance.Signal(id, token, () => new EventData { Id = id, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, HttpRequestMessage request) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, RequestMessage = request, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, HttpResponseMessage response) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, RequestMessage = response.RequestMessage, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, double magnitude) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, double magnitude, HttpRequestMessage request) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, RequestMessage = request, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, double magnitude, HttpResponseMessage response) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, RequestMessage = response.RequestMessage, ResponseMessage = response, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, HttpRequestMessage request) => instance.Signal(id, token, () => new EventData { Id = id, RequestMessage = request, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, HttpRequestMessage request, HttpResponseMessage response) => instance.Signal(id, token, () => new EventData { Id = id, RequestMessage = request, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, HttpResponseMessage response) => instance.Signal(id, token, () => new EventData { Id = id, RequestMessage = response.RequestMessage, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, EventData message) => instance.Signal(id, token, () => { message.Id = id; message.Cancel = instance.Cancel; return message; }); + + public static Task Signal(this IEventListener instance, string id, Func createMessage) => instance.Signal(id, instance.Token, createMessage); + public static Task Signal(this IEventListener instance, string id) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, HttpRequestMessage request) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, RequestMessage = request, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, HttpResponseMessage response) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, RequestMessage = response.RequestMessage, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, double magnitude) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, double magnitude, HttpRequestMessage request) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, RequestMessage = request, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, double magnitude, HttpResponseMessage response) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, RequestMessage = response.RequestMessage, ResponseMessage = response, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, HttpRequestMessage request) => instance.Signal(id, instance.Token, () => new EventData { Id = id, RequestMessage = request, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, HttpRequestMessage request, HttpResponseMessage response) => instance.Signal(id, instance.Token, () => new EventData { Id = id, RequestMessage = request, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, HttpResponseMessage response) => instance.Signal(id, instance.Token, () => new EventData { Id = id, RequestMessage = response.RequestMessage, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, EventData message) => instance.Signal(id, instance.Token, () => { message.Id = id; message.Cancel = instance.Cancel; return message; }); + + public static Task Signal(this IEventListener instance, string id, System.Uri uri) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = uri.ToString(), Cancel = instance.Cancel }); + + public static async Task AssertNotNull(this IEventListener instance, string parameterName, object value) + { + if (value == null) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, Message = $"'{parameterName}' should not be null", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertMinimumLength(this IEventListener instance, string parameterName, string value, int length) + { + if (value != null && value.Length < length) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, Message = $"Length of '{parameterName}' is less than {length}", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertMaximumLength(this IEventListener instance, string parameterName, string value, int length) + { + if (value != null && value.Length > length) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, Message = $"Length of '{parameterName}' is greater than {length}", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + + public static async Task AssertRegEx(this IEventListener instance, string parameterName, string value, string regularExpression) + { + if (value != null && !System.Text.RegularExpressions.Regex.Match(value, regularExpression).Success) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, Message = $"'{parameterName}' does not validate against pattern /{regularExpression}/", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertEnum(this IEventListener instance, string parameterName, string value, params string[] values) + { + if (!values.Any(each => each.Equals(value))) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, Message = $"'{parameterName}' is not one of ({values.Aggregate((c, e) => $"'{e}',{c}")}", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertObjectIsValid(this IEventListener instance, string parameterName, object inst) + { + await (inst as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.IValidates)?.Validate(instance); + } + + public static async Task AssertIsLessThan(this IEventListener instance, string parameterName, T? value, T max) where T : struct, System.IComparable + { + if (null != value && ((T)value).CompareTo(max) >= 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be less than {max} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsGreaterThan(this IEventListener instance, string parameterName, T? value, T max) where T : struct, System.IComparable + { + if (null != value && ((T)value).CompareTo(max) <= 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be greater than {max} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsLessThanOrEqual(this IEventListener instance, string parameterName, T? value, T max) where T : struct, System.IComparable + { + if (null != value && ((T)value).CompareTo(max) > 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be less than or equal to {max} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsGreaterThanOrEqual(this IEventListener instance, string parameterName, T? value, T max) where T : struct, System.IComparable + { + if (null != value && ((T)value).CompareTo(max) < 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be greater than or equal to {max} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsMultipleOf(this IEventListener instance, string parameterName, Int64? value, Int64 multiple) + { + if (null != value && value % multiple != 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be multiple of {multiple} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsMultipleOf(this IEventListener instance, string parameterName, double? value, double multiple) + { + if (null != value) + { + var i = (Int64)(value / multiple); + if (i != value / multiple) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be multiple of {multiple} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + } + public static async Task AssertIsMultipleOf(this IEventListener instance, string parameterName, decimal? value, decimal multiple) + { + if (null != value) + { + var i = (Int64)(value / multiple); + if (i != value / multiple) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be multiple of {multiple} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + } + } + + /// + /// An Implementation of the IEventListener that supports subscribing to events and dispatching them + /// (used for manually using the lowlevel interface) + /// + public class EventListener : CancellationTokenSource, IEnumerable>, IEventListener + { + private Dictionary calls = new Dictionary(); + public IEnumerator> GetEnumerator() => calls.GetEnumerator(); + IEnumerator IEnumerable.GetEnumerator() => calls.GetEnumerator(); + public EventListener() + { + } + + public new Action Cancel => base.Cancel; + private Event tracer; + + public EventListener(params (string name, Event callback)[] initializer) + { + foreach (var each in initializer) + { + Add(each.name, each.callback); + } + } + + public void Add(string name, SynchEvent callback) + { + Add(name, (message) => { callback(message); return Task.CompletedTask; }); + } + + public void Add(string name, Event callback) + { + if (callback != null) + { + if (string.IsNullOrEmpty(name)) + { + if (calls.ContainsKey(name)) + { + tracer += callback; + } + else + { + tracer = callback; + } + } + else + { + if (calls.ContainsKey(name)) + { + calls[name ?? System.String.Empty] += callback; + } + else + { + calls[name ?? System.String.Empty] = callback; + } + } + } + } + + + public async Task Signal(string id, CancellationToken token, GetEventData createMessage) + { + using (NoSynchronizationContext) + { + if (!string.IsNullOrEmpty(id) && (calls.TryGetValue(id, out Event listener) || tracer != null)) + { + var message = createMessage(); + message.Id = id; + + await listener?.Invoke(message); + await tracer?.Invoke(message); + + if (token.IsCancellationRequested) + { + throw new OperationCanceledException($"Canceled by event {id} ", this.Token); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Events.cs b/swaggerci/app/generated/runtime/Events.cs new file mode 100644 index 000000000000..5f7dd91491d6 --- /dev/null +++ b/swaggerci/app/generated/runtime/Events.cs @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + public static partial class Events + { + public const string Log = nameof(Log); + public const string Validation = nameof(Validation); + public const string ValidationWarning = nameof(ValidationWarning); + public const string AfterValidation = nameof(AfterValidation); + public const string RequestCreated = nameof(RequestCreated); + public const string ResponseCreated = nameof(ResponseCreated); + public const string URLCreated = nameof(URLCreated); + public const string Finally = nameof(Finally); + public const string HeaderParametersAdded = nameof(HeaderParametersAdded); + public const string BodyContentSet = nameof(BodyContentSet); + public const string BeforeCall = nameof(BeforeCall); + public const string BeforeResponseDispatch = nameof(BeforeResponseDispatch); + public const string FollowingNextLink = nameof(FollowingNextLink); + public const string DelayBeforePolling = nameof(DelayBeforePolling); + public const string Polling = nameof(Polling); + + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/EventsExtensions.cs b/swaggerci/app/generated/runtime/EventsExtensions.cs new file mode 100644 index 000000000000..42a52bb7300e --- /dev/null +++ b/swaggerci/app/generated/runtime/EventsExtensions.cs @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + public static partial class Events + { + public const string CmdletProcessRecordStart = nameof(CmdletProcessRecordStart); + public const string CmdletProcessRecordAsyncStart = nameof(CmdletProcessRecordAsyncStart); + public const string CmdletException = nameof(CmdletException); + public const string CmdletGetPipeline = nameof(CmdletGetPipeline); + public const string CmdletBeforeAPICall = nameof(CmdletBeforeAPICall); + public const string CmdletBeginProcessing = nameof(CmdletBeginProcessing); + public const string CmdletEndProcessing = nameof(CmdletEndProcessing); + public const string CmdletProcessRecordEnd = nameof(CmdletProcessRecordEnd); + public const string CmdletProcessRecordAsyncEnd = nameof(CmdletProcessRecordAsyncEnd); + public const string CmdletAfterAPICall = nameof(CmdletAfterAPICall); + + public const string Verbose = nameof(Verbose); + public const string Debug = nameof(Debug); + public const string Information = nameof(Information); + public const string Error = nameof(Error); + public const string Warning = nameof(Warning); + } + +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Extensions.cs b/swaggerci/app/generated/runtime/Extensions.cs new file mode 100644 index 000000000000..a4d25647b838 --- /dev/null +++ b/swaggerci/app/generated/runtime/Extensions.cs @@ -0,0 +1,117 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + using System.Linq; + using System; + + internal static partial class Extensions + { + public static T[] SubArray(this T[] array, int offset, int length) + { + return new ArraySegment(array, offset, length) + .ToArray(); + } + + public static T ReadHeaders(this T instance, global::System.Net.Http.Headers.HttpResponseHeaders headers) where T : class + { + (instance as IHeaderSerializable)?.ReadHeaders(headers); + return instance; + } + + internal static bool If(T input, out T output) + { + if (null == input) + { + output = default(T); + return false; + } + output = input; + return true; + } + + internal static void AddIf(T value, System.Action addMethod) + { + // if value is present (and it's not just an empty JSON Object) + if (null != value && (value as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject)?.Keys.Count != 0) + { + addMethod(value); + } + } + + internal static void AddIf(T value, string serializedName, System.Action addMethod) + { + // if value is present (and it's not just an empty JSON Object) + if (null != value && (value as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject)?.Keys.Count != 0) + { + addMethod(serializedName, value); + } + } + + /// + /// Returns the first header value as a string from an HttpReponseMessage. + /// + /// the HttpResponseMessage to fetch a header from + /// the header name + /// the first header value as a string from an HttpReponseMessage. string.empty if there is no header value matching + internal static string GetFirstHeader(this System.Net.Http.HttpResponseMessage response, string headerName) => response.Headers.FirstOrDefault(each => string.Equals(headerName, each.Key, System.StringComparison.OrdinalIgnoreCase)).Value?.FirstOrDefault() ?? string.Empty; + + /// + /// Sets the Synchronization Context to null, and returns an IDisposable that when disposed, + /// will restore the synchonization context to the original value. + /// + /// This is used a less-invasive means to ensure that code in the library that doesn't + /// need to be continued in the original context doesn't have to have ConfigureAwait(false) + /// on every single await + /// + /// If the SynchronizationContext is null when this is used, the resulting IDisposable + /// will not do anything (this prevents excessive re-setting of the SynchronizationContext) + /// + /// Usage: + /// + /// using(NoSynchronizationContext) { + /// await SomeAsyncOperation(); + /// await SomeOtherOperation(); + /// } + /// + /// + /// + /// An IDisposable that will return the SynchronizationContext to original state + internal static System.IDisposable NoSynchronizationContext => System.Threading.SynchronizationContext.Current == null ? Dummy : new NoSyncContext(); + + /// + /// An instance of the Dummy IDispoable. + /// + /// + internal static System.IDisposable Dummy = new DummyDisposable(); + + /// + /// An IDisposable that does absolutely nothing. + /// + internal class DummyDisposable : System.IDisposable + { + public void Dispose() + { + } + } + /// + /// An IDisposable that saves the SynchronizationContext,sets it to null and + /// restores it to the original upon Dispose(). + /// + /// NOTE: This is designed to be less invasive than using .ConfigureAwait(false) + /// on every single await in library code (ie, places where we know we don't need + /// to continue in the same context as we went async) + /// + internal class NoSyncContext : System.IDisposable + { + private System.Threading.SynchronizationContext original = System.Threading.SynchronizationContext.Current; + internal NoSyncContext() + { + System.Threading.SynchronizationContext.SetSynchronizationContext(null); + } + public void Dispose() => System.Threading.SynchronizationContext.SetSynchronizationContext(original); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Helpers/Extensions/StringBuilderExtensions.cs b/swaggerci/app/generated/runtime/Helpers/Extensions/StringBuilderExtensions.cs new file mode 100644 index 000000000000..fd264a7e7126 --- /dev/null +++ b/swaggerci/app/generated/runtime/Helpers/Extensions/StringBuilderExtensions.cs @@ -0,0 +1,23 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal static class StringBuilderExtensions + { + /// + /// Extracts the buffered value and resets the buffer + /// + internal static string Extract(this StringBuilder builder) + { + var text = builder.ToString(); + + builder.Clear(); + + return text; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Helpers/Extensions/TypeExtensions.cs b/swaggerci/app/generated/runtime/Helpers/Extensions/TypeExtensions.cs new file mode 100644 index 000000000000..517a68e0c0d2 --- /dev/null +++ b/swaggerci/app/generated/runtime/Helpers/Extensions/TypeExtensions.cs @@ -0,0 +1,61 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal static class TypeExtensions + { + internal static bool IsNullable(this Type type) => + type.IsGenericType && type.GetGenericTypeDefinition().Equals(typeof(Nullable<>)); + + internal static Type GetOpenGenericInterface(this Type candidateType, Type openGenericInterfaceType) + { + + if (candidateType.IsGenericType && candidateType.GetGenericTypeDefinition() == openGenericInterfaceType) + { + return candidateType; + } + + // Check if it references it's own converter.... + + foreach (Type interfaceType in candidateType.GetInterfaces()) + { + if (interfaceType.IsGenericType + && interfaceType.GetGenericTypeDefinition().Equals(openGenericInterfaceType)) + { + return interfaceType; + } + } + + return null; + } + + // Author: Sebastian Good + // http://stackoverflow.com/questions/503263/how-to-determine-if-a-type-implements-a-specific-generic-interface-type + internal static bool ImplementsOpenGenericInterface(this Type candidateType, Type openGenericInterfaceType) + { + if (candidateType.Equals(openGenericInterfaceType)) + { + return true; + } + + if (candidateType.IsGenericType && candidateType.GetGenericTypeDefinition().Equals(openGenericInterfaceType)) + { + return true; + } + + foreach (Type i in candidateType.GetInterfaces()) + { + if (i.IsGenericType && i.ImplementsOpenGenericInterface(openGenericInterfaceType)) + { + return true; + } + } + + return false; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Helpers/Seperator.cs b/swaggerci/app/generated/runtime/Helpers/Seperator.cs new file mode 100644 index 000000000000..315c215f61bd --- /dev/null +++ b/swaggerci/app/generated/runtime/Helpers/Seperator.cs @@ -0,0 +1,11 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal static class Seperator + { + internal static readonly char[] Dash = { '-' }; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Helpers/TypeDetails.cs b/swaggerci/app/generated/runtime/Helpers/TypeDetails.cs new file mode 100644 index 000000000000..9be94fedaf4f --- /dev/null +++ b/swaggerci/app/generated/runtime/Helpers/TypeDetails.cs @@ -0,0 +1,116 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + + + + internal class TypeDetails + { + private readonly Type info; + + internal TypeDetails(Type info) + { + this.info = info ?? throw new ArgumentNullException(nameof(info)); + } + + internal Type NonNullType { get; set; } + + internal object DefaultValue { get; set; } + + internal bool IsNullable { get; set; } + + internal bool IsList { get; set; } + + internal bool IsStringLike { get; set; } + + internal bool IsEnum => info.IsEnum; + + internal bool IsArray => info.IsArray; + + internal bool IsValueType => info.IsValueType; + + internal Type ElementType { get; set; } + + internal IJsonConverter JsonConverter { get; set; } + + #region Creation + + private static readonly ConcurrentDictionary cache = new ConcurrentDictionary(); + + internal static TypeDetails Get() => Get(typeof(T)); + + internal static TypeDetails Get(Type type) => cache.GetOrAdd(type, Create); + + private static TypeDetails Create(Type type) + { + var isGenericList = !type.IsPrimitive && type.ImplementsOpenGenericInterface(typeof(IList<>)); + var isList = !type.IsPrimitive && (isGenericList || typeof(IList).IsAssignableFrom(type)); + + var isNullable = type.IsNullable(); + + Type elementType; + + if (type.IsArray) + { + elementType = type.GetElementType(); + } + else if (isGenericList) + { + var iList = type.GetOpenGenericInterface(typeof(IList<>)); + + elementType = iList.GetGenericArguments()[0]; + } + else + { + elementType = null; + } + + var nonNullType = isNullable ? type.GetGenericArguments()[0] : type; + + var isStringLike = false; + + IJsonConverter converter; + + var jsonConverterAttribute = type.GetCustomAttribute(); + + if (jsonConverterAttribute != null) + { + converter = jsonConverterAttribute.Converter; + } + else if (nonNullType.IsEnum) + { + converter = new EnumConverter(nonNullType); + } + else if (JsonConverterFactory.Instances.TryGetValue(nonNullType, out converter)) + { + } + else if (StringLikeHelper.IsStringLike(nonNullType)) + { + isStringLike = true; + + converter = new StringLikeConverter(nonNullType); + } + + return new TypeDetails(nonNullType) { + NonNullType = nonNullType, + DefaultValue = type.IsValueType ? Activator.CreateInstance(type) : null, + IsNullable = isNullable, + IsList = isList, + IsStringLike = isStringLike, + ElementType = elementType, + JsonConverter = converter + }; + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Helpers/XHelper.cs b/swaggerci/app/generated/runtime/Helpers/XHelper.cs new file mode 100644 index 000000000000..894c665971ea --- /dev/null +++ b/swaggerci/app/generated/runtime/Helpers/XHelper.cs @@ -0,0 +1,75 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal static class XHelper + { + internal static JsonNode Create(JsonType type, TypeCode code, object value) + { + switch (type) + { + case JsonType.Binary : return new XBinary((byte[])value); + case JsonType.Boolean : return new JsonBoolean((bool)value); + case JsonType.Number : return new JsonNumber(value.ToString()); + case JsonType.String : return new JsonString((string)value); + } + + throw new Exception($"JsonType '{type}' does not have a fast conversion"); + } + + internal static bool TryGetElementType(TypeCode code, out JsonType type) + { + switch (code) + { + case TypeCode.Boolean : type = JsonType.Boolean; return true; + case TypeCode.Byte : type = JsonType.Number; return true; + case TypeCode.DateTime : type = JsonType.Date; return true; + case TypeCode.Decimal : type = JsonType.Number; return true; + case TypeCode.Double : type = JsonType.Number; return true; + case TypeCode.Empty : type = JsonType.Null; return true; + case TypeCode.Int16 : type = JsonType.Number; return true; + case TypeCode.Int32 : type = JsonType.Number; return true; + case TypeCode.Int64 : type = JsonType.Number; return true; + case TypeCode.SByte : type = JsonType.Number; return true; + case TypeCode.Single : type = JsonType.Number; return true; + case TypeCode.String : type = JsonType.String; return true; + case TypeCode.UInt16 : type = JsonType.Number; return true; + case TypeCode.UInt32 : type = JsonType.Number; return true; + case TypeCode.UInt64 : type = JsonType.Number; return true; + } + + type = default; + + return false; + } + + internal static JsonType GetElementType(TypeCode code) + { + switch (code) + { + case TypeCode.Boolean : return JsonType.Boolean; + case TypeCode.Byte : return JsonType.Number; + case TypeCode.DateTime : return JsonType.Date; + case TypeCode.Decimal : return JsonType.Number; + case TypeCode.Double : return JsonType.Number; + case TypeCode.Empty : return JsonType.Null; + case TypeCode.Int16 : return JsonType.Number; + case TypeCode.Int32 : return JsonType.Number; + case TypeCode.Int64 : return JsonType.Number; + case TypeCode.SByte : return JsonType.Number; + case TypeCode.Single : return JsonType.Number; + case TypeCode.String : return JsonType.String; + case TypeCode.UInt16 : return JsonType.Number; + case TypeCode.UInt32 : return JsonType.Number; + case TypeCode.UInt64 : return JsonType.Number; + default : return JsonType.Object; + } + + throw new Exception($"TypeCode '{code}' does not have a fast converter"); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/HttpPipeline.cs b/swaggerci/app/generated/runtime/HttpPipeline.cs new file mode 100644 index 000000000000..6b3f4567c3e4 --- /dev/null +++ b/swaggerci/app/generated/runtime/HttpPipeline.cs @@ -0,0 +1,88 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + using System.Net.Http; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + using System.Collections; + using System.Linq; + + using GetEventData = System.Func; + using NextDelegate = System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>; + + using SignalDelegate = System.Func, System.Threading.Tasks.Task>; + using GetParameterDelegate = System.Func, string, object>; + using SendAsyncStepDelegate = System.Func, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>; + using PipelineChangeDelegate = System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>; + using ModuleLoadPipelineDelegate = System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>, System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>>; + using NewRequestPipelineDelegate = System.Action, System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>, System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>>; + +/* + public class DelegateBasedEventListener : IEventListener + { + private EventListenerDelegate _listener; + public DelegateBasedEventListener(EventListenerDelegate listener) + { + _listener = listener; + } + public CancellationToken Token => CancellationToken.None; + public System.Action Cancel => () => { }; + + + public Task Signal(string id, CancellationToken token, GetEventData createMessage) + { + return _listener(id, token, () => createMessage()); + } + } +*/ + /// + /// This is a necessary extension to the SendAsyncFactory to support the 'generic' delegate format. + /// + public partial class SendAsyncFactory + { + /// + /// This translates a generic-defined delegate for a listener into one that fits our ISendAsync pattern. + /// (Provided to support out-of-module delegation for Azure Cmdlets) + /// + /// The Pipeline Step as a delegate + public SendAsyncFactory(SendAsyncStepDelegate step) => this.implementation = (request, listener, next) => + step( + request, + listener.Token, + listener.Cancel, + (id, token, getEventData) => listener.Signal(id, token, () => { + var data = EventDataConverter.ConvertFrom( getEventData() ) as EventData; + data.Id = id; + data.Cancel = listener.Cancel; + data.RequestMessage = request; + return data; + }), + (req, token, cancel, listenerDelegate) => next.SendAsync(req, listener)); + } + + public partial class HttpPipeline : ISendAsync + { + public HttpPipeline Append(SendAsyncStepDelegate item) + { + if (item != null) + { + Append(new SendAsyncFactory(item)); + } + return this; + } + + public HttpPipeline Prepend(SendAsyncStepDelegate item) + { + if (item != null) + { + Prepend(new SendAsyncFactory(item)); + } + return this; + } + } +} diff --git a/swaggerci/app/generated/runtime/HttpPipelineMocking.ps1 b/swaggerci/app/generated/runtime/HttpPipelineMocking.ps1 new file mode 100644 index 000000000000..4b553e8ee5ae --- /dev/null +++ b/swaggerci/app/generated/runtime/HttpPipelineMocking.ps1 @@ -0,0 +1,110 @@ +$ErrorActionPreference = "Stop" + +# get the recording path +if (-not $TestRecordingFile) { + $TestRecordingFile = Join-Path $PSScriptRoot 'recording.json' +} + +# create the Http Pipeline Recorder +$Mock = New-Object -Type Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PipelineMock $TestRecordingFile + +# set the recorder to the appropriate mode (default to 'live') +Write-Host -ForegroundColor Green "Running '$TestMode' mode..." +switch ($TestMode) { + 'record' { + Write-Host -ForegroundColor Green "Recording to $TestRecordingFile" + $Mock.SetRecord() + $null = erase -ea 0 $TestRecordingFile + } + 'playback' { + if (-not (Test-Path $TestRecordingFile)) { + Write-Host -fore:yellow "Recording file '$TestRecordingFile' is not present. Tests expecting recorded responses will fail" + } else { + Write-Host -ForegroundColor Green "Using recording $TestRecordingFile" + } + $Mock.SetPlayback() + $Mock.ForceResponseHeaders["Retry-After"] = "0"; + } + default: { + $Mock.SetLive() + } +} + +# overrides for Pester Describe/Context/It + +function Describe( + [Parameter(Mandatory = $true, Position = 0)] + [string] $Name, + + [Alias('Tags')] + [string[]] $Tag = @(), + + [Parameter(Position = 1)] + [ValidateNotNull()] + [ScriptBlock] $Fixture = $(Throw "No test script block is provided. (Have you put the open curly brace on the next line?)") +) { + $Mock.PushDescription($Name) + try { + return pester\Describe -Name $Name -Tag $Tag -Fixture $fixture + } + finally { + $Mock.PopDescription() + } +} + +function Context( + [Parameter(Mandatory = $true, Position = 0)] + [string] $Name, + + [Alias('Tags')] + [string[]] $Tag = @(), + + [Parameter(Position = 1)] + [ValidateNotNull()] + [ScriptBlock] $Fixture = $(Throw "No test script block is provided. (Have you put the open curly brace on the next line?)") +) { + $Mock.PushContext($Name) + try { + return pester\Context -Name $Name -Tag $Tag -Fixture $fixture + } + finally { + $Mock.PopContext() + } +} + +function It { + [CmdletBinding(DefaultParameterSetName = 'Normal')] + param( + [Parameter(Mandatory = $true, Position = 0)] + [string]$Name, + + [Parameter(Position = 1)] + [ScriptBlock] $Test = { }, + + [System.Collections.IDictionary[]] $TestCases, + + [Parameter(ParameterSetName = 'Pending')] + [Switch] $Pending, + + [Parameter(ParameterSetName = 'Skip')] + [Alias('Ignore')] + [Switch] $Skip + ) + $Mock.PushScenario($Name) + + try { + if ($skip) { + return pester\It -Name $Name -Test $Test -TestCases $TestCases -Skip + } + if ($pending) { + return pester\It -Name $Name -Test $Test -TestCases $TestCases -Pending + } + return pester\It -Name $Name -Test $Test -TestCases $TestCases + } + finally { + $null = $Mock.PopScenario() + } +} + +# set the HttpPipelineAppend for all the cmdlets +$PSDefaultParameterValues["*:HttpPipelinePrepend"] = $Mock diff --git a/swaggerci/app/generated/runtime/IAssociativeArray.cs b/swaggerci/app/generated/runtime/IAssociativeArray.cs new file mode 100644 index 000000000000..bd8f10c309b9 --- /dev/null +++ b/swaggerci/app/generated/runtime/IAssociativeArray.cs @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +#define DICT_PROPERTIES +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + /// A subset of IDictionary that doesn't implement IEnumerable or IDictionary to work around PowerShell's aggressive formatter + public interface IAssociativeArray + { +#if DICT_PROPERTIES + System.Collections.Generic.IEnumerable Keys { get; } + System.Collections.Generic.IEnumerable Values { get; } + int Count { get; } +#endif + System.Collections.Generic.IDictionary AdditionalProperties { get; } + T this[string index] { get; set; } + void Add(string key, T value); + bool ContainsKey(string key); + bool Remove(string key); + bool TryGetValue(string key, out T value); + void Clear(); + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/IHeaderSerializable.cs b/swaggerci/app/generated/runtime/IHeaderSerializable.cs new file mode 100644 index 000000000000..8bc9b47a800b --- /dev/null +++ b/swaggerci/app/generated/runtime/IHeaderSerializable.cs @@ -0,0 +1,14 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + public interface IHeaderSerializable + { + void ReadHeaders(global::System.Net.Http.Headers.HttpResponseHeaders headers); + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/ISendAsync.cs b/swaggerci/app/generated/runtime/ISendAsync.cs new file mode 100644 index 000000000000..07a8f7f7348a --- /dev/null +++ b/swaggerci/app/generated/runtime/ISendAsync.cs @@ -0,0 +1,300 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + using System.Net.Http; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + using System.Collections; + using System.Linq; + + /// + /// The interface for sending an HTTP request across the wire. + /// + public interface ISendAsync + { + Task SendAsync(HttpRequestMessage request, IEventListener callback); + } + + public class SendAsyncTerminalFactory : ISendAsyncTerminalFactory, ISendAsync + { + SendAsync implementation; + + public SendAsyncTerminalFactory(SendAsync implementation) => this.implementation = implementation; + public SendAsyncTerminalFactory(ISendAsync implementation) => this.implementation = implementation.SendAsync; + public ISendAsync Create() => this; + public Task SendAsync(HttpRequestMessage request, IEventListener callback) => implementation(request, callback); + } + + public partial class SendAsyncFactory : ISendAsyncFactory + { + public class Sender : ISendAsync + { + internal ISendAsync next; + internal SendAsyncStep implementation; + + public Task SendAsync(HttpRequestMessage request, IEventListener callback) => implementation(request, callback, next); + } + SendAsyncStep implementation; + + public SendAsyncFactory(SendAsyncStep implementation) => this.implementation = implementation; + public ISendAsync Create(ISendAsync next) => new Sender { next = next, implementation = implementation }; + + } + + public class HttpClientFactory : ISendAsyncTerminalFactory, ISendAsync + { + HttpClient client; + public HttpClientFactory() : this(new HttpClient()) + { + } + public HttpClientFactory(HttpClient client) => this.client = client; + public ISendAsync Create() => this; + + public Task SendAsync(HttpRequestMessage request, IEventListener callback) => client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, callback.Token); + } + + public interface ISendAsyncFactory + { + ISendAsync Create(ISendAsync next); + } + + public interface ISendAsyncTerminalFactory + { + ISendAsync Create(); + } + + public partial class HttpPipeline : ISendAsync + { + private ISendAsync pipeline; + private ISendAsyncTerminalFactory terminal; + private List steps = new List(); + + public HttpPipeline() : this(new HttpClientFactory()) + { + } + + public HttpPipeline(ISendAsyncTerminalFactory terminalStep) + { + if (terminalStep == null) + { + throw new System.ArgumentNullException(nameof(terminalStep), "Terminal Step Factory in HttpPipeline may not be null"); + } + TerminalFactory = terminalStep; + } + + /// + /// Returns an HttpPipeline with the current state of this pipeline. + /// + public HttpPipeline Clone() => new HttpPipeline(terminal) { steps = this.steps.ToList(), pipeline = this.pipeline }; + + public ISendAsyncTerminalFactory TerminalFactory + { + get => terminal; + set + { + if (value == null) + { + throw new System.ArgumentNullException("TerminalFactory in HttpPipeline may not be null"); + } + terminal = value; + } + } + + public ISendAsync Pipeline + { + get + { + // if the pipeline has been created and not invalidated, return it. + if (this.pipeline != null) + { + return this.pipeline; + } + + // create the pipeline from scratch. + var next = terminal.Create(); + foreach (var factory in steps) + { + // skip factories that return null. + next = factory.Create(next) ?? next; + } + return this.pipeline = next; + } + } + + public int Count => steps.Count; + + public HttpPipeline Prepend(ISendAsyncFactory item) + { + if (item != null) + { + steps.Add(item); + pipeline = null; + } + return this; + } + + public HttpPipeline Append(SendAsyncStep item) + { + if (item != null) + { + Append(new SendAsyncFactory(item)); + } + return this; + } + + public HttpPipeline Prepend(SendAsyncStep item) + { + if (item != null) + { + Prepend(new SendAsyncFactory(item)); + } + return this; + } + public HttpPipeline Append(IEnumerable items) + { + if (items != null) + { + foreach (var item in items) + { + Append(new SendAsyncFactory(item)); + } + } + return this; + } + + public HttpPipeline Prepend(IEnumerable items) + { + if (items != null) + { + foreach (var item in items) + { + Prepend(new SendAsyncFactory(item)); + } + } + return this; + } + + public HttpPipeline Append(ISendAsyncFactory item) + { + if (item != null) + { + steps.Insert(0, item); + pipeline = null; + } + return this; + } + public HttpPipeline Prepend(IEnumerable items) + { + if (items != null) + { + foreach (var item in items) + { + Prepend(item); + } + } + return this; + } + + public HttpPipeline Append(IEnumerable items) + { + if (items != null) + { + foreach (var item in items) + { + Append(item); + } + } + return this; + } + + // you can use this as the ISendAsync Implementation + public Task SendAsync(HttpRequestMessage request, IEventListener callback) => Pipeline.SendAsync(request, callback); + } + + internal static partial class Extensions + { + internal static HttpRequestMessage CloneAndDispose(this HttpRequestMessage original, System.Uri requestUri = null, System.Net.Http.HttpMethod method = null) + { + using (original) + { + return original.Clone(requestUri, method); + } + } + + internal static Task CloneWithContentAndDispose(this HttpRequestMessage original, System.Uri requestUri = null, System.Net.Http.HttpMethod method = null) + { + using (original) + { + return original.CloneWithContent(requestUri, method); + } + } + + /// + /// Clones an HttpRequestMessage (without the content) + /// + /// Original HttpRequestMessage (Will be diposed before returning) + /// + /// + /// A clone of the HttpRequestMessage + internal static HttpRequestMessage Clone(this HttpRequestMessage original, System.Uri requestUri = null, System.Net.Http.HttpMethod method = null) + { + var clone = new HttpRequestMessage + { + Method = method ?? original.Method, + RequestUri = requestUri ?? original.RequestUri, + Version = original.Version, + }; + + foreach (KeyValuePair prop in original.Properties) + { + clone.Properties.Add(prop); + } + + foreach (KeyValuePair> header in original.Headers) + { + /* + **temporarily skip cloning telemetry related headers** + clone.Headers.TryAddWithoutValidation(header.Key, header.Value); + */ + if (!"x-ms-unique-id".Equals(header.Key) && !"x-ms-client-request-id".Equals(header.Key) && !"CommandName".Equals(header.Key) && !"FullCommandName".Equals(header.Key) && !"ParameterSetName".Equals(header.Key) && !"User-Agent".Equals(header.Key)) + { + clone.Headers.TryAddWithoutValidation(header.Key, header.Value); + } + } + + return clone; + } + + /// + /// Clones an HttpRequestMessage (including the content stream and content headers) + /// + /// Original HttpRequestMessage (Will be diposed before returning) + /// + /// + /// A clone of the HttpRequestMessage + internal static async Task CloneWithContent(this HttpRequestMessage original, System.Uri requestUri = null, System.Net.Http.HttpMethod method = null) + { + var clone = original.Clone(requestUri, method); + var stream = new System.IO.MemoryStream(); + if (original.Content != null) + { + await original.Content.CopyToAsync(stream).ConfigureAwait(false); + stream.Position = 0; + clone.Content = new StreamContent(stream); + if (original.Content.Headers != null) + { + foreach (var h in original.Content.Headers) + { + clone.Content.Headers.Add(h.Key, h.Value); + } + } + } + return clone; + } + } +} diff --git a/swaggerci/app/generated/runtime/InfoAttribute.cs b/swaggerci/app/generated/runtime/InfoAttribute.cs new file mode 100644 index 000000000000..cb2382ef3992 --- /dev/null +++ b/swaggerci/app/generated/runtime/InfoAttribute.cs @@ -0,0 +1,34 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + using System; + + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Class)] + public class InfoAttribute : Attribute + { + public bool Required { get; set; } = false; + public bool ReadOnly { get; set; } = false; + public Type[] PossibleTypes { get; set; } = new Type[0]; + public string Description { get; set; } = ""; + public string SerializedName { get; set; } = ""; + } + + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] + public class CompleterInfoAttribute : Attribute + { + public string Script { get; set; } = ""; + public string Name { get; set; } = ""; + public string Description { get; set; } = ""; + } + + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] + public class DefaultInfoAttribute : Attribute + { + public string Script { get; set; } = ""; + public string Name { get; set; } = ""; + public string Description { get; set; } = ""; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Iso/IsoDate.cs b/swaggerci/app/generated/runtime/Iso/IsoDate.cs new file mode 100644 index 000000000000..d7b7c3a5d002 --- /dev/null +++ b/swaggerci/app/generated/runtime/Iso/IsoDate.cs @@ -0,0 +1,214 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal struct IsoDate + { + internal int Year { get; set; } // 0-3000 + + internal int Month { get; set; } // 1-12 + + internal int Day { get; set; } // 1-31 + + internal int Hour { get; set; } // 0-24 + + internal int Minute { get; set; } // 0-60 (60 is a special case) + + internal int Second { get; set; } // 0-60 (60 is used for leap seconds) + + internal double Millisecond { get; set; } // 0-999.9... + + internal TimeSpan Offset { get; set; } + + internal DateTimeKind Kind { get; set; } + + internal TimeSpan TimeOfDay => new TimeSpan(Hour, Minute, Second); + + internal DateTime ToDateTime() + { + if (Kind == DateTimeKind.Utc || Offset == TimeSpan.Zero) + { + return new DateTime(Year, Month, Day, Hour, Minute, Second, (int)Millisecond, DateTimeKind.Utc); + } + + return ToDateTimeOffset().DateTime; + } + + internal DateTimeOffset ToDateTimeOffset() + { + return new DateTimeOffset( + Year, + Month, + Day, + Hour, + Minute, + Second, + (int)Millisecond, + Offset + ); + } + + internal DateTime ToUtcDateTime() + { + return ToDateTimeOffset().UtcDateTime; + } + + public override string ToString() + { + var sb = new StringBuilder(); + + // yyyy-MM-dd + sb.Append($"{Year}-{Month:00}-{Day:00}"); + + if (TimeOfDay > new TimeSpan(0)) + { + sb.Append($"T{Hour:00}:{Minute:00}"); + + if (TimeOfDay.Seconds > 0) + { + sb.Append($":{Second:00}"); + } + } + + if (Offset.Ticks == 0) + { + sb.Append('Z'); // UTC + } + else + { + if (Offset.Ticks >= 0) + { + sb.Append('+'); + } + + sb.Append($"{Offset.Hours:00}:{Offset.Minutes:00}"); + } + + return sb.ToString(); + } + + internal static IsoDate FromDateTimeOffset(DateTimeOffset date) + { + return new IsoDate { + Year = date.Year, + Month = date.Month, + Day = date.Day, + Hour = date.Hour, + Minute = date.Minute, + Second = date.Second, + Offset = date.Offset, + Kind = date.Offset == TimeSpan.Zero ? DateTimeKind.Utc : DateTimeKind.Unspecified + }; + } + + private static readonly char[] timeSeperators = { ':', '.' }; + + internal static IsoDate Parse(string text) + { + var tzIndex = -1; + var timeIndex = text.IndexOf('T'); + + var builder = new IsoDate { Day = 1, Month = 1 }; + + // TODO: strip the time zone offset off the end + string dateTime = text; + string timeZone = null; + + if (dateTime.IndexOf('Z') > -1) + { + tzIndex = dateTime.LastIndexOf('Z'); + + builder.Kind = DateTimeKind.Utc; + } + else if (dateTime.LastIndexOf('+') > 10) + { + tzIndex = dateTime.LastIndexOf('+'); + } + else if (dateTime.LastIndexOf('-') > 10) + { + tzIndex = dateTime.LastIndexOf('-'); + } + + if (tzIndex > -1) + { + timeZone = dateTime.Substring(tzIndex); + dateTime = dateTime.Substring(0, tzIndex); + } + + string date = (timeIndex == -1) ? dateTime : dateTime.Substring(0, timeIndex); + + var dateParts = date.Split(Seperator.Dash); // '-' + + for (int i = 0; i < dateParts.Length; i++) + { + var part = dateParts[i]; + + switch (i) + { + case 0: builder.Year = int.Parse(part); break; + case 1: builder.Month = int.Parse(part); break; + case 2: builder.Day = int.Parse(part); break; + } + } + + if (timeIndex > -1) + { + string[] timeParts = dateTime.Substring(timeIndex + 1).Split(timeSeperators); + + for (int i = 0; i < timeParts.Length; i++) + { + var part = timeParts[i]; + + switch (i) + { + case 0: builder.Hour = int.Parse(part); break; + case 1: builder.Minute = int.Parse(part); break; + case 2: builder.Second = int.Parse(part); break; + case 3: builder.Millisecond = double.Parse("0." + part) * 1000; break; + } + } + } + + if (timeZone != null && timeZone != "Z") + { + var hours = int.Parse(timeZone.Substring(1, 2)); + var minutes = int.Parse(timeZone.Substring(4, 2)); + + if (timeZone[0] == '-') + { + hours = -hours; + minutes = -minutes; + } + + builder.Offset = new TimeSpan(hours, minutes, 0); + } + + return builder; + } + } + + /* + YYYY # eg 1997 + YYYY-MM # eg 1997-07 + YYYY-MM-DD # eg 1997-07-16 + YYYY-MM-DDThh:mmTZD # eg 1997-07-16T19:20+01:00 + YYYY-MM-DDThh:mm:ssTZD # eg 1997-07-16T19:20:30+01:00 + YYYY-MM-DDThh:mm:ss.sTZD # eg 1997-07-16T19:20:30.45+01:00 + + where: + + YYYY = four-digit year + MM = two-digit month (01=January, etc.) + DD = two-digit day of month (01 through 31) + hh = two digits of hour (00 through 23) (am/pm NOT allowed) + mm = two digits of minute (00 through 59) + ss = two digits of second (00 through 59) + s = one or more digits representing a decimal fraction of a second + TZD = time zone designator (Z or +hh:mm or -hh:mm) + */ +} diff --git a/swaggerci/app/generated/runtime/JsonType.cs b/swaggerci/app/generated/runtime/JsonType.cs new file mode 100644 index 000000000000..8b023dce37ed --- /dev/null +++ b/swaggerci/app/generated/runtime/JsonType.cs @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal enum JsonType + { + Null = 0, + Object = 1, + Array = 2, + Binary = 3, + Boolean = 4, + Date = 5, + Number = 6, + String = 7 + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/MessageAttribute.cs b/swaggerci/app/generated/runtime/MessageAttribute.cs new file mode 100644 index 000000000000..0e887330fe9a --- /dev/null +++ b/swaggerci/app/generated/runtime/MessageAttribute.cs @@ -0,0 +1,360 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.generated.runtime.Properties; + using System; + using System.Collections.Generic; + using System.Globalization; + using System.Linq; + using System.Management.Automation; + using System.Text; + + [AttributeUsage(AttributeTargets.All)] + public class GenericBreakingChangeAttribute : Attribute + { + private string _message; + //A dexcription of what the change is about, non mandatory + public string ChangeDescription { get; set; } = null; + + //The version the change is effective from, non mandatory + public string DeprecateByVersion { get; } + public bool DeprecateByVersionSet { get; } = false; + + //The date on which the change comes in effect + public DateTime ChangeInEfectByDate { get; } + public bool ChangeInEfectByDateSet { get; } = false; + + //Old way of calling the cmdlet + public string OldWay { get; set; } + //New way fo calling the cmdlet + public string NewWay { get; set; } + + public GenericBreakingChangeAttribute(string message) + { + _message = message; + } + + public GenericBreakingChangeAttribute(string message, string deprecateByVersion) + { + _message = message; + this.DeprecateByVersion = deprecateByVersion; + this.DeprecateByVersionSet = true; + } + + public GenericBreakingChangeAttribute(string message, string deprecateByVersion, string changeInEfectByDate) + { + _message = message; + this.DeprecateByVersion = deprecateByVersion; + this.DeprecateByVersionSet = true; + + if (DateTime.TryParse(changeInEfectByDate, new CultureInfo("en-US"), DateTimeStyles.None, out DateTime result)) + { + this.ChangeInEfectByDate = result; + this.ChangeInEfectByDateSet = true; + } + } + + public DateTime getInEffectByDate() + { + return this.ChangeInEfectByDate.Date; + } + + + /** + * This function prints out the breaking change message for the attribute on the cmdline + * */ + public void PrintCustomAttributeInfo(Action writeOutput) + { + + if (!GetAttributeSpecificMessage().StartsWith(Environment.NewLine)) + { + writeOutput(Environment.NewLine); + } + writeOutput(string.Format(Resources.BreakingChangesAttributesDeclarationMessage, GetAttributeSpecificMessage())); + + + if (!string.IsNullOrWhiteSpace(ChangeDescription)) + { + writeOutput(string.Format(Resources.BreakingChangesAttributesChangeDescriptionMessage, this.ChangeDescription)); + } + + if (ChangeInEfectByDateSet) + { + writeOutput(string.Format(Resources.BreakingChangesAttributesInEffectByDateMessage, this.ChangeInEfectByDate.ToString("d"))); + } + + if (DeprecateByVersionSet) + { + writeOutput(string.Format(Resources.BreakingChangesAttributesInEffectByVersion, this.DeprecateByVersion)); + } + + if (OldWay != null && NewWay != null) + { + writeOutput(string.Format(Resources.BreakingChangesAttributesUsageChangeMessageConsole, OldWay, NewWay)); + } + } + + public virtual bool IsApplicableToInvocation(InvocationInfo invocation) + { + return true; + } + + protected virtual string GetAttributeSpecificMessage() + { + return _message; + } + } + + [AttributeUsage(AttributeTargets.All)] + public class CmdletBreakingChangeAttribute : GenericBreakingChangeAttribute + { + + public string ReplacementCmdletName { get; set; } + + public CmdletBreakingChangeAttribute() : + base(string.Empty) + { + } + + public CmdletBreakingChangeAttribute(string deprecateByVersione) : + base(string.Empty, deprecateByVersione) + { + } + + public CmdletBreakingChangeAttribute(string deprecateByVersion, string changeInEfectByDate) : + base(string.Empty, deprecateByVersion, changeInEfectByDate) + { + } + + protected override string GetAttributeSpecificMessage() + { + if (string.IsNullOrWhiteSpace(ReplacementCmdletName)) + { + return Resources.BreakingChangesAttributesCmdLetDeprecationMessageNoReplacement; + } + else + { + return string.Format(Resources.BreakingChangesAttributesCmdLetDeprecationMessageWithReplacement, ReplacementCmdletName); + } + } + } + + [AttributeUsage(AttributeTargets.All)] + public class ParameterSetBreakingChangeAttribute : GenericBreakingChangeAttribute + { + public string[] ChangedParameterSet { set; get; } + public ParameterSetBreakingChangeAttribute(string[] changedParameterSet) : + base(string.Empty) + { + ChangedParameterSet = changedParameterSet; + } + + public ParameterSetBreakingChangeAttribute(string[] changedParameterSet, string deprecateByVersione) : + base(string.Empty, deprecateByVersione) + { + ChangedParameterSet = changedParameterSet; + } + + public ParameterSetBreakingChangeAttribute(string[] changedParameterSet, string deprecateByVersion, string changeInEfectByDate) : + base(string.Empty, deprecateByVersion, changeInEfectByDate) + { + ChangedParameterSet = changedParameterSet; + } + + protected override string GetAttributeSpecificMessage() + { + + return Resources.BreakingChangesAttributesParameterSetDeprecationMessageNoReplacement; + + } + + public bool IsApplicableToInvocation(InvocationInfo invocation, string parameterSetName) + { + if (ChangedParameterSet != null) + return ChangedParameterSet.Contains(parameterSetName); + return false; + } + + } + + [AttributeUsage(AttributeTargets.All)] + public class PreviewMessageAttribute : Attribute + { + public string _message; + + public PreviewMessageAttribute() + { + this._message = Resources.PreviewCmdletMessage; + } + + public PreviewMessageAttribute(string message) + { + this._message = message; + } + + public void PrintCustomAttributeInfo(System.Management.Automation.PSCmdlet psCmdlet) + { + psCmdlet.WriteWarning(this._message); + } + + public virtual bool IsApplicableToInvocation(InvocationInfo invocation) + { + return true; + } + } + + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] + public class ParameterBreakingChangeAttribute : GenericBreakingChangeAttribute + { + public string NameOfParameterChanging { get; } + + public string ReplaceMentCmdletParameterName { get; set; } = null; + + public bool IsBecomingMandatory { get; set; } = false; + + public String OldParamaterType { get; set; } + + public String NewParameterType { get; set; } + + public ParameterBreakingChangeAttribute(string nameOfParameterChanging) : + base(string.Empty) + { + this.NameOfParameterChanging = nameOfParameterChanging; + } + + public ParameterBreakingChangeAttribute(string nameOfParameterChanging, string deprecateByVersion) : + base(string.Empty, deprecateByVersion) + { + this.NameOfParameterChanging = nameOfParameterChanging; + } + + public ParameterBreakingChangeAttribute(string nameOfParameterChanging, string deprecateByVersion, string changeInEfectByDate) : + base(string.Empty, deprecateByVersion, changeInEfectByDate) + { + this.NameOfParameterChanging = nameOfParameterChanging; + } + + protected override string GetAttributeSpecificMessage() + { + StringBuilder message = new StringBuilder(); + if (!string.IsNullOrWhiteSpace(ReplaceMentCmdletParameterName)) + { + if (IsBecomingMandatory) + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterReplacedMandatory, NameOfParameterChanging, ReplaceMentCmdletParameterName)); + } + else + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterReplaced, NameOfParameterChanging, ReplaceMentCmdletParameterName)); + } + } + else + { + if (IsBecomingMandatory) + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterMandatoryNow, NameOfParameterChanging)); + } + else + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterChanging, NameOfParameterChanging)); + } + } + + //See if the type of the param is changing + if (OldParamaterType != null && !string.IsNullOrWhiteSpace(NewParameterType)) + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterTypeChange, OldParamaterType, NewParameterType)); + } + return message.ToString(); + } + + /// + /// See if the bound parameters contain the current parameter, if they do + /// then the attribbute is applicable + /// If the invocationInfo is null we return true + /// + /// + /// bool + public override bool IsApplicableToInvocation(InvocationInfo invocationInfo) + { + bool? applicable = invocationInfo == null ? true : invocationInfo.BoundParameters?.Keys?.Contains(this.NameOfParameterChanging); + return applicable.HasValue ? applicable.Value : false; + } + } + + [AttributeUsage(AttributeTargets.All)] + public class OutputBreakingChangeAttribute : GenericBreakingChangeAttribute + { + public string DeprecatedCmdLetOutputType { get; } + + //This is still a String instead of a Type as this + //might be undefined at the time of adding the attribute + public string ReplacementCmdletOutputType { get; set; } + + public string[] DeprecatedOutputProperties { get; set; } + + public string[] NewOutputProperties { get; set; } + + public OutputBreakingChangeAttribute(string deprecatedCmdletOutputType) : + base(string.Empty) + { + this.DeprecatedCmdLetOutputType = deprecatedCmdletOutputType; + } + + public OutputBreakingChangeAttribute(string deprecatedCmdletOutputType, string deprecateByVersion) : + base(string.Empty, deprecateByVersion) + { + this.DeprecatedCmdLetOutputType = deprecatedCmdletOutputType; + } + + public OutputBreakingChangeAttribute(string deprecatedCmdletOutputType, string deprecateByVersion, string changeInEfectByDate) : + base(string.Empty, deprecateByVersion, changeInEfectByDate) + { + this.DeprecatedCmdLetOutputType = deprecatedCmdletOutputType; + } + + protected override string GetAttributeSpecificMessage() + { + StringBuilder message = new StringBuilder(); + + //check for the deprecation scenario + if (string.IsNullOrWhiteSpace(ReplacementCmdletOutputType) && NewOutputProperties == null && DeprecatedOutputProperties == null && string.IsNullOrWhiteSpace(ChangeDescription)) + { + message.Append(string.Format(Resources.BreakingChangesAttributesCmdLetOutputTypeDeprecated, DeprecatedCmdLetOutputType)); + } + else + { + if (!string.IsNullOrWhiteSpace(ReplacementCmdletOutputType)) + { + message.Append(string.Format(Resources.BreakingChangesAttributesCmdLetOutputChange1, DeprecatedCmdLetOutputType, ReplacementCmdletOutputType)); + } + else + { + message.Append(string.Format(Resources.BreakingChangesAttributesCmdLetOutputChange2, DeprecatedCmdLetOutputType)); + } + + if (DeprecatedOutputProperties != null && DeprecatedOutputProperties.Length > 0) + { + message.Append(Resources.BreakingChangesAttributesCmdLetOutputPropertiesRemoved); + foreach (string property in DeprecatedOutputProperties) + { + message.Append(" '" + property + "'"); + } + } + + if (NewOutputProperties != null && NewOutputProperties.Length > 0) + { + message.Append(Resources.BreakingChangesAttributesCmdLetOutputPropertiesAdded); + foreach (string property in NewOutputProperties) + { + message.Append(" '" + property + "'"); + } + } + } + return message.ToString(); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/MessageAttributeHelper.cs b/swaggerci/app/generated/runtime/MessageAttributeHelper.cs new file mode 100644 index 000000000000..153e3cdb4003 --- /dev/null +++ b/swaggerci/app/generated/runtime/MessageAttributeHelper.cs @@ -0,0 +1,161 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.generated.runtime.Properties; + using System; + using System.Collections.Generic; + using System.Linq; + using System.Management.Automation; + using System.Reflection; + using System.Text; + using System.Threading.Tasks; + public class MessageAttributeHelper + { + public const string BREAKING_CHANGE_ATTRIBUTE_INFORMATION_LINK = "https://aka.ms/azps-changewarnings"; + public const string SUPPRESS_ERROR_OR_WARNING_MESSAGE_ENV_VARIABLE_NAME = "SuppressAzurePowerShellBreakingChangeWarnings"; + + /** + * This function takes in a CommandInfo (CmdletInfo or FunctionInfo) + * And reads all the deprecation attributes attached to it + * Prints a message on the cmdline For each of the attribute found + * + * the boundParameterNames is a list of parameters bound to the cmdlet at runtime, + * We only process the Parameter beaking change attributes attached only params listed in this list (if present) + * */ + public static void ProcessCustomAttributesAtRuntime(CommandInfo commandInfo, InvocationInfo invocationInfo, String parameterSet, System.Management.Automation.PSCmdlet psCmdlet) + { + bool supressWarningOrError = false; + + try + { + supressWarningOrError = bool.Parse(System.Environment.GetEnvironmentVariable(SUPPRESS_ERROR_OR_WARNING_MESSAGE_ENV_VARIABLE_NAME)); + } + catch (Exception) + { + //no action + } + + if (supressWarningOrError) + { + //Do not process the attributes at runtime... The env variable to override the warning messages is set + return; + } + + List attributes = new List(GetAllBreakingChangeAttributesInType(commandInfo, invocationInfo, parameterSet)); + StringBuilder sb = new StringBuilder(); + Action appendBreakingChangeInfo = (string s) => sb.Append(s); + + if (attributes != null && attributes.Count > 0) + { + appendBreakingChangeInfo(string.Format(Resources.BreakingChangesAttributesHeaderMessage, commandInfo.Name.Split('_')[0])); + + foreach (GenericBreakingChangeAttribute attribute in attributes) + { + attribute.PrintCustomAttributeInfo(appendBreakingChangeInfo); + } + + appendBreakingChangeInfo(string.Format(Resources.BreakingChangesAttributesFooterMessage, BREAKING_CHANGE_ATTRIBUTE_INFORMATION_LINK)); + + psCmdlet.WriteWarning(sb.ToString()); + } + + List previewAttributes = new List(GetAllPreviewAttributesInType(commandInfo, invocationInfo)); + + if (previewAttributes != null && previewAttributes.Count > 0) + { + foreach (PreviewMessageAttribute attribute in previewAttributes) + { + attribute.PrintCustomAttributeInfo(psCmdlet); + } + } + } + + + /** + * This function takes in a CommandInfo (CmdletInfo or FunctionInfo) + * And returns all the deprecation attributes attached to it + * + * the boundParameterNames is a list of parameters bound to the cmdlet at runtime, + * We only process the Parameter beaking change attributes attached only params listed in this list (if present) + **/ + private static IEnumerable GetAllBreakingChangeAttributesInType(CommandInfo commandInfo, InvocationInfo invocationInfo, String parameterSet) + { + List attributeList = new List(); + + if (commandInfo.GetType() == typeof(CmdletInfo)) + { + var type = ((CmdletInfo)commandInfo).ImplementingType; + attributeList.AddRange(type.GetCustomAttributes(typeof(GenericBreakingChangeAttribute), false).Cast()); + + foreach (MethodInfo m in type.GetRuntimeMethods()) + { + attributeList.AddRange((m.GetCustomAttributes(typeof(GenericBreakingChangeAttribute), false).Cast())); + } + + foreach (FieldInfo f in type.GetRuntimeFields()) + { + attributeList.AddRange(f.GetCustomAttributes(typeof(GenericBreakingChangeAttribute), false).Cast()); + } + + foreach (PropertyInfo p in type.GetRuntimeProperties()) + { + attributeList.AddRange(p.GetCustomAttributes(typeof(GenericBreakingChangeAttribute), false).Cast()); + } + } + else if (commandInfo.GetType() == typeof(FunctionInfo)) + { + attributeList.AddRange(((FunctionInfo)commandInfo).ScriptBlock.Attributes.Where(e => typeof(GenericBreakingChangeAttribute).IsAssignableFrom(e.GetType())).Cast()); + foreach (var parameter in ((FunctionInfo)commandInfo).Parameters) + { + attributeList.AddRange(parameter.Value.Attributes.Where(e => typeof(GenericBreakingChangeAttribute).IsAssignableFrom(e.GetType())).Cast()); + } + } + return invocationInfo == null ? attributeList : attributeList.Where(e => e.GetType() == typeof(ParameterSetBreakingChangeAttribute) ? ((ParameterSetBreakingChangeAttribute)e).IsApplicableToInvocation(invocationInfo, parameterSet) : e.IsApplicableToInvocation(invocationInfo)); + } + private static IEnumerable GetAllPreviewAttributesInType(CommandInfo commandInfo, InvocationInfo invocationInfo) + { + List attributeList = new List(); + if (commandInfo.GetType() == typeof(CmdletInfo)) + { + var type = ((CmdletInfo)commandInfo).ImplementingType; + attributeList.AddRange(type.GetCustomAttributes(typeof(PreviewMessageAttribute), false).Cast()); + + foreach (MethodInfo m in type.GetRuntimeMethods()) + { + attributeList.AddRange((m.GetCustomAttributes(typeof(PreviewMessageAttribute), false).Cast())); + } + + foreach (FieldInfo f in type.GetRuntimeFields()) + { + attributeList.AddRange(f.GetCustomAttributes(typeof(PreviewMessageAttribute), false).Cast()); + } + + foreach (PropertyInfo p in type.GetRuntimeProperties()) + { + attributeList.AddRange(p.GetCustomAttributes(typeof(PreviewMessageAttribute), false).Cast()); + } + } + else if (commandInfo.GetType() == typeof(FunctionInfo)) + { + attributeList.AddRange(((FunctionInfo)commandInfo).ScriptBlock.Attributes.Where(e => typeof(PreviewMessageAttribute).IsAssignableFrom(e.GetType())).Cast()); + foreach (var parameter in ((FunctionInfo)commandInfo).Parameters) + { + attributeList.AddRange(parameter.Value.Attributes.Where(e => typeof(PreviewMessageAttribute).IsAssignableFrom(e.GetType())).Cast()); + } + } + return invocationInfo == null ? attributeList : attributeList.Where(e => e.IsApplicableToInvocation(invocationInfo)); + } + } +} diff --git a/swaggerci/app/generated/runtime/Method.cs b/swaggerci/app/generated/runtime/Method.cs new file mode 100644 index 000000000000..d8bbaeafca21 --- /dev/null +++ b/swaggerci/app/generated/runtime/Method.cs @@ -0,0 +1,19 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + internal static class Method + { + internal static System.Net.Http.HttpMethod Get = System.Net.Http.HttpMethod.Get; + internal static System.Net.Http.HttpMethod Put = System.Net.Http.HttpMethod.Put; + internal static System.Net.Http.HttpMethod Head = System.Net.Http.HttpMethod.Head; + internal static System.Net.Http.HttpMethod Post = System.Net.Http.HttpMethod.Post; + internal static System.Net.Http.HttpMethod Delete = System.Net.Http.HttpMethod.Delete; + internal static System.Net.Http.HttpMethod Options = System.Net.Http.HttpMethod.Options; + internal static System.Net.Http.HttpMethod Trace = System.Net.Http.HttpMethod.Trace; + internal static System.Net.Http.HttpMethod Patch = new System.Net.Http.HttpMethod("PATCH"); + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Models/JsonMember.cs b/swaggerci/app/generated/runtime/Models/JsonMember.cs new file mode 100644 index 000000000000..85cf8f3de5a1 --- /dev/null +++ b/swaggerci/app/generated/runtime/Models/JsonMember.cs @@ -0,0 +1,83 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Reflection; +using System.Runtime.Serialization; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + + + internal sealed class JsonMember + { + private readonly TypeDetails type; + + private readonly Func getter; + private readonly Action setter; + + internal JsonMember(PropertyInfo property, int defaultOrder) + { + getter = property.GetValue; + setter = property.SetValue; + + var dataMember = property.GetCustomAttribute(); + + Name = dataMember?.Name ?? property.Name; + Order = dataMember?.Order ?? defaultOrder; + EmitDefaultValue = dataMember?.EmitDefaultValue ?? true; + + this.type = TypeDetails.Get(property.PropertyType); + + CanRead = property.CanRead; + } + + internal JsonMember(FieldInfo field, int defaultOrder) + { + getter = field.GetValue; + setter = field.SetValue; + + var dataMember = field.GetCustomAttribute(); + + Name = dataMember?.Name ?? field.Name; + Order = dataMember?.Order ?? defaultOrder; + EmitDefaultValue = dataMember?.EmitDefaultValue ?? true; + + this.type = TypeDetails.Get(field.FieldType); + + CanRead = true; + } + + internal string Name { get; } + + internal int Order { get; } + + internal TypeDetails TypeDetails => type; + + internal Type Type => type.NonNullType; + + internal bool IsList => type.IsList; + + // Arrays, Sets, ... + internal Type ElementType => type.ElementType; + + internal IJsonConverter Converter => type.JsonConverter; + + internal bool EmitDefaultValue { get; } + + internal bool IsStringLike => type.IsStringLike; + + internal object DefaultValue => type.DefaultValue; + + internal bool CanRead { get; } + + #region Helpers + + internal object GetValue(object instance) => getter(instance); + + internal void SetValue(object instance, object value) => setter(instance, value); + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Models/JsonModel.cs b/swaggerci/app/generated/runtime/Models/JsonModel.cs new file mode 100644 index 000000000000..3d84db1a7827 --- /dev/null +++ b/swaggerci/app/generated/runtime/Models/JsonModel.cs @@ -0,0 +1,89 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Runtime.Serialization; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal class JsonModel + { + private Dictionary map; + private readonly object _sync = new object(); + + private JsonModel(Type type, List members) + { + Type = type ?? throw new ArgumentNullException(nameof(type)); + Members = members ?? throw new ArgumentNullException(nameof(members)); + } + + internal string Name => Type.Name; + + internal Type Type { get; } + + internal List Members { get; } + + internal JsonMember this[string name] + { + get + { + if (map == null) + { + lock (_sync) + { + if (map == null) + { + map = new Dictionary(); + + foreach (JsonMember m in Members) + { + map[m.Name.ToLower()] = m; + } + } + } + } + + + map.TryGetValue(name.ToLower(), out JsonMember member); + + return member; + } + } + + internal static JsonModel FromType(Type type) + { + var members = new List(); + + int i = 0; + + // BindingFlags.Instance | BindingFlags.Public + + foreach (var member in type.GetFields()) + { + if (member.IsStatic) continue; + + if (member.IsDefined(typeof(IgnoreDataMemberAttribute))) continue; + + members.Add(new JsonMember(member, i)); + + i++; + } + + foreach (var member in type.GetProperties(BindingFlags.Public | BindingFlags.Instance)) + { + if (member.IsDefined(typeof(IgnoreDataMemberAttribute))) continue; + + members.Add(new JsonMember(member, i)); + + i++; + } + + members.Sort((a, b) => a.Order.CompareTo(b.Order)); // inline sort + + return new JsonModel(type, members); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Models/JsonModelCache.cs b/swaggerci/app/generated/runtime/Models/JsonModelCache.cs new file mode 100644 index 000000000000..23f301bc1383 --- /dev/null +++ b/swaggerci/app/generated/runtime/Models/JsonModelCache.cs @@ -0,0 +1,19 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Runtime.CompilerServices; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal static class JsonModelCache + { + private static readonly ConditionalWeakTable cache + = new ConditionalWeakTable(); + + internal static JsonModel Get(Type type) => cache.GetValue(type, Create); + + private static JsonModel Create(Type type) => JsonModel.FromType(type); + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Nodes/Collections/JsonArray.cs b/swaggerci/app/generated/runtime/Nodes/Collections/JsonArray.cs new file mode 100644 index 000000000000..639b9b8bb6b3 --- /dev/null +++ b/swaggerci/app/generated/runtime/Nodes/Collections/JsonArray.cs @@ -0,0 +1,65 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public abstract partial class JsonArray : JsonNode, IEnumerable + { + internal override JsonType Type => JsonType.Array; + + internal abstract JsonType? ElementType { get; } + + public abstract int Count { get; } + + internal virtual bool IsSet => false; + + internal bool IsEmpty => Count == 0; + + #region IEnumerable + + IEnumerator IEnumerable.GetEnumerator() + { + throw new NotImplementedException(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + throw new NotImplementedException(); + } + + #endregion + + #region Static Helpers + + internal static JsonArray Create(short[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(int[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(long[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(decimal[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(float[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(string[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(XBinary[] values) + => new XImmutableArray(values); + + #endregion + + internal static new JsonArray Parse(string text) + => (JsonArray)JsonNode.Parse(text); + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Nodes/Collections/XImmutableArray.cs b/swaggerci/app/generated/runtime/Nodes/Collections/XImmutableArray.cs new file mode 100644 index 000000000000..462a2f0800a3 --- /dev/null +++ b/swaggerci/app/generated/runtime/Nodes/Collections/XImmutableArray.cs @@ -0,0 +1,62 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal sealed class XImmutableArray : JsonArray, IEnumerable + { + private readonly T[] values; + private readonly JsonType elementType; + private readonly TypeCode elementCode; + + internal XImmutableArray(T[] values) + { + this.values = values ?? throw new ArgumentNullException(nameof(values)); + this.elementCode = System.Type.GetTypeCode(typeof(T)); + this.elementType = XHelper.GetElementType(this.elementCode); + } + + public override JsonNode this[int index] => + XHelper.Create(elementType, elementCode, values[index]); + + internal override JsonType? ElementType => elementType; + + public override int Count => values.Length; + + public bool IsReadOnly => true; + + #region IEnumerable Members + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (T value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (T value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + #endregion + + #region Static Constructor + + internal XImmutableArray Create(T[] items) + { + return new XImmutableArray(items); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Nodes/Collections/XList.cs b/swaggerci/app/generated/runtime/Nodes/Collections/XList.cs new file mode 100644 index 000000000000..1eceadfe7b97 --- /dev/null +++ b/swaggerci/app/generated/runtime/Nodes/Collections/XList.cs @@ -0,0 +1,64 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal sealed class XList : JsonArray, IEnumerable + { + private readonly IList values; + private readonly JsonType elementType; + private readonly TypeCode elementCode; + + internal XList(IList values) + { + this.values = values ?? throw new ArgumentNullException(nameof(values)); + this.elementCode = System.Type.GetTypeCode(typeof(T)); + this.elementType = XHelper.GetElementType(this.elementCode); + } + + public override JsonNode this[int index] => + XHelper.Create(elementType, elementCode, values[index]); + + internal override JsonType? ElementType => elementType; + + public override int Count => values.Count; + + public bool IsReadOnly => values.IsReadOnly; + + #region IList + + public void Add(T value) + { + values.Add(value); + } + + public bool Contains(T value) => values.Contains(value); + + #endregion + + #region IEnumerable Members + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Nodes/Collections/XNodeArray.cs b/swaggerci/app/generated/runtime/Nodes/Collections/XNodeArray.cs new file mode 100644 index 000000000000..e81b4be9ce2b --- /dev/null +++ b/swaggerci/app/generated/runtime/Nodes/Collections/XNodeArray.cs @@ -0,0 +1,68 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed partial class XNodeArray : JsonArray, ICollection + { + private readonly List items; + + internal XNodeArray() + { + items = new List(); + } + + internal XNodeArray(params JsonNode[] values) + { + items = new List(values); + } + + public override JsonNode this[int index] => items[index]; + + internal override JsonType? ElementType => null; + + public bool IsReadOnly => false; + + public override int Count => items.Count; + + #region ICollection Members + + public void Add(JsonNode item) + { + items.Add(item); + } + + void ICollection.Clear() + { + items.Clear(); + } + + public bool Contains(JsonNode item) => items.Contains(item); + + void ICollection.CopyTo(JsonNode[] array, int arrayIndex) + { + items.CopyTo(array, arrayIndex); + } + + public bool Remove(JsonNode item) + { + return items.Remove(item); + } + + #endregion + + #region IEnumerable Members + + IEnumerator IEnumerable.GetEnumerator() + => items.GetEnumerator(); + + IEnumerator IEnumerable.GetEnumerator() + => items.GetEnumerator(); + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Nodes/Collections/XSet.cs b/swaggerci/app/generated/runtime/Nodes/Collections/XSet.cs new file mode 100644 index 000000000000..659b0b2b05a5 --- /dev/null +++ b/swaggerci/app/generated/runtime/Nodes/Collections/XSet.cs @@ -0,0 +1,60 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal sealed class XSet : JsonArray, IEnumerable + { + private readonly HashSet values; + private readonly JsonType elementType; + private readonly TypeCode elementCode; + + internal XSet(IEnumerable values) + : this(new HashSet(values)) + { } + + internal XSet(HashSet values) + { + this.values = values ?? throw new ArgumentNullException(nameof(values)); + this.elementCode = System.Type.GetTypeCode(typeof(T)); + this.elementType = XHelper.GetElementType(this.elementCode); + } + + internal override JsonType Type => JsonType.Array; + + internal override JsonType? ElementType => elementType; + + public bool IsReadOnly => true; + + public override int Count => values.Count; + + internal override bool IsSet => true; + + #region IEnumerable Members + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + #endregion + + internal HashSet AsHashSet() => values; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Nodes/JsonBoolean.cs b/swaggerci/app/generated/runtime/Nodes/JsonBoolean.cs new file mode 100644 index 000000000000..738b8377c38a --- /dev/null +++ b/swaggerci/app/generated/runtime/Nodes/JsonBoolean.cs @@ -0,0 +1,42 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal sealed partial class JsonBoolean : JsonNode + { + internal static readonly JsonBoolean True = new JsonBoolean(true); + internal static readonly JsonBoolean False = new JsonBoolean(false); + + internal JsonBoolean(bool value) + { + Value = value; + } + + internal bool Value { get; } + + internal override JsonType Type => JsonType.Boolean; + + internal static new JsonBoolean Parse(string text) + { + switch (text) + { + case "false": return False; + case "true": return True; + + default: throw new ArgumentException($"Expected true or false. Was {text}."); + } + } + + #region Implicit Casts + + public static implicit operator bool(JsonBoolean data) => data.Value; + + public static implicit operator JsonBoolean(bool data) => new JsonBoolean(data); + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Nodes/JsonDate.cs b/swaggerci/app/generated/runtime/Nodes/JsonDate.cs new file mode 100644 index 000000000000..a20bb16cad40 --- /dev/null +++ b/swaggerci/app/generated/runtime/Nodes/JsonDate.cs @@ -0,0 +1,173 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + + + internal sealed partial class JsonDate : JsonNode, IEquatable, IComparable + { + internal static bool AssumeUtcWhenKindIsUnspecified = true; + + private readonly DateTimeOffset value; + + internal JsonDate(DateTime value) + { + if (value.Kind == DateTimeKind.Unspecified && AssumeUtcWhenKindIsUnspecified) + { + value = DateTime.SpecifyKind(value, DateTimeKind.Utc); + } + + this.value = value; + } + + internal JsonDate(DateTimeOffset value) + { + this.value = value; + } + + internal override JsonType Type => JsonType.Date; + + #region Helpers + + internal DateTimeOffset ToDateTimeOffset() + { + return value; + } + + internal DateTime ToDateTime() + { + if (value.Offset == TimeSpan.Zero) + { + return value.UtcDateTime; + } + + return value.DateTime; + } + + internal DateTime ToUtcDateTime() => value.UtcDateTime; + + internal int ToUnixTimeSeconds() + { + return (int)value.ToUnixTimeSeconds(); + } + + internal long ToUnixTimeMilliseconds() + { + return (int)value.ToUnixTimeMilliseconds(); + } + + internal string ToIsoString() + { + return IsoDate.FromDateTimeOffset(value).ToString(); + } + + #endregion + + public override string ToString() + { + return ToIsoString(); + } + + internal static new JsonDate Parse(string text) + { + if (text == null) throw new ArgumentNullException(nameof(text)); + + // TODO support: unixtimeseconds.partialseconds + + if (text.Length > 4 && _IsNumber(text)) // UnixTime + { + var date = DateTimeOffset.FromUnixTimeSeconds(long.Parse(text)); + + return new JsonDate(date); + } + else if (text.Length <= 4 || text[4] == '-') // ISO: 2012- + { + return new JsonDate(IsoDate.Parse(text).ToDateTimeOffset()); + } + else + { + // NOT ISO ENCODED + // "Thu, 5 Apr 2012 16:59:01 +0200", + return new JsonDate(DateTimeOffset.Parse(text)); + } + } + + private static bool _IsNumber(string text) + { + foreach (var c in text) + { + if (!char.IsDigit(c)) return false; + } + + return true; + } + + internal static JsonDate FromUnixTime(int seconds) + { + return new JsonDate(DateTimeOffset.FromUnixTimeSeconds(seconds)); + } + + internal static JsonDate FromUnixTime(double seconds) + { + var milliseconds = (long)(seconds * 1000d); + + return new JsonDate(DateTimeOffset.FromUnixTimeMilliseconds(milliseconds)); + } + + #region Implicit Casts + + public static implicit operator DateTimeOffset(JsonDate value) + => value.ToDateTimeOffset(); + + public static implicit operator DateTime(JsonDate value) + => value.ToDateTime(); + + // From Date + public static implicit operator JsonDate(DateTimeOffset value) + { + return new JsonDate(value); + } + + public static implicit operator JsonDate(DateTime value) + { + return new JsonDate(value); + } + + // From String + public static implicit operator JsonDate(string value) + { + return Parse(value); + } + + #endregion + + #region Equality + + public override bool Equals(object obj) + { + return obj is JsonDate date && date.value == this.value; + } + + public bool Equals(JsonDate other) + { + return this.value == other.value; + } + + public override int GetHashCode() => value.GetHashCode(); + + #endregion + + #region IComparable Members + + int IComparable.CompareTo(JsonDate other) + { + return value.CompareTo(other.value); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Nodes/JsonNode.cs b/swaggerci/app/generated/runtime/Nodes/JsonNode.cs new file mode 100644 index 000000000000..af4f513f4e77 --- /dev/null +++ b/swaggerci/app/generated/runtime/Nodes/JsonNode.cs @@ -0,0 +1,250 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + + + public abstract partial class JsonNode + { + internal abstract JsonType Type { get; } + + public virtual JsonNode this[int index] => throw new NotImplementedException(); + + public virtual JsonNode this[string name] + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + #region Type Helpers + + internal bool IsArray => Type == JsonType.Array; + + internal bool IsDate => Type == JsonType.Date; + + internal bool IsObject => Type == JsonType.Object; + + internal bool IsNumber => Type == JsonType.Number; + + internal bool IsNull => Type == JsonType.Null; + + #endregion + + internal void WriteTo(TextWriter textWriter, bool pretty = true) + { + var writer = new JsonWriter(textWriter, pretty); + + writer.WriteNode(this); + } + + internal T As() + where T : new() + => new JsonSerializer().Deseralize((JsonObject)this); + + internal T[] ToArrayOf() + { + return (T[])new JsonSerializer().DeserializeArray(typeof(T[]), (JsonArray)this); + } + + #region ToString Overrides + + public override string ToString() => ToString(pretty: true); + + internal string ToString(bool pretty) + { + var sb = new StringBuilder(); + + using (var writer = new StringWriter(sb)) + { + WriteTo(writer, pretty); + + return sb.ToString(); + } + } + + #endregion + + #region Static Constructors + + internal static JsonNode Parse(string text) + { + return Parse(new SourceReader(new StringReader(text))); + } + + internal static JsonNode Parse(TextReader textReader) + => Parse(new SourceReader(textReader)); + + private static JsonNode Parse(SourceReader sourceReader) + { + using (var parser = new JsonParser(sourceReader)) + { + return parser.ReadNode(); + } + } + + internal static JsonNode FromObject(object instance) + => new JsonSerializer().Serialize(instance); + + #endregion + + #region Implict Casts + + public static implicit operator string(JsonNode node) => node.ToString(); + + #endregion + + #region Explict Casts + + public static explicit operator DateTime(JsonNode node) + { + switch (node.Type) + { + case JsonType.Date: + return ((JsonDate)node).ToDateTime(); + + case JsonType.String: + return JsonDate.Parse(node.ToString()).ToDateTime(); + + case JsonType.Number: + var num = (JsonNumber)node; + + if (num.IsInteger) + { + return DateTimeOffset.FromUnixTimeSeconds(num).UtcDateTime; + } + else + { + return DateTimeOffset.FromUnixTimeMilliseconds((long)((double)num * 1000)).UtcDateTime; + } + } + + throw new ConversionException(node, typeof(DateTime)); + } + + public static explicit operator DateTimeOffset(JsonNode node) + { + switch (node.Type) + { + case JsonType.Date : return ((JsonDate)node).ToDateTimeOffset(); + case JsonType.String : return JsonDate.Parse(node.ToString()).ToDateTimeOffset(); + + case JsonType.Number: + var num = (JsonNumber)node; + + if (num.IsInteger) + { + return DateTimeOffset.FromUnixTimeSeconds(num); + } + else + { + return DateTimeOffset.FromUnixTimeMilliseconds((long)((double)num * 1000)); + } + + } + + throw new ConversionException(node, typeof(DateTimeOffset)); + } + + public static explicit operator float(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number : return (JsonNumber)node; + case JsonType.String : return float.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(float)); + } + + public static explicit operator double(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number : return (JsonNumber)node; + case JsonType.String : return double.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(double)); + } + + public static explicit operator decimal(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number: return (JsonNumber)node; + case JsonType.String: return decimal.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(decimal)); + } + + public static explicit operator Guid(JsonNode node) + => new Guid(node.ToString()); + + public static explicit operator short(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number : return (JsonNumber)node; + case JsonType.String : return short.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(short)); + } + + public static explicit operator int(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number : return (JsonNumber)node; + case JsonType.String : return int.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(int)); + } + + public static explicit operator long(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number: return (JsonNumber)node; + case JsonType.String: return long.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(long)); + } + + public static explicit operator bool(JsonNode node) + => ((JsonBoolean)node).Value; + + public static explicit operator ushort(JsonNode node) + => (JsonNumber)node; + + public static explicit operator uint(JsonNode node) + => (JsonNumber)node; + + public static explicit operator ulong(JsonNode node) + => (JsonNumber)node; + + public static explicit operator TimeSpan(JsonNode node) + => TimeSpan.Parse(node.ToString()); + + public static explicit operator Uri(JsonNode node) + { + if (node.Type == JsonType.String) + { + return new Uri(node.ToString()); + } + + throw new ConversionException(node, typeof(Uri)); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Nodes/JsonNumber.cs b/swaggerci/app/generated/runtime/Nodes/JsonNumber.cs new file mode 100644 index 000000000000..3d26745d1b67 --- /dev/null +++ b/swaggerci/app/generated/runtime/Nodes/JsonNumber.cs @@ -0,0 +1,109 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed partial class JsonNumber : JsonNode + { + private readonly string value; + private readonly bool overflows = false; + + internal JsonNumber(string value) + { + this.value = value ?? throw new ArgumentNullException(nameof(value)); + } + + internal JsonNumber(int value) + { + this.value = value.ToString(); + } + + internal JsonNumber(long value) + { + this.value = value.ToString(); + + if (value > 9007199254740991) + { + overflows = true; + } + } + + internal JsonNumber(float value) + { + this.value = value.ToString(System.Globalization.CultureInfo.InvariantCulture); + } + + internal JsonNumber(double value) + { + this.value = value.ToString(System.Globalization.CultureInfo.InvariantCulture); + } + + internal override JsonType Type => JsonType.Number; + + internal string Value => value; + + #region Helpers + + internal bool Overflows => overflows; + + internal bool IsInteger => !value.Contains("."); + + internal bool IsFloat => value.Contains("."); + + #endregion + + #region Casting + + public static implicit operator byte(JsonNumber number) + => byte.Parse(number.Value); + + public static implicit operator short(JsonNumber number) + => short.Parse(number.Value); + + public static implicit operator int(JsonNumber number) + => int.Parse(number.Value); + + public static implicit operator long(JsonNumber number) + => long.Parse(number.value); + + public static implicit operator UInt16(JsonNumber number) + => ushort.Parse(number.Value); + + public static implicit operator UInt32(JsonNumber number) + => uint.Parse(number.Value); + + public static implicit operator UInt64(JsonNumber number) + => ulong.Parse(number.Value); + + public static implicit operator decimal(JsonNumber number) + => decimal.Parse(number.Value, System.Globalization.CultureInfo.InvariantCulture); + + public static implicit operator Double(JsonNumber number) + => double.Parse(number.value, System.Globalization.CultureInfo.InvariantCulture); + + public static implicit operator float(JsonNumber number) + => float.Parse(number.value, System.Globalization.CultureInfo.InvariantCulture); + + public static implicit operator JsonNumber(short data) + => new JsonNumber(data.ToString()); + + public static implicit operator JsonNumber(int data) + => new JsonNumber(data); + + public static implicit operator JsonNumber(long data) + => new JsonNumber(data); + + public static implicit operator JsonNumber(Single data) + => new JsonNumber(data.ToString()); + + public static implicit operator JsonNumber(double data) + => new JsonNumber(data.ToString()); + + #endregion + + public override string ToString() => value; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Nodes/JsonObject.cs b/swaggerci/app/generated/runtime/Nodes/JsonObject.cs new file mode 100644 index 000000000000..14df5ebbf322 --- /dev/null +++ b/swaggerci/app/generated/runtime/Nodes/JsonObject.cs @@ -0,0 +1,172 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public partial class JsonObject : JsonNode, IDictionary + { + private readonly Dictionary items; + + internal JsonObject() + { + items = new Dictionary(); + } + + internal JsonObject(IEnumerable> properties) + { + if (properties == null) throw new ArgumentNullException(nameof(properties)); + + items = new Dictionary(); + + foreach (var field in properties) + { + items.Add(field.Key, field.Value); + } + } + + #region IDictionary Constructors + + internal JsonObject(IDictionary dic) + { + items = new Dictionary(dic.Count); + + foreach (var pair in dic) + { + Add(pair.Key, pair.Value); + } + } + + #endregion + + internal override JsonType Type => JsonType.Object; + + #region Add Overloads + + public void Add(string name, JsonNode value) => + items.Add(name, value); + + public void Add(string name, byte[] value) => + items.Add(name, new XBinary(value)); + + public void Add(string name, DateTime value) => + items.Add(name, new JsonDate(value)); + + public void Add(string name, int value) => + items.Add(name, new JsonNumber(value.ToString())); + + public void Add(string name, long value) => + items.Add(name, new JsonNumber(value.ToString())); + + public void Add(string name, float value) => + items.Add(name, new JsonNumber(value.ToString())); + + public void Add(string name, double value) => + items.Add(name, new JsonNumber(value.ToString())); + + public void Add(string name, string value) => + items.Add(name, new JsonString(value)); + + public void Add(string name, bool value) => + items.Add(name, new JsonBoolean(value)); + + public void Add(string name, Uri url) => + items.Add(name, new JsonString(url.AbsoluteUri)); + + public void Add(string name, string[] values) => + items.Add(name, new XImmutableArray(values)); + + public void Add(string name, int[] values) => + items.Add(name, new XImmutableArray(values)); + + #endregion + + #region ICollection> Members + + void ICollection>.Add(KeyValuePair item) + { + items.Add(item.Key, item.Value); + } + + void ICollection>.Clear() + { + items.Clear(); + } + + bool ICollection>.Contains(KeyValuePair item) => + throw new NotImplementedException(); + + void ICollection>.CopyTo(KeyValuePair[] array, int arrayIndex) => + throw new NotImplementedException(); + + + int ICollection>.Count => items.Count; + + bool ICollection>.IsReadOnly => false; + + bool ICollection>.Remove(KeyValuePair item) => + throw new NotImplementedException(); + + #endregion + + #region IDictionary Members + + public bool ContainsKey(string key) => items.ContainsKey(key); + + public ICollection Keys => items.Keys; + + public bool Remove(string key) => items.Remove(key); + + public bool TryGetValue(string key, out JsonNode value) => + items.TryGetValue(key, out value); + + public ICollection Values => items.Values; + + public override JsonNode this[string key] + { + get => items[key]; + set => items[key] = value; + } + + #endregion + + #region IEnumerable + + IEnumerator> IEnumerable>.GetEnumerator() + => items.GetEnumerator(); + + IEnumerator IEnumerable.GetEnumerator() + => items.GetEnumerator(); + + #endregion + + #region Helpers + + internal static new JsonObject FromObject(object instance) => + (JsonObject)new JsonSerializer().Serialize(instance); + + #endregion + + #region Static Constructors + + internal static JsonObject FromStream(Stream stream) + { + using (var tr = new StreamReader(stream)) + { + return (JsonObject)Parse(tr); + } + } + + internal static new JsonObject Parse(string text) + { + return (JsonObject)JsonNode.Parse(text); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Nodes/JsonString.cs b/swaggerci/app/generated/runtime/Nodes/JsonString.cs new file mode 100644 index 000000000000..c41df4ee8de2 --- /dev/null +++ b/swaggerci/app/generated/runtime/Nodes/JsonString.cs @@ -0,0 +1,42 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed partial class JsonString : JsonNode, IEquatable + { + private readonly string value; + + internal JsonString(string value) + { + this.value = value ?? throw new ArgumentNullException(nameof(value)); + } + + internal override JsonType Type => JsonType.String; + + internal string Value => value; + + internal int Length => value.Length; + + #region #region Implicit Casts + + public static implicit operator string(JsonString data) => data.Value; + + public static implicit operator JsonString(string value) => new JsonString(value); + + #endregion + + public override int GetHashCode() => value.GetHashCode(); + + public override string ToString() => value; + + #region IEquatable + + bool IEquatable.Equals(JsonString other) => this.Value == other.Value; + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Nodes/XBinary.cs b/swaggerci/app/generated/runtime/Nodes/XBinary.cs new file mode 100644 index 000000000000..03ff564a8c5a --- /dev/null +++ b/swaggerci/app/generated/runtime/Nodes/XBinary.cs @@ -0,0 +1,40 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal sealed class XBinary : JsonNode + { + private readonly byte[] _value; + private readonly string _base64; + + internal XBinary(byte[] value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + internal XBinary(string base64EncodedString) + { + _base64 = base64EncodedString ?? throw new ArgumentNullException(nameof(base64EncodedString)); + } + + internal override JsonType Type => JsonType.Binary; + + internal byte[] Value => _value ?? Convert.FromBase64String(_base64); + + #region #region Implicit Casts + + public static implicit operator byte[] (XBinary data) => data.Value; + + public static implicit operator XBinary(byte[] data) => new XBinary(data); + + #endregion + + public override int GetHashCode() => Value.GetHashCode(); + + public override string ToString() => _base64 ?? Convert.ToBase64String(_value); + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Nodes/XNull.cs b/swaggerci/app/generated/runtime/Nodes/XNull.cs new file mode 100644 index 000000000000..1088e1f149b6 --- /dev/null +++ b/swaggerci/app/generated/runtime/Nodes/XNull.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal sealed class XNull : JsonNode + { + internal static readonly XNull Instance = new XNull(); + + private XNull() { } + + internal override JsonType Type => JsonType.Null; + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Parser/Exceptions/ParseException.cs b/swaggerci/app/generated/runtime/Parser/Exceptions/ParseException.cs new file mode 100644 index 000000000000..e7efdd5ebec9 --- /dev/null +++ b/swaggerci/app/generated/runtime/Parser/Exceptions/ParseException.cs @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal class ParserException : Exception + { + internal ParserException(string message) + : base(message) + { } + + internal ParserException(string message, SourceLocation location) + : base(message) + { + + Location = location; + } + + internal SourceLocation Location { get; } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Parser/JsonParser.cs b/swaggerci/app/generated/runtime/Parser/JsonParser.cs new file mode 100644 index 000000000000..8f59523e4c5a --- /dev/null +++ b/swaggerci/app/generated/runtime/Parser/JsonParser.cs @@ -0,0 +1,180 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public class JsonParser : IDisposable + { + private readonly TokenReader reader; + + internal JsonParser(TextReader reader) + : this(new SourceReader(reader)) { } + + internal JsonParser(SourceReader sourceReader) + { + if (sourceReader == null) + throw new ArgumentNullException(nameof(sourceReader)); + + this.reader = new TokenReader(new JsonTokenizer(sourceReader)); + + this.reader.Next(); // Start with the first token + } + + internal IEnumerable ReadNodes() + { + JsonNode node; + + while ((node = ReadNode()) != null) yield return node; + } + + internal JsonNode ReadNode() + { + if (reader.Current.Kind == TokenKind.Eof || reader.Current.IsTerminator) + { + return null; + } + + switch (reader.Current.Kind) + { + case TokenKind.LeftBrace : return ReadObject(); // { + case TokenKind.LeftBracket : return ReadArray(); // [ + + default: throw new ParserException($"Expected '{{' or '['. Was {reader.Current}."); + } + } + + private JsonNode ReadFieldValue() + { + // Boolean, Date, Null, Number, String, Uri + if (reader.Current.IsLiteral) + { + return ReadLiteral(); + } + else + { + switch (reader.Current.Kind) + { + case TokenKind.LeftBracket: return ReadArray(); + case TokenKind.LeftBrace : return ReadObject(); + + default: throw new ParserException($"Unexpected token reading field value. Was {reader.Current}."); + } + } + } + + private JsonNode ReadLiteral() + { + var literal = reader.Current; + + reader.Next(); // Read the literal token + + switch (literal.Kind) + { + case TokenKind.Boolean : return JsonBoolean.Parse(literal.Value); + case TokenKind.Null : return XNull.Instance; + case TokenKind.Number : return new JsonNumber(literal.Value); + case TokenKind.String : return new JsonString(literal.Value); + + default: throw new ParserException($"Unexpected token reading literal. Was {literal}."); + } + } + + internal JsonObject ReadObject() + { + reader.Ensure(TokenKind.LeftBrace, "object"); + + reader.Next(); // Read '{' (Object start) + + var jsonObject = new JsonObject(); + + // Read the object's fields until we reach the end of the object ('}') + while (reader.Current.Kind != TokenKind.RightBrace) + { + if (reader.Current.Kind == TokenKind.Comma) + { + reader.Next(); // Read ',' (Seperator) + } + + // Ensure we have a field name + reader.Ensure(TokenKind.String, "Expected field name"); + + var field = ReadField(); + + jsonObject.Add(field.Key, field.Value); + } + + reader.Next(); // Read '}' (Object end) + + return jsonObject; + } + + + // TODO: Use ValueTuple in C#7 + private KeyValuePair ReadField() + { + var fieldName = reader.Current.Value; + + reader.Next(); // Read the field name + + reader.Ensure(TokenKind.Colon, "field"); + + reader.Next(); // Read ':' (Field value indicator) + + return new KeyValuePair(fieldName, ReadFieldValue()); + } + + + internal JsonArray ReadArray() + { + reader.Ensure(TokenKind.LeftBracket, "array"); + + var array = new XNodeArray(); + + reader.Next(); // Read the '[' (Array start) + + // Read the array's items + while (reader.Current.Kind != TokenKind.RightBracket) + { + if (reader.Current.Kind == TokenKind.Comma) + { + reader.Next(); // Read the ',' (Seperator) + } + + if (reader.Current.IsLiteral) + { + array.Add(ReadLiteral()); // Boolean, Date, Number, Null, String, Uri + } + else if (reader.Current.Kind == TokenKind.LeftBracket) + { + array.Add(ReadArray()); // Array + } + else if (reader.Current.Kind == TokenKind.LeftBrace) + { + array.Add(ReadObject()); // Object + } + else + { + throw new ParserException($"Expected comma, literal, or object. Was {reader.Current}."); + } + } + + reader.Next(); // Read the ']' (Array end) + + return array; + } + + #region IDisposable + + public void Dispose() + { + reader.Dispose(); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Parser/JsonToken.cs b/swaggerci/app/generated/runtime/Parser/JsonToken.cs new file mode 100644 index 000000000000..5855fd03509d --- /dev/null +++ b/swaggerci/app/generated/runtime/Parser/JsonToken.cs @@ -0,0 +1,66 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal enum TokenKind + { + LeftBrace, // { Object start + RightBrace, // } Object end + + LeftBracket, // [ Array start + RightBracket, // ] Array end + + Comma, // , Comma + Colon, // : Value indicator + Dot, // . Access field indicator + Terminator, // \0 Stream terminator + + Boolean = 31, // true or false + Null = 33, // null + Number = 34, // i.e. -1.93, -1, 0, 1, 1.1 + String = 35, // i.e. "text" + + Eof = 50 + } + + internal /* readonly */ struct JsonToken + { + internal static readonly JsonToken BraceOpen = new JsonToken(TokenKind.LeftBrace, "{"); + internal static readonly JsonToken BraceClose = new JsonToken(TokenKind.RightBrace, "}"); + + internal static readonly JsonToken BracketOpen = new JsonToken(TokenKind.LeftBracket, "["); + internal static readonly JsonToken BracketClose = new JsonToken(TokenKind.RightBracket, "]"); + + internal static readonly JsonToken Colon = new JsonToken(TokenKind.Colon, ":"); + internal static readonly JsonToken Comma = new JsonToken(TokenKind.Comma, ","); + internal static readonly JsonToken Terminator = new JsonToken(TokenKind.Terminator, "\0"); + + internal static readonly JsonToken True = new JsonToken(TokenKind.Boolean, "true"); + internal static readonly JsonToken False = new JsonToken(TokenKind.Boolean, "false"); + internal static readonly JsonToken Null = new JsonToken(TokenKind.Null, "null"); + + internal static readonly JsonToken Eof = new JsonToken(TokenKind.Eof, null); + + internal JsonToken(TokenKind kind, string value) + { + Kind = kind; + Value = value; + } + + internal readonly TokenKind Kind; + + internal readonly string Value; + + public override string ToString() => Kind + ": " + Value; + + #region Helpers + + internal bool IsLiteral => (byte)Kind > 30 && (byte)Kind < 40; + + internal bool IsTerminator => Kind == TokenKind.Terminator; + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Parser/JsonTokenizer.cs b/swaggerci/app/generated/runtime/Parser/JsonTokenizer.cs new file mode 100644 index 000000000000..946a659a52e6 --- /dev/null +++ b/swaggerci/app/generated/runtime/Parser/JsonTokenizer.cs @@ -0,0 +1,177 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + using System.IO; + + + public class JsonTokenizer : IDisposable + { + private readonly StringBuilder sb = new StringBuilder(); + + private readonly SourceReader reader; + + internal JsonTokenizer(TextReader reader) + : this(new SourceReader(reader)) { } + + internal JsonTokenizer(SourceReader reader) + { + this.reader = reader; + + reader.Next(); // Start with the first char + } + + internal JsonToken ReadNext() + { + reader.SkipWhitespace(); + + if (reader.IsEof) return JsonToken.Eof; + + switch (reader.Current) + { + case '"': return ReadQuotedString(); + + // Symbols + case '[' : reader.Next(); return JsonToken.BracketOpen; // Array start + case ']' : reader.Next(); return JsonToken.BracketClose; // Array end + case ',' : reader.Next(); return JsonToken.Comma; // Value seperator + case ':' : reader.Next(); return JsonToken.Colon; // Field value indicator + case '{' : reader.Next(); return JsonToken.BraceOpen; // Object start + case '}' : reader.Next(); return JsonToken.BraceClose; // Object end + case '\0' : reader.Next(); return JsonToken.Terminator; // Stream terminiator + + default: return ReadLiteral(); + } + } + + private JsonToken ReadQuotedString() + { + Expect('"', "quoted string indicator"); + + reader.Next(); // Read '"' (Starting quote) + + // Read until we reach an unescaped quote char + while (reader.Current != '"') + { + EnsureNotEof("quoted string"); + + if (reader.Current == '\\') + { + char escapedCharacter = reader.ReadEscapeCode(); + + sb.Append(escapedCharacter); + + continue; + } + + StoreCurrentCharacterAndReadNext(); + } + + reader.Next(); // Read '"' (Ending quote) + + return new JsonToken(TokenKind.String, value: sb.Extract()); + } + + private JsonToken ReadLiteral() + { + if (char.IsDigit(reader.Current) || + reader.Current == '-' || + reader.Current == '+') + { + return ReadNumber(); + } + + return ReadIdentifer(); + } + + private JsonToken ReadNumber() + { + // Read until we hit a non-numeric character + // -6.247737e-06 + // E + + while (char.IsDigit(reader.Current) + || reader.Current == '.' + || reader.Current == 'e' + || reader.Current == 'E' + || reader.Current == '-' + || reader.Current == '+') + { + StoreCurrentCharacterAndReadNext(); + } + + return new JsonToken(TokenKind.Number, value: sb.Extract()); + } + + int count = 0; + + private JsonToken ReadIdentifer() + { + count++; + + if (!char.IsLetter(reader.Current)) + { + throw new ParserException( + message : $"Expected literal (number, boolean, or null). Was '{reader.Current}'.", + location : reader.Location + ); + } + + // Read letters, numbers, and underscores '_' + while (char.IsLetterOrDigit(reader.Current) || reader.Current == '_') + { + StoreCurrentCharacterAndReadNext(); + } + + string text = sb.Extract(); + + switch (text) + { + case "true": return JsonToken.True; + case "false": return JsonToken.False; + case "null": return JsonToken.Null; + + default: return new JsonToken(TokenKind.String, text); + } + } + + private void Expect(char character, string description) + { + if (reader.Current != character) + { + throw new ParserException( + message: $"Expected {description} ('{character}'). Was '{reader.Current}'.", + location: reader.Location + ); + } + } + + private void EnsureNotEof(string tokenType) + { + if (reader.IsEof) + { + throw new ParserException( + message: $"Unexpected EOF while reading {tokenType}.", + location: reader.Location + ); + } + } + + private void StoreCurrentCharacterAndReadNext() + { + sb.Append(reader.Current); + + reader.Next(); + } + + public void Dispose() + { + reader.Dispose(); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Parser/Location.cs b/swaggerci/app/generated/runtime/Parser/Location.cs new file mode 100644 index 000000000000..dc1198d07aa3 --- /dev/null +++ b/swaggerci/app/generated/runtime/Parser/Location.cs @@ -0,0 +1,43 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal struct SourceLocation + { + private int line; + private int column; + private int position; + + internal SourceLocation(int line = 0, int column = 0, int position = 0) + { + this.line = line; + this.column = column; + this.position = position; + } + + internal int Line => line; + + internal int Column => column; + + internal int Position => position; + + internal void Advance() + { + this.column++; + this.position++; + } + + internal void MarkNewLine() + { + this.line++; + this.column = 0; + } + + internal SourceLocation Clone() + { + return new SourceLocation(line, column, position); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Parser/Readers/SourceReader.cs b/swaggerci/app/generated/runtime/Parser/Readers/SourceReader.cs new file mode 100644 index 000000000000..12e86315add6 --- /dev/null +++ b/swaggerci/app/generated/runtime/Parser/Readers/SourceReader.cs @@ -0,0 +1,130 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Globalization; +using System.IO; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public sealed class SourceReader : IDisposable + { + private readonly TextReader source; + + private char current; + + private readonly SourceLocation location = new SourceLocation(); + + private bool isEof = false; + + internal SourceReader(TextReader textReader) + { + this.source = textReader ?? throw new ArgumentNullException(nameof(textReader)); + } + + /// + /// Advances to the next character + /// + internal void Next() + { + // Advance to the new line when we see a new line '\n'. + // A new line may be prefixed by a carriage return '\r'. + + if (current == '\n') + { + location.MarkNewLine(); + } + + int charCode = source.Read(); // -1 for end + + if (charCode >= 0) + { + current = (char)charCode; + } + else + { + // If we've already marked this as the EOF, throw an exception + if (isEof) + { + throw new EndOfStreamException("Cannot advance past end of stream."); + } + + isEof = true; + + current = '\0'; + } + + location.Advance(); + } + + internal void SkipWhitespace() + { + while (char.IsWhiteSpace(current)) + { + Next(); + } + } + + internal char ReadEscapeCode() + { + Next(); + + char escapedChar = current; + + Next(); // Consume escaped character + + switch (escapedChar) + { + // Special escape codes + case '"': return '"'; // " (Quotation mark) U+0022 + case '/': return '/'; // / (Solidus) U+002F + case '\\': return '\\'; // \ (Reverse solidus) U+005C + + // Control Characters + case '0': return '\0'; // Nul (0) U+0000 + case 'a': return '\a'; // Alert (7) + case 'b': return '\b'; // Backspace (8) U+0008 + case 'f': return '\f'; // Form feed (12) U+000C + case 'n': return '\n'; // Line feed (10) U+000A + case 'r': return '\r'; // Carriage return (13) U+000D + case 't': return '\t'; // Horizontal tab (9) U+0009 + case 'v': return '\v'; // Vertical tab + + // Unicode escape sequence + case 'u': return ReadUnicodeEscapeSequence(); // U+XXXX + + default: throw new Exception($"Unrecognized escape sequence '\\{escapedChar}'"); + } + } + + private readonly char[] hexCode = new char[4]; + + private char ReadUnicodeEscapeSequence() + { + hexCode[0] = current; Next(); + hexCode[1] = current; Next(); + hexCode[2] = current; Next(); + hexCode[3] = current; Next(); + + return Convert.ToChar(int.Parse( + s : new string(hexCode), + style : NumberStyles.HexNumber, + provider: NumberFormatInfo.InvariantInfo + )); + } + + internal char Current => current; + + internal bool IsEof => isEof; + + internal char Peek() => (char)source.Peek(); + + internal SourceLocation Location => location; + + public void Dispose() + { + source.Dispose(); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Parser/TokenReader.cs b/swaggerci/app/generated/runtime/Parser/TokenReader.cs new file mode 100644 index 000000000000..a9df5b327ac3 --- /dev/null +++ b/swaggerci/app/generated/runtime/Parser/TokenReader.cs @@ -0,0 +1,39 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + public class TokenReader : IDisposable + { + private readonly JsonTokenizer tokenizer; + private JsonToken current; + + internal TokenReader(JsonTokenizer tokenizer) + { + this.tokenizer = tokenizer ?? throw new ArgumentNullException(nameof(tokenizer)); + } + + internal void Next() + { + current = tokenizer.ReadNext(); + } + + internal JsonToken Current => current; + + internal void Ensure(TokenKind kind, string readerName) + { + if (current.Kind != kind) + { + throw new ParserException($"Expected {kind} while reading {readerName}). Was {current}."); + } + } + + public void Dispose() + { + tokenizer.Dispose(); + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/PipelineMocking.cs b/swaggerci/app/generated/runtime/PipelineMocking.cs new file mode 100644 index 000000000000..ede3680b4fd6 --- /dev/null +++ b/swaggerci/app/generated/runtime/PipelineMocking.cs @@ -0,0 +1,262 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + using System.Threading.Tasks; + using System.Collections.Generic; + using System.Net.Http; + using System.Linq; + using System.Net; + using Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json; + + public enum MockMode + { + Live, + Record, + Playback, + + } + + public class PipelineMock + { + + private System.Collections.Generic.Stack scenario = new System.Collections.Generic.Stack(); + private System.Collections.Generic.Stack context = new System.Collections.Generic.Stack(); + private System.Collections.Generic.Stack description = new System.Collections.Generic.Stack(); + + private readonly string recordingPath; + private int counter = 0; + + public static implicit operator Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep(PipelineMock instance) => instance.SendAsync; + + public MockMode Mode { get; set; } = MockMode.Live; + public PipelineMock(string recordingPath) + { + this.recordingPath = recordingPath; + } + + public void PushContext(string text) => context.Push(text); + + public void PushDescription(string text) => description.Push(text); + + + public void PushScenario(string it) + { + // reset counter too + counter = 0; + + scenario.Push(it); + } + + public void PopContext() => context.Pop(); + + public void PopDescription() => description.Pop(); + + public void PopScenario() => scenario.Pop(); + + public void SetRecord() => Mode = MockMode.Record; + + public void SetPlayback() => Mode = MockMode.Playback; + + public void SetLive() => Mode = MockMode.Live; + + public string Scenario => (scenario.Count > 0 ? scenario.Peek() : "[NoScenario]"); + public string Description => (description.Count > 0 ? description.Peek() : "[NoDescription]"); + public string Context => (context.Count > 0 ? context.Peek() : "[NoContext]"); + + /// + /// Headers that we substitute out blank values for in the recordings + /// Add additional headers as necessary + /// + public static HashSet Blacklist = new HashSet(System.StringComparer.CurrentCultureIgnoreCase) { + "Authorization", + }; + + public Dictionary ForceResponseHeaders = new Dictionary(); + + internal static XImmutableArray Removed = new XImmutableArray(new string[] { "[Filtered]" }); + + internal static IEnumerable> FilterHeaders(IEnumerable>> headers) => headers.Select(header => new KeyValuePair(header.Key, Blacklist.Contains(header.Key) ? Removed : new XImmutableArray(header.Value.ToArray()))); + + internal static JsonNode SerializeContent(HttpContent content, ref bool isBase64) => content == null ? XNull.Instance : SerializeContent(content.ReadAsByteArrayAsync().Result, ref isBase64); + + internal static JsonNode SerializeContent(byte[] content, ref bool isBase64) + { + if (null == content || content.Length == 0) + { + return XNull.Instance; + } + var first = content[0]; + var last = content[content.Length - 1]; + + // plaintext for JSON/SGML/XML/HTML/STRINGS/ARRAYS + if ((first == '{' && last == '}') || (first == '<' && last == '>') || (first == '[' && last == ']') || (first == '"' && last == '"')) + { + return new JsonString(System.Text.Encoding.UTF8.GetString(content)); + } + + // base64 for everyone else + return new JsonString(System.Convert.ToBase64String(content)); + } + + internal static byte[] DeserializeContent(string content, bool isBase64) + { + if (string.IsNullOrWhiteSpace(content)) + { + return new byte[0]; + } + + if (isBase64) + { + try + { + return System.Convert.FromBase64String(content); + } + catch + { + // hmm. didn't work, return it as a string I guess. + } + } + return System.Text.Encoding.UTF8.GetBytes(content); + } + + public void SaveMessage(string rqKey, HttpRequestMessage request, HttpResponseMessage response) + { + var messages = System.IO.File.Exists(this.recordingPath) ? Load() : new JsonObject() ?? new JsonObject(); + bool isBase64Request = false; + bool isBase64Response = false; + messages[rqKey] = new JsonObject { + { "Request",new JsonObject { + { "Method", request.Method.Method }, + { "RequestUri", request.RequestUri }, + { "Content", SerializeContent( request.Content, ref isBase64Request) }, + { "isContentBase64", isBase64Request }, + { "Headers", new JsonObject(FilterHeaders(request.Headers)) }, + { "ContentHeaders", request.Content == null ? new JsonObject() : new JsonObject(FilterHeaders(request.Content.Headers))} + } }, + {"Response", new JsonObject { + { "StatusCode", (int)response.StatusCode}, + { "Headers", new JsonObject(FilterHeaders(response.Headers))}, + { "ContentHeaders", new JsonObject(FilterHeaders(response.Content.Headers))}, + { "Content", SerializeContent(response.Content, ref isBase64Response) }, + { "isContentBase64", isBase64Response }, + }} + }; + System.IO.File.WriteAllText(this.recordingPath, messages.ToString()); + } + + private JsonObject Load() + { + if (System.IO.File.Exists(this.recordingPath)) + { + try + { + return JsonObject.FromStream(System.IO.File.OpenRead(this.recordingPath)); + } + catch + { + throw new System.Exception($"Invalid recording file: '{recordingPath}'"); + } + } + + throw new System.ArgumentException($"Missing recording file: '{recordingPath}'", nameof(recordingPath)); + } + + public HttpResponseMessage LoadMessage(string rqKey) + { + var responses = Load(); + var message = responses.Property(rqKey); + + if (null == message) + { + throw new System.ArgumentException($"Missing Request '{rqKey}' in recording file", nameof(rqKey)); + } + + var sc = 0; + var reqMessage = message.Property("Request"); + var respMessage = message.Property("Response"); + + // --------------------------- deserialize response ---------------------------------------------------------------- + bool isBase64Response = false; + respMessage.BooleanProperty("isContentBase64", ref isBase64Response); + var response = new HttpResponseMessage + { + StatusCode = (HttpStatusCode)respMessage.NumberProperty("StatusCode", ref sc), + Content = new System.Net.Http.ByteArrayContent(DeserializeContent(respMessage.StringProperty("Content"), isBase64Response)) + }; + + foreach (var each in respMessage.Property("Headers")) + { + response.Headers.TryAddWithoutValidation(each.Key, each.Value.ToArrayOf()); + } + + foreach (var frh in ForceResponseHeaders) + { + response.Headers.Remove(frh.Key); + response.Headers.TryAddWithoutValidation(frh.Key, frh.Value); + } + + foreach (var each in respMessage.Property("ContentHeaders")) + { + response.Content.Headers.TryAddWithoutValidation(each.Key, each.Value.ToArrayOf()); + } + + // --------------------------- deserialize request ---------------------------------------------------------------- + bool isBase64Request = false; + reqMessage.BooleanProperty("isContentBase64", ref isBase64Request); + response.RequestMessage = new HttpRequestMessage + { + Method = new HttpMethod(reqMessage.StringProperty("Method")), + RequestUri = new System.Uri(reqMessage.StringProperty("RequestUri")), + Content = new System.Net.Http.ByteArrayContent(DeserializeContent(reqMessage.StringProperty("Content"), isBase64Request)) + }; + + foreach (var each in reqMessage.Property("Headers")) + { + response.RequestMessage.Headers.TryAddWithoutValidation(each.Key, each.Value.ToArrayOf()); + } + foreach (var each in reqMessage.Property("ContentHeaders")) + { + response.RequestMessage.Content.Headers.TryAddWithoutValidation(each.Key, each.Value.ToArrayOf()); + } + + return response; + } + + public async Task SendAsync(HttpRequestMessage request, IEventListener callback, ISendAsync next) + { + counter++; + var rqkey = $"{Description}+{Context}+{Scenario}+${request.Method.Method}+{request.RequestUri}+{counter}"; + + switch (Mode) + { + case MockMode.Record: + //Add following code since the request.Content will be released after sendAsync + var requestClone = request; + if (requestClone.Content != null) + { + requestClone = await request.CloneWithContent(request.RequestUri, request.Method); + } + // make the call + var response = await next.SendAsync(request, callback); + + // save the message to the recording file + SaveMessage(rqkey, requestClone, response); + + // return the response. + return response; + + case MockMode.Playback: + // load and return the response. + return LoadMessage(rqkey); + + default: + // pass-thru, do nothing + return await next.SendAsync(request, callback); + } + } + } +} diff --git a/swaggerci/app/generated/runtime/Properties/Resources.Designer.cs b/swaggerci/app/generated/runtime/Properties/Resources.Designer.cs new file mode 100644 index 000000000000..434bad38c04e --- /dev/null +++ b/swaggerci/app/generated/runtime/Properties/Resources.Designer.cs @@ -0,0 +1,5633 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.generated.runtime.Properties +{ + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager + { + get + { + if (object.ReferenceEquals(resourceMan, null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.generated.runtime.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to The remote server returned an error: (401) Unauthorized.. + /// + public static string AccessDeniedExceptionMessage + { + get + { + return ResourceManager.GetString("AccessDeniedExceptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account id doesn't match one in subscription.. + /// + public static string AccountIdDoesntMatchSubscription + { + get + { + return ResourceManager.GetString("AccountIdDoesntMatchSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account needs to be specified. + /// + public static string AccountNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("AccountNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account "{0}" has been added.. + /// + public static string AddAccountAdded + { + get + { + return ResourceManager.GetString("AddAccountAdded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to To switch to a different subscription, please use Select-AzureSubscription.. + /// + public static string AddAccountChangeSubscription + { + get + { + return ResourceManager.GetString("AddAccountChangeSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Skipping external tenant {0}, because you are using a guest or a foreign principal object identity. In order to access this tenant, please run Add-AzureAccount without "-Credential".. + /// + public static string AddAccountNonInteractiveGuestOrFpo + { + get + { + return ResourceManager.GetString("AddAccountNonInteractiveGuestOrFpo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subscription "{0}" is selected as the default subscription.. + /// + public static string AddAccountShowDefaultSubscription + { + get + { + return ResourceManager.GetString("AddAccountShowDefaultSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to To view all the subscriptions, please use Get-AzureSubscription.. + /// + public static string AddAccountViewSubscriptions + { + get + { + return ResourceManager.GetString("AddAccountViewSubscriptions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-On {0} is created successfully.. + /// + public static string AddOnCreatedMessage + { + get + { + return ResourceManager.GetString("AddOnCreatedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-on name {0} is already used.. + /// + public static string AddOnNameAlreadyUsed + { + get + { + return ResourceManager.GetString("AddOnNameAlreadyUsed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-On {0} not found.. + /// + public static string AddOnNotFound + { + get + { + return ResourceManager.GetString("AddOnNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-on {0} is removed successfully.. + /// + public static string AddOnRemovedMessage + { + get + { + return ResourceManager.GetString("AddOnRemovedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-On {0} is updated successfully.. + /// + public static string AddOnUpdatedMessage + { + get + { + return ResourceManager.GetString("AddOnUpdatedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role has been created at {0}\{1}.. + /// + public static string AddRoleMessageCreate + { + get + { + return ResourceManager.GetString("AddRoleMessageCreate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role has been created at {0}\{1}. For easy access to Microsoft Azure services from your application code, install the Microsoft Azure client library for Node.js by running ‘npm install azure’.. + /// + public static string AddRoleMessageCreateNode + { + get + { + return ResourceManager.GetString("AddRoleMessageCreateNode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role has been created at {0}\{1}. For easy access to Microsoft Azure services from your application code, install the Microsoft Azure client library for PHP by running "pear WindowsAzure/WindowsAzure".. + /// + public static string AddRoleMessageCreatePHP + { + get + { + return ResourceManager.GetString("AddRoleMessageCreatePHP", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to set role permissions. Please give the 'Network Service' user 'Read & execute' and 'Modify' permissions to the role folder, or run PowerShell as an Administrator. + /// + public static string AddRoleMessageInsufficientPermissions + { + get + { + return ResourceManager.GetString("AddRoleMessageInsufficientPermissions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A role name '{0}' already exists. + /// + public static string AddRoleMessageRoleExists + { + get + { + return ResourceManager.GetString("AddRoleMessageRoleExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Profile {0} already has an endpoint with name {1}. + /// + public static string AddTrafficManagerEndpointFailed + { + get + { + return ResourceManager.GetString("AddTrafficManagerEndpointFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure PowerShell collects usage data in order to improve your experience. + ///The data is anonymous and does not include commandline argument values. + ///The data is collected by Microsoft. + /// + ///Use the Disable-AzDataCollection cmdlet to turn the feature Off. The cmdlet can be found in the Az.Accounts module. To disable data collection: PS > Disable-AzDataCollection. + ///Use the Enable-AzDataCollection cmdlet to turn the feature On. The cmdlet can be found in the Az.Accounts module. To enable [rest of string was truncated]";. + /// + public static string ARMDataCollectionMessage + { + get + { + return ResourceManager.GetString("ARMDataCollectionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Authenticating for account {0} with single tenant {1}.. + /// + public static string AuthenticatingForSingleTenant + { + get + { + return ResourceManager.GetString("AuthenticatingForSingleTenant", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Windows Azure Powershell\. + /// + public static string AzureDirectory + { + get + { + return ResourceManager.GetString("AzureDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to https://manage.windowsazure.com. + /// + public static string AzurePortalUrl + { + get + { + return ResourceManager.GetString("AzurePortalUrl", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to AZURE_PORTAL_URL. + /// + public static string AzurePortalUrlEnv + { + get + { + return ResourceManager.GetString("AzurePortalUrlEnv", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Selected profile must not be null.. + /// + public static string AzureProfileMustNotBeNull + { + get + { + return ResourceManager.GetString("AzureProfileMustNotBeNull", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure SDK\{0}\. + /// + public static string AzureSdkDirectory + { + get + { + return ResourceManager.GetString("AzureSdkDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File '{0}' already exists. Use the -Force parameter to overwrite it.. + /// + public static string AzureVMDscArchiveAlreadyExists + { + get + { + return ResourceManager.GetString("AzureVMDscArchiveAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find configuration data file: {0}. + /// + public static string AzureVMDscCannotFindConfigurationDataFile + { + get + { + return ResourceManager.GetString("AzureVMDscCannotFindConfigurationDataFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Create Archive. + /// + public static string AzureVMDscCreateArchiveAction + { + get + { + return ResourceManager.GetString("AzureVMDscCreateArchiveAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The configuration data must be a .psd1 file. + /// + public static string AzureVMDscInvalidConfigurationDataFile + { + get + { + return ResourceManager.GetString("AzureVMDscInvalidConfigurationDataFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parsing configuration script: {0}. + /// + public static string AzureVMDscParsingConfiguration + { + get + { + return ResourceManager.GetString("AzureVMDscParsingConfiguration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Storage Blob '{0}' already exists. Use the -Force parameter to overwrite it.. + /// + public static string AzureVMDscStorageBlobAlreadyExists + { + get + { + return ResourceManager.GetString("AzureVMDscStorageBlobAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Upload '{0}'. + /// + public static string AzureVMDscUploadToBlobStorageAction + { + get + { + return ResourceManager.GetString("AzureVMDscUploadToBlobStorageAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Execution failed because a background thread could not prompt the user.. + /// + public static string BaseShouldMethodFailureReason + { + get + { + return ResourceManager.GetString("BaseShouldMethodFailureReason", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Base Uri was empty.. + /// + public static string BaseUriEmpty + { + get + { + return ResourceManager.GetString("BaseUriEmpty", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} begin processing without ParameterSet.. + /// + public static string BeginProcessingWithoutParameterSetLog + { + get + { + return ResourceManager.GetString("BeginProcessingWithoutParameterSetLog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} begin processing with ParameterSet '{1}'.. + /// + public static string BeginProcessingWithParameterSetLog + { + get + { + return ResourceManager.GetString("BeginProcessingWithParameterSetLog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Blob with the name {0} already exists in the account.. + /// + public static string BlobAlreadyExistsInTheAccount + { + get + { + return ResourceManager.GetString("BlobAlreadyExistsInTheAccount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to https://{0}.blob.core.windows.net/. + /// + public static string BlobEndpointUri + { + get + { + return ResourceManager.GetString("BlobEndpointUri", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to AZURE_BLOBSTORAGE_TEMPLATE. + /// + public static string BlobEndpointUriEnv + { + get + { + return ResourceManager.GetString("BlobEndpointUriEnv", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The parameter : '{0}' is changing.. + /// + public static string BreakingChangeAttributeParameterChanging + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterChanging", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The parameter : '{0}' is becoming mandatory.. + /// + public static string BreakingChangeAttributeParameterMandatoryNow + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterMandatoryNow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The parameter : '{0}' is being replaced by parameter : '{1}'.. + /// + public static string BreakingChangeAttributeParameterReplaced + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterReplaced", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The parameter : '{0}' is being replaced by mandatory parameter : '{1}'.. + /// + public static string BreakingChangeAttributeParameterReplacedMandatory + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterReplacedMandatory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The type of the parameter is changing from '{0}' to '{1}'.. + /// + public static string BreakingChangeAttributeParameterTypeChange + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterTypeChange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Change description : {0} + ///. + /// + public static string BreakingChangesAttributesChangeDescriptionMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesChangeDescriptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The cmdlet is being deprecated. There will be no replacement for it.. + /// + public static string BreakingChangesAttributesCmdLetDeprecationMessageNoReplacement + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetDeprecationMessageNoReplacement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The cmdlet is being deprecated. There will be no replacement for it.. + /// + public static string BreakingChangesAttributesParameterSetDeprecationMessageNoReplacement + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesParameterSetDeprecationMessageNoReplacement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The cmdlet '{0}' is replacing this cmdlet.. + /// + public static string BreakingChangesAttributesCmdLetDeprecationMessageWithReplacement + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetDeprecationMessageWithReplacement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The output type is changing from the existing type :'{0}' to the new type :'{1}'. + /// + public static string BreakingChangesAttributesCmdLetOutputChange1 + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputChange1", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to "The output type '{0}' is changing". + /// + public static string BreakingChangesAttributesCmdLetOutputChange2 + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputChange2", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to + ///- The following properties are being added to the output type : + ///. + /// + public static string BreakingChangesAttributesCmdLetOutputPropertiesAdded + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputPropertiesAdded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to + /// - The following properties in the output type are being deprecated : + ///. + /// + public static string BreakingChangesAttributesCmdLetOutputPropertiesRemoved + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputPropertiesRemoved", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The output type '{0}' is being deprecated without a replacement.. + /// + public static string BreakingChangesAttributesCmdLetOutputTypeDeprecated + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputTypeDeprecated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to - {0} + /// + ///. + /// + public static string BreakingChangesAttributesDeclarationMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesDeclarationMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to - Cmdlet : '{0}' + /// - {1} + ///. + /// + public static string BreakingChangesAttributesDeclarationMessageWithCmdletName + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesDeclarationMessageWithCmdletName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to NOTE : Go to {0} for steps to suppress (and other related information on) the breaking change messages.. + /// + public static string BreakingChangesAttributesFooterMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesFooterMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Breaking changes in the cmdlet '{0}' :. + /// + public static string BreakingChangesAttributesHeaderMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesHeaderMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Note : This change will take effect on '{0}' + ///. + /// + public static string BreakingChangesAttributesInEffectByDateMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesInEffectByDateMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Note :The change is expected to take effect from the version : '{0}' + /// + ///. + /// + public static string BreakingChangesAttributesInEffectByVersion + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesInEffectByVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ```powershell + ///# Old + ///{0} + /// + ///# New + ///{1} + ///``` + /// + ///. + /// + public static string BreakingChangesAttributesUsageChangeMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesUsageChangeMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cmdlet invocation changes : + /// Old Way : {0} + /// New Way : {1}. + /// + public static string BreakingChangesAttributesUsageChangeMessageConsole + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesUsageChangeMessageConsole", resourceCulture); + } + } + + /// + /// The cmdlet is in experimental stage. The function may not be enabled in current subscription. + /// + public static string ExperimentalCmdletMessage + { + get + { + return ResourceManager.GetString("ExperimentalCmdletMessage", resourceCulture); + } + } + + + + /// + /// Looks up a localized string similar to CACHERUNTIMEURL. + /// + public static string CacheRuntimeUrl + { + get + { + return ResourceManager.GetString("CacheRuntimeUrl", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to cache. + /// + public static string CacheRuntimeValue + { + get + { + return ResourceManager.GetString("CacheRuntimeValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to CacheRuntimeVersion. + /// + public static string CacheRuntimeVersionKey + { + get + { + return ResourceManager.GetString("CacheRuntimeVersionKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installing caching version {0} for Role '{1}' (the caching version locally installed is: {2}). + /// + public static string CacheVersionWarningText + { + get + { + return ResourceManager.GetString("CacheVersionWarningText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot change built-in environment {0}.. + /// + public static string CannotChangeBuiltinEnvironment + { + get + { + return ResourceManager.GetString("CannotChangeBuiltinEnvironment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find {0} with name {1}.. + /// + public static string CannotFind + { + get + { + return ResourceManager.GetString("CannotFind", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deployment for service {0} with {1} slot doesn't exist. + /// + public static string CannotFindDeployment + { + get + { + return ResourceManager.GetString("CannotFindDeployment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Can't find valid Microsoft Azure role in current directory {0}. + /// + public static string CannotFindRole + { + get + { + return ResourceManager.GetString("CannotFindRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service {0} configuration file (ServiceConfiguration.Cloud.cscfg) is either null or doesn't exist. + /// + public static string CannotFindServiceConfigurationFile + { + get + { + return ResourceManager.GetString("CannotFindServiceConfigurationFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid service path! Cannot locate ServiceDefinition.csdef in current folder or parent folders.. + /// + public static string CannotFindServiceRoot + { + get + { + return ResourceManager.GetString("CannotFindServiceRoot", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription named {0} with id {1} is not currently imported. You must import this subscription before it can be updated.. + /// + public static string CannotUpdateUnknownSubscription + { + get + { + return ResourceManager.GetString("CannotUpdateUnknownSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ManagementCertificate. + /// + public static string CertificateElementName + { + get + { + return ResourceManager.GetString("CertificateElementName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to certificate.pfx. + /// + public static string CertificateFileName + { + get + { + return ResourceManager.GetString("CertificateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Certificate imported into CurrentUser\My\{0}. + /// + public static string CertificateImportedMessage + { + get + { + return ResourceManager.GetString("CertificateImportedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No certificate was found in the certificate store with thumbprint {0}. + /// + public static string CertificateNotFoundInStore + { + get + { + return ResourceManager.GetString("CertificateNotFoundInStore", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Your account does not have access to the private key for certificate {0}. + /// + public static string CertificatePrivateKeyAccessError + { + get + { + return ResourceManager.GetString("CertificatePrivateKeyAccessError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} {1} deployment for {2} service. + /// + public static string ChangeDeploymentStateWaitMessage + { + get + { + return ResourceManager.GetString("ChangeDeploymentStateWaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cloud service {0} is in {1} state.. + /// + public static string ChangeDeploymentStatusCompleteMessage + { + get + { + return ResourceManager.GetString("ChangeDeploymentStatusCompleteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Changing/Removing public environment '{0}' is not allowed.. + /// + public static string ChangePublicEnvironmentMessage + { + get + { + return ResourceManager.GetString("ChangePublicEnvironmentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service {0} is set to value {1}. + /// + public static string ChangeSettingsElementMessage + { + get + { + return ResourceManager.GetString("ChangeSettingsElementMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Changing public environment is not supported.. + /// + public static string ChangingDefaultEnvironmentNotSupported + { + get + { + return ResourceManager.GetString("ChangingDefaultEnvironmentNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose which publish settings file to use:. + /// + public static string ChoosePublishSettingsFile + { + get + { + return ResourceManager.GetString("ChoosePublishSettingsFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel. + /// + public static string ClientDiagnosticLevelName + { + get + { + return ResourceManager.GetString("ClientDiagnosticLevelName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1. + /// + public static string ClientDiagnosticLevelValue + { + get + { + return ResourceManager.GetString("ClientDiagnosticLevelValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to cloud_package.cspkg. + /// + public static string CloudPackageFileName + { + get + { + return ResourceManager.GetString("CloudPackageFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ServiceConfiguration.Cloud.cscfg. + /// + public static string CloudServiceConfigurationFileName + { + get + { + return ResourceManager.GetString("CloudServiceConfigurationFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-ons for {0}. + /// + public static string CloudServiceDescription + { + get + { + return ResourceManager.GetString("CloudServiceDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Communication could not be established. This could be due to an invalid subscription ID. Note that subscription IDs are case sensitive.. + /// + public static string CommunicationCouldNotBeEstablished + { + get + { + return ResourceManager.GetString("CommunicationCouldNotBeEstablished", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Complete. + /// + public static string CompleteMessage + { + get + { + return ResourceManager.GetString("CompleteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to OperationID : '{0}'. + /// + public static string ComputeCloudExceptionOperationIdMessage + { + get + { + return ResourceManager.GetString("ComputeCloudExceptionOperationIdMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to config.json. + /// + public static string ConfigurationFileName + { + get + { + return ResourceManager.GetString("ConfigurationFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to VirtualMachine creation failed.. + /// + public static string CreateFailedErrorMessage + { + get + { + return ResourceManager.GetString("CreateFailedErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Creating the website failed. If this is the first website for this subscription, please create it using the management portal instead.. + /// + public static string CreateWebsiteFailed + { + get + { + return ResourceManager.GetString("CreateWebsiteFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core. + /// + public static string DataCacheClientsType + { + get + { + return ResourceManager.GetString("DataCacheClientsType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to //blobcontainer[@datacenter='{0}']. + /// + public static string DatacenterBlobQuery + { + get + { + return ResourceManager.GetString("DatacenterBlobQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft Azure PowerShell Data Collection Confirmation. + /// + public static string DataCollectionActivity + { + get + { + return ResourceManager.GetString("DataCollectionActivity", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You choose not to participate in Microsoft Azure PowerShell data collection.. + /// + public static string DataCollectionConfirmNo + { + get + { + return ResourceManager.GetString("DataCollectionConfirmNo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This confirmation message will be dismissed in '{0}' second(s).... + /// + public static string DataCollectionConfirmTime + { + get + { + return ResourceManager.GetString("DataCollectionConfirmTime", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You choose to participate in Microsoft Azure PowerShell data collection.. + /// + public static string DataCollectionConfirmYes + { + get + { + return ResourceManager.GetString("DataCollectionConfirmYes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The setting profile has been saved to the following path '{0}'.. + /// + public static string DataCollectionSaveFileInformation + { + get + { + return ResourceManager.GetString("DataCollectionSaveFileInformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Setting: {0} as the default and current subscription. To view other subscriptions use Get-AzureSubscription. + /// + public static string DefaultAndCurrentSubscription + { + get + { + return ResourceManager.GetString("DefaultAndCurrentSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to none. + /// + public static string DefaultFileVersion + { + get + { + return ResourceManager.GetString("DefaultFileVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There are no hostnames which could be used for validation.. + /// + public static string DefaultHostnamesValidation + { + get + { + return ResourceManager.GetString("DefaultHostnamesValidation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 8080. + /// + public static string DefaultPort + { + get + { + return ResourceManager.GetString("DefaultPort", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1000. + /// + public static string DefaultRoleCachingInMB + { + get + { + return ResourceManager.GetString("DefaultRoleCachingInMB", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Auto. + /// + public static string DefaultUpgradeMode + { + get + { + return ResourceManager.GetString("DefaultUpgradeMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 80. + /// + public static string DefaultWebPort + { + get + { + return ResourceManager.GetString("DefaultWebPort", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Delete. + /// + public static string Delete + { + get + { + return ResourceManager.GetString("Delete", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The {0} slot for service {1} is already in {2} state. + /// + public static string DeploymentAlreadyInState + { + get + { + return ResourceManager.GetString("DeploymentAlreadyInState", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The deployment in {0} slot for service {1} is removed. + /// + public static string DeploymentRemovedMessage + { + get + { + return ResourceManager.GetString("DeploymentRemovedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel. + /// + public static string DiagnosticLevelName + { + get + { + return ResourceManager.GetString("DiagnosticLevelName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1. + /// + public static string DiagnosticLevelValue + { + get + { + return ResourceManager.GetString("DiagnosticLevelValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The key to add already exists in the dictionary.. + /// + public static string DictionaryAddAlreadyContainsKey + { + get + { + return ResourceManager.GetString("DictionaryAddAlreadyContainsKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The array index cannot be less than zero.. + /// + public static string DictionaryCopyToArrayIndexLessThanZero + { + get + { + return ResourceManager.GetString("DictionaryCopyToArrayIndexLessThanZero", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The supplied array does not have enough room to contain the copied elements.. + /// + public static string DictionaryCopyToArrayTooShort + { + get + { + return ResourceManager.GetString("DictionaryCopyToArrayTooShort", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided dns {0} doesn't exist. + /// + public static string DnsDoesNotExist + { + get + { + return ResourceManager.GetString("DnsDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft Azure Certificate. + /// + public static string EnableRemoteDesktop_FriendlyCertificateName + { + get + { + return ResourceManager.GetString("EnableRemoteDesktop_FriendlyCertificateName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Endpoint can't be retrieved for storage account. + /// + public static string EndPointNotFoundForBlobStorage + { + get + { + return ResourceManager.GetString("EndPointNotFoundForBlobStorage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} end processing.. + /// + public static string EndProcessingLog + { + get + { + return ResourceManager.GetString("EndProcessingLog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to To use Active Directory authentication, you must configure the ActiveDirectoryEndpoint, ActiveDirectoryTenantId, and ActiveDirectorServiceEndpointResourceId for environment of '{0}'. You can configure these properties for this environment using the Set-AzureEnvironment cmdlet.. + /// + public static string EnvironmentDoesNotSupportActiveDirectory + { + get + { + return ResourceManager.GetString("EnvironmentDoesNotSupportActiveDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The environment '{0}' already exists.. + /// + public static string EnvironmentExists + { + get + { + return ResourceManager.GetString("EnvironmentExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Environment name doesn't match one in subscription.. + /// + public static string EnvironmentNameDoesntMatchSubscription + { + get + { + return ResourceManager.GetString("EnvironmentNameDoesntMatchSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Environment name needs to be specified.. + /// + public static string EnvironmentNameNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("EnvironmentNameNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Environment needs to be specified.. + /// + public static string EnvironmentNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("EnvironmentNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The environment name '{0}' is not found.. + /// + public static string EnvironmentNotFound + { + get + { + return ResourceManager.GetString("EnvironmentNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to environments.xml. + /// + public static string EnvironmentsFileName + { + get + { + return ResourceManager.GetString("EnvironmentsFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error creating VirtualMachine. + /// + public static string ErrorCreatingVirtualMachine + { + get + { + return ResourceManager.GetString("ErrorCreatingVirtualMachine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to download available runtimes for location '{0}'. + /// + public static string ErrorRetrievingRuntimesForLocation + { + get + { + return ResourceManager.GetString("ErrorRetrievingRuntimesForLocation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error updating VirtualMachine. + /// + public static string ErrorUpdatingVirtualMachine + { + get + { + return ResourceManager.GetString("ErrorUpdatingVirtualMachine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Job Id {0} failed. Error: {1}, ExceptionDetails: {2}. + /// + public static string FailedJobErrorMessage + { + get + { + return ResourceManager.GetString("FailedJobErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File path is not valid.. + /// + public static string FilePathIsNotValid + { + get + { + return ResourceManager.GetString("FilePathIsNotValid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The HTTP request was forbidden with client authentication scheme 'Anonymous'.. + /// + public static string FirstPurchaseErrorMessage + { + get + { + return ResourceManager.GetString("FirstPurchaseErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This add-on requires you to purchase the first instance through the Microsoft Azure Portal. Subsequent purchases can be performed through PowerShell.. + /// + public static string FirstPurchaseMessage + { + get + { + return ResourceManager.GetString("FirstPurchaseMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Operation Status:. + /// + public static string GatewayOperationStatus + { + get + { + return ResourceManager.GetString("GatewayOperationStatus", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resources\Scaffolding\General. + /// + public static string GeneralScaffolding + { + get + { + return ResourceManager.GetString("GeneralScaffolding", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Getting all available Microsoft Azure Add-Ons, this may take few minutes.... + /// + public static string GetAllAddOnsWaitMessage + { + get + { + return ResourceManager.GetString("GetAllAddOnsWaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Name{0}Primary Key{0}Seconday Key. + /// + public static string GetStorageKeysHeader + { + get + { + return ResourceManager.GetString("GetStorageKeysHeader", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Git not found. Please install git and place it in your command line path.. + /// + public static string GitNotFound + { + get + { + return ResourceManager.GetString("GitNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not find publish settings. Please run Import-AzurePublishSettingsFile.. + /// + public static string GlobalSettingsManager_Load_PublishSettingsNotFound + { + get + { + return ResourceManager.GetString("GlobalSettingsManager_Load_PublishSettingsNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find the WadCfg end element in the config.. + /// + public static string IaasDiagnosticsBadConfigNoEndWadCfg + { + get + { + return ResourceManager.GetString("IaasDiagnosticsBadConfigNoEndWadCfg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WadCfg start element in the config is not matching the end element.. + /// + public static string IaasDiagnosticsBadConfigNoMatchingWadCfg + { + get + { + return ResourceManager.GetString("IaasDiagnosticsBadConfigNoMatchingWadCfg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find the WadCfg element in the config.. + /// + public static string IaasDiagnosticsBadConfigNoWadCfg + { + get + { + return ResourceManager.GetString("IaasDiagnosticsBadConfigNoWadCfg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to iisnode.dll. + /// + public static string IISNodeDll + { + get + { + return ResourceManager.GetString("IISNodeDll", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to iisnode. + /// + public static string IISNodeEngineKey + { + get + { + return ResourceManager.GetString("IISNodeEngineKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to iisnode-dev\\release\\x64. + /// + public static string IISNodePath + { + get + { + return ResourceManager.GetString("IISNodePath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to iisnode. + /// + public static string IISNodeRuntimeValue + { + get + { + return ResourceManager.GetString("IISNodeRuntimeValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installing IISNode version {0} in Azure for WebRole '{1}' (the version locally installed is: {2}). + /// + public static string IISNodeVersionWarningText + { + get + { + return ResourceManager.GetString("IISNodeVersionWarningText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Illegal characters in path.. + /// + public static string IllegalPath + { + get + { + return ResourceManager.GetString("IllegalPath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Internal Server Error. + /// + public static string InternalServerErrorMessage + { + get + { + return ResourceManager.GetString("InternalServerErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot enable memcach protocol on a cache worker role {0}.. + /// + public static string InvalidCacheRoleName + { + get + { + return ResourceManager.GetString("InvalidCacheRoleName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid certificate format. Publish settings may be corrupted. Use Get-AzurePublishSettingsFile to download updated settings. + /// + public static string InvalidCertificate + { + get + { + return ResourceManager.GetString("InvalidCertificate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid certificate format.. + /// + public static string InvalidCertificateSingle + { + get + { + return ResourceManager.GetString("InvalidCertificateSingle", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided configuration path is invalid or doesn't exist. + /// + public static string InvalidConfigPath + { + get + { + return ResourceManager.GetString("InvalidConfigPath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The country name is invalid, please use a valid two character country code, as described in ISO 3166-1 alpha-2.. + /// + public static string InvalidCountryNameMessage + { + get + { + return ResourceManager.GetString("InvalidCountryNameMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No default subscription has been designated. Use Select-AzureSubscription -Default <subscriptionName> to set the default subscription.. + /// + public static string InvalidDefaultSubscription + { + get + { + return ResourceManager.GetString("InvalidDefaultSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deployment with {0} does not exist. + /// + public static string InvalidDeployment + { + get + { + return ResourceManager.GetString("InvalidDeployment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The deployment slot name {0} is invalid. Slot name must be either "Staging" or "Production".. + /// + public static string InvalidDeploymentSlot + { + get + { + return ResourceManager.GetString("InvalidDeploymentSlot", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to "{0}" is an invalid DNS name for {1}. + /// + public static string InvalidDnsName + { + get + { + return ResourceManager.GetString("InvalidDnsName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid service endpoint.. + /// + public static string InvalidEndpoint + { + get + { + return ResourceManager.GetString("InvalidEndpoint", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided file in {0} must be have {1} extension. + /// + public static string InvalidFileExtension + { + get + { + return ResourceManager.GetString("InvalidFileExtension", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File {0} has invalid characters. + /// + public static string InvalidFileName + { + get + { + return ResourceManager.GetString("InvalidFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You must create your git publishing credentials using the Microsoft Azure portal. + ///Please follow these steps in the portal: + ///1. On the left side open "Web Sites" + ///2. Click on any website + ///3. Choose "Setup Git Publishing" or "Reset deployment credentials" + ///4. Back in the PowerShell window, rerun this command by typing "New-AzureWebSite {site name} -Git -PublishingUsername {username}. + /// + public static string InvalidGitCredentials + { + get + { + return ResourceManager.GetString("InvalidGitCredentials", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The value {0} provided is not a valid GUID. Please provide a valid GUID.. + /// + public static string InvalidGuid + { + get + { + return ResourceManager.GetString("InvalidGuid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The specified hostname does not exist. Please specify a valid hostname for the site.. + /// + public static string InvalidHostnameValidation + { + get + { + return ResourceManager.GetString("InvalidHostnameValidation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role {0} instances must be greater than or equal 0 and less than or equal 20. + /// + public static string InvalidInstancesCount + { + get + { + return ResourceManager.GetString("InvalidInstancesCount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There was an error creating your webjob. Please make sure that the script is in the root folder of the zip file.. + /// + public static string InvalidJobFile + { + get + { + return ResourceManager.GetString("InvalidJobFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not download a valid runtime manifest, Please check your internet connection and try again.. + /// + public static string InvalidManifestError + { + get + { + return ResourceManager.GetString("InvalidManifestError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The account {0} was not found. Please specify a valid account name.. + /// + public static string InvalidMediaServicesAccount + { + get + { + return ResourceManager.GetString("InvalidMediaServicesAccount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided name "{0}" does not match the service bus namespace naming rules.. + /// + public static string InvalidNamespaceName + { + get + { + return ResourceManager.GetString("InvalidNamespaceName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path must specify a valid path to an Azure profile.. + /// + public static string InvalidNewProfilePath + { + get + { + return ResourceManager.GetString("InvalidNewProfilePath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Value cannot be null. Parameter name: '{0}'. + /// + public static string InvalidNullArgument + { + get + { + return ResourceManager.GetString("InvalidNullArgument", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} is invalid or empty. + /// + public static string InvalidOrEmptyArgumentMessage + { + get + { + return ResourceManager.GetString("InvalidOrEmptyArgumentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided package path is invalid or doesn't exist. + /// + public static string InvalidPackagePath + { + get + { + return ResourceManager.GetString("InvalidPackagePath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to '{0}' is an invalid parameter set name.. + /// + public static string InvalidParameterSetName + { + get + { + return ResourceManager.GetString("InvalidParameterSetName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} doesn't exist in {1} or you've not passed valid value for it. + /// + public static string InvalidPath + { + get + { + return ResourceManager.GetString("InvalidPath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path {0} has invalid characters. + /// + public static string InvalidPathName + { + get + { + return ResourceManager.GetString("InvalidPathName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Property bag Hashtable must contain one of the following sets of properties: {SubscriptionId, Certificate}, {SubscriptionId, Username, Password}, {SubscriptionId, ServicePrincipal, Password, Tenant}, {SubscriptionId, AccountId, Token}. + /// + public static string InvalidProfileProperties + { + get + { + return ResourceManager.GetString("InvalidProfileProperties", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided publish settings file {0} has invalid content. Please get valid by running cmdlet Get-AzurePublishSettingsFile. + /// + public static string InvalidPublishSettingsSchema + { + get + { + return ResourceManager.GetString("InvalidPublishSettingsSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided role name "{0}" has invalid characters. + /// + public static string InvalidRoleNameMessage + { + get + { + return ResourceManager.GetString("InvalidRoleNameMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A valid name for the service root folder is required. + /// + public static string InvalidRootNameMessage + { + get + { + return ResourceManager.GetString("InvalidRootNameMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} is not a recognized runtime type. + /// + public static string InvalidRuntimeError + { + get + { + return ResourceManager.GetString("InvalidRuntimeError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A valid language is required. + /// + public static string InvalidScaffoldingLanguageArg + { + get + { + return ResourceManager.GetString("InvalidScaffoldingLanguageArg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No subscription is currently selected. Use Select-Subscription to activate a subscription.. + /// + public static string InvalidSelectedSubscription + { + get + { + return ResourceManager.GetString("InvalidSelectedSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided location "{0}" does not exist in the available locations use Get-AzureSBLocation for listing available locations.. + /// + public static string InvalidServiceBusLocation + { + get + { + return ResourceManager.GetString("InvalidServiceBusLocation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please provide a service name or run this command from inside a service project directory.. + /// + public static string InvalidServiceName + { + get + { + return ResourceManager.GetString("InvalidServiceName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You must provide valid value for {0}. + /// + public static string InvalidServiceSettingElement + { + get + { + return ResourceManager.GetString("InvalidServiceSettingElement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to settings.json is invalid or doesn't exist. + /// + public static string InvalidServiceSettingMessage + { + get + { + return ResourceManager.GetString("InvalidServiceSettingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription named '{0}' cannot be found. Use Set-AzureSubscription to initialize the subscription data.. + /// + public static string InvalidSubscription + { + get + { + return ResourceManager.GetString("InvalidSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided subscription id {0} is not valid. + /// + public static string InvalidSubscriptionId + { + get + { + return ResourceManager.GetString("InvalidSubscriptionId", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Must specify a non-null subscription name.. + /// + public static string InvalidSubscriptionName + { + get + { + return ResourceManager.GetString("InvalidSubscriptionName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A valid subscription name is required. This can be provided using the -Subscription parameter or by setting the subscription via the Set-AzureSubscription cmdlet. + /// + public static string InvalidSubscriptionNameMessage + { + get + { + return ResourceManager.GetString("InvalidSubscriptionNameMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided subscriptions file {0} has invalid content.. + /// + public static string InvalidSubscriptionsDataSchema + { + get + { + return ResourceManager.GetString("InvalidSubscriptionsDataSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role {0} VM size should be ExtraSmall, Small, Medium, Large or ExtraLarge.. + /// + public static string InvalidVMSize + { + get + { + return ResourceManager.GetString("InvalidVMSize", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The web job file must have *.zip extension. + /// + public static string InvalidWebJobFile + { + get + { + return ResourceManager.GetString("InvalidWebJobFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Singleton option works for continuous jobs only.. + /// + public static string InvalidWebJobSingleton + { + get + { + return ResourceManager.GetString("InvalidWebJobSingleton", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The website {0} was not found. Please specify a valid website name.. + /// + public static string InvalidWebsite + { + get + { + return ResourceManager.GetString("InvalidWebsite", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No job for id: {0} was found.. + /// + public static string JobNotFound + { + get + { + return ResourceManager.GetString("JobNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to engines. + /// + public static string JsonEnginesSectionName + { + get + { + return ResourceManager.GetString("JsonEnginesSectionName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Scaffolding for this language is not yet supported. + /// + public static string LanguageScaffoldingIsNotSupported + { + get + { + return ResourceManager.GetString("LanguageScaffoldingIsNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Link already established. + /// + public static string LinkAlreadyEstablished + { + get + { + return ResourceManager.GetString("LinkAlreadyEstablished", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to local_package.csx. + /// + public static string LocalPackageFileName + { + get + { + return ResourceManager.GetString("LocalPackageFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ServiceConfiguration.Local.cscfg. + /// + public static string LocalServiceConfigurationFileName + { + get + { + return ResourceManager.GetString("LocalServiceConfigurationFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Looking for {0} deployment for {1} cloud service.... + /// + public static string LookingForDeploymentMessage + { + get + { + return ResourceManager.GetString("LookingForDeploymentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Looking for cloud service {0}.... + /// + public static string LookingForServiceMessage + { + get + { + return ResourceManager.GetString("LookingForServiceMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure Long-Running Job. + /// + public static string LROJobName + { + get + { + return ResourceManager.GetString("LROJobName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The cmdlet failed in background execution. The returned error was '{0}'. Please execute the cmdlet again. You may need to execute this cmdlet synchronously, by omitting the '-AsJob' parameter.. + /// + public static string LROTaskExceptionMessage + { + get + { + return ResourceManager.GetString("LROTaskExceptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to managementCertificate.pem. + /// + public static string ManagementCertificateFileName + { + get + { + return ResourceManager.GetString("ManagementCertificateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ?whr={0}. + /// + public static string ManagementPortalRealmFormat + { + get + { + return ResourceManager.GetString("ManagementPortalRealmFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to //baseuri. + /// + public static string ManifestBaseUriQuery + { + get + { + return ResourceManager.GetString("ManifestBaseUriQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to uri. + /// + public static string ManifestBlobUriKey + { + get + { + return ResourceManager.GetString("ManifestBlobUriKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to http://az413943.vo.msecnd.net/node/runtimemanifest_0.7.5.2.xml. + /// + public static string ManifestUri + { + get + { + return ResourceManager.GetString("ManifestUri", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Property bag Hashtable must contain a 'Certificate' of type 'X509Certificate2'.. + /// + public static string MissingCertificateInProfileProperties + { + get + { + return ResourceManager.GetString("MissingCertificateInProfileProperties", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Property bag Hashtable must contain a 'Password' with an associated 'Username' or 'ServicePrincipal'.. + /// + public static string MissingPasswordInProfileProperties + { + get + { + return ResourceManager.GetString("MissingPasswordInProfileProperties", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Property bag Hashtable must contain a 'SubscriptionId'.. + /// + public static string MissingSubscriptionInProfileProperties + { + get + { + return ResourceManager.GetString("MissingSubscriptionInProfileProperties", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Multiple Add-Ons found holding name {0}. + /// + public static string MultipleAddOnsFoundMessage + { + get + { + return ResourceManager.GetString("MultipleAddOnsFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Multiple possible publishing users. Please go to the Portal and use the listed deployment user, or click 'set/reset deployment credentials' to set up a new user account, then reurn this cmdlet and specify PublishingUsername.. + /// + public static string MultiplePublishingUsernames + { + get + { + return ResourceManager.GetString("MultiplePublishingUsernames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The first publish settings file "{0}" is used. If you want to use another file specify the file name.. + /// + public static string MultiplePublishSettingsFilesFoundMessage + { + get + { + return ResourceManager.GetString("MultiplePublishSettingsFilesFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Plugins.Caching.NamedCaches. + /// + public static string NamedCacheSettingName + { + get + { + return ResourceManager.GetString("NamedCacheSettingName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {"caches":[{"name":"default","policy":{"eviction":{"type":0},"expiration":{"defaultTTL":10,"isExpirable":true,"type":1},"serverNotification":{"isEnabled":false}},"secondaries":0}]}. + /// + public static string NamedCacheSettingValue + { + get + { + return ResourceManager.GetString("NamedCacheSettingValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A publishing username is required. Please specify one using the argument PublishingUsername.. + /// + public static string NeedPublishingUsernames + { + get + { + return ResourceManager.GetString("NeedPublishingUsernames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to New Add-On Confirmation. + /// + public static string NewAddOnConformation + { + get + { + return ResourceManager.GetString("NewAddOnConformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis + ///for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) + ///agree to the {2}'s terms of user and privacy statement at {0} and (c) agree to sharing my + ///contact information with {2}.. + /// + public static string NewMicrosoftAddOnMessage + { + get + { + return ResourceManager.GetString("NewMicrosoftAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Internal Server Error. This could happen because the namespace name is already used or due to an incorrect location name. Use Get-AzureSBLocation cmdlet to list valid names.. + /// + public static string NewNamespaceErrorMessage + { + get + { + return ResourceManager.GetString("NewNamespaceErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis + ///for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) + ///acknowledge the offering is provided by {2}, not Microsoft, and agree to {2}'s terms of + ///use and privacy statement at {0} and (c) agree to sharing my contact information with {2}.. + /// + public static string NewNonMicrosoftAddOnMessage + { + get + { + return ResourceManager.GetString("NewNonMicrosoftAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service has been created at {0}. + /// + public static string NewServiceCreatedMessage + { + get + { + return ResourceManager.GetString("NewServiceCreatedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No. + /// + public static string No + { + get + { + return ResourceManager.GetString("No", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There is no access token cached for subscription {0}, user id {1}. Use the Add-AzureAccount cmdlet to log in again and get a token for this subscription.. + /// + public static string NoCachedToken + { + get + { + return ResourceManager.GetString("NoCachedToken", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The service does not have any cache worker roles, add one first by running cmdlet Add-AzureCacheWorkerRole.. + /// + public static string NoCacheWorkerRoles + { + get + { + return ResourceManager.GetString("NoCacheWorkerRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No clouds available. + /// + public static string NoCloudsAvailable + { + get + { + return ResourceManager.GetString("NoCloudsAvailable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to "There is no current context, please log in using Connect-AzAccount.". + /// + public static string NoCurrentContextForDataCmdlet + { + get + { + return ResourceManager.GetString("NoCurrentContextForDataCmdlet", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to nodejs. + /// + public static string NodeDirectory + { + get + { + return ResourceManager.GetString("NodeDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to node. + /// + public static string NodeEngineKey + { + get + { + return ResourceManager.GetString("NodeEngineKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to node.exe. + /// + public static string NodeExe + { + get + { + return ResourceManager.GetString("NodeExe", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There is no default subscription set, please set a default subscription by running Set-AzureSubscription -Default <subscription name>. + /// + public static string NoDefaultSubscriptionMessage + { + get + { + return ResourceManager.GetString("NoDefaultSubscriptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft SDKs\Azure\Nodejs\Nov2011. + /// + public static string NodeModulesPath + { + get + { + return ResourceManager.GetString("NodeModulesPath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to nodejs. + /// + public static string NodeProgramFilesFolderName + { + get + { + return ResourceManager.GetString("NodeProgramFilesFolderName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to node. + /// + public static string NodeRuntimeValue + { + get + { + return ResourceManager.GetString("NodeRuntimeValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resources\Scaffolding\Node. + /// + public static string NodeScaffolding + { + get + { + return ResourceManager.GetString("NodeScaffolding", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Commands.CloudService.ScaffoldingResources.Node. + /// + public static string NodeScaffoldingResources + { + get + { + return ResourceManager.GetString("NodeScaffoldingResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installing Node version {0} in Azure for Role '{1}' (the Node version locally installed is: {2}). + /// + public static string NodeVersionWarningText + { + get + { + return ResourceManager.GetString("NodeVersionWarningText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No, I do not agree. + /// + public static string NoHint + { + get + { + return ResourceManager.GetString("NoHint", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please connect to internet before executing this cmdlet. + /// + public static string NoInternetConnection + { + get + { + return ResourceManager.GetString("NoInternetConnection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <NONE>. + /// + public static string None + { + get + { + return ResourceManager.GetString("None", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No publish settings files with extension *.publishsettings are found in the directory "{0}".. + /// + public static string NoPublishSettingsFilesFoundMessage + { + get + { + return ResourceManager.GetString("NoPublishSettingsFilesFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There is no subscription associated with account {0}.. + /// + public static string NoSubscriptionAddedMessage + { + get + { + return ResourceManager.GetString("NoSubscriptionAddedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No subscriptions are associated with the logged in account in Azure Service Management (RDFE). This means that the logged in user is not an administrator or co-administrator for any account.\r\nDid you mean to execute Connect-AzAccount?. + /// + public static string NoSubscriptionFoundForTenant + { + get + { + return ResourceManager.GetString("NoSubscriptionFoundForTenant", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to '{0}' must be a cache worker role. Verify that it has proper cache worker role configuration.. + /// + public static string NotCacheWorkerRole + { + get + { + return ResourceManager.GetString("NotCacheWorkerRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Certificate can't be null.. + /// + public static string NullCertificateMessage + { + get + { + return ResourceManager.GetString("NullCertificateMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} could not be null or empty. + /// + public static string NullObjectMessage + { + get + { + return ResourceManager.GetString("NullObjectMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to add a null RoleSettings to {0}. + /// + public static string NullRoleSettingsMessage + { + get + { + return ResourceManager.GetString("NullRoleSettingsMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to add new role to null service definition. + /// + public static string NullServiceDefinitionMessage + { + get + { + return ResourceManager.GetString("NullServiceDefinitionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The request offer '{0}' is not found.. + /// + public static string OfferNotFoundMessage + { + get + { + return ResourceManager.GetString("OfferNotFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Operation "{0}" failed on VM with ID: {1}. + /// + public static string OperationFailedErrorMessage + { + get + { + return ResourceManager.GetString("OperationFailedErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The REST operation failed with message '{0}' and error code '{1}'. + /// + public static string OperationFailedMessage + { + get + { + return ResourceManager.GetString("OperationFailedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Job Id {0} did not complete within expected time or it is in Failed/Canceled/Invalid state.. + /// + public static string OperationTimedOutOrError + { + get + { + return ResourceManager.GetString("OperationTimedOutOrError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to package. + /// + public static string Package + { + get + { + return ResourceManager.GetString("Package", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Package is created at service root path {0}.. + /// + public static string PackageCreated + { + get + { + return ResourceManager.GetString("PackageCreated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {{ + /// "author": "", + /// + /// "name": "{0}", + /// "version": "0.0.0", + /// "dependencies":{{}}, + /// "devDependencies":{{}}, + /// "optionalDependencies": {{}}, + /// "engines": {{ + /// "node": "*", + /// "iisnode": "*" + /// }} + /// + ///}} + ///. + /// + public static string PackageJsonDefaultFile + { + get + { + return ResourceManager.GetString("PackageJsonDefaultFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to package.json. + /// + public static string PackageJsonFileName + { + get + { + return ResourceManager.GetString("PackageJsonFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path {0} doesn't exist.. + /// + public static string PathDoesNotExist + { + get + { + return ResourceManager.GetString("PathDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path for {0} doesn't exist in {1}.. + /// + public static string PathDoesNotExistForElement + { + get + { + return ResourceManager.GetString("PathDoesNotExistForElement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A value for the Peer Asn has to be provided.. + /// + public static string PeerAsnRequired + { + get + { + return ResourceManager.GetString("PeerAsnRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 5.4.0. + /// + public static string PHPDefaultRuntimeVersion + { + get + { + return ResourceManager.GetString("PHPDefaultRuntimeVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to php. + /// + public static string PhpRuntimeValue + { + get + { + return ResourceManager.GetString("PhpRuntimeValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resources\Scaffolding\PHP. + /// + public static string PHPScaffolding + { + get + { + return ResourceManager.GetString("PHPScaffolding", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Commands.CloudService.ScaffoldingResources.PHP. + /// + public static string PHPScaffoldingResources + { + get + { + return ResourceManager.GetString("PHPScaffoldingResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installing PHP version {0} for Role '{1}' (the PHP version locally installed is: {2}). + /// + public static string PHPVersionWarningText + { + get + { + return ResourceManager.GetString("PHPVersionWarningText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You must create your first web site using the Microsoft Azure portal. + ///Please follow these steps in the portal: + ///1. At the bottom of the page, click on New > Web Site > Quick Create + ///2. Type {0} in the URL field + ///3. Click on "Create Web Site" + ///4. Once the site has been created, click on the site name + ///5. Click on "Set up Git publishing" or "Reset deployment credentials" and setup a publishing username and password. Use those credentials for all new websites you create.. + /// + public static string PortalInstructions + { + get + { + return ResourceManager.GetString("PortalInstructions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 6. Back in the console window, rerun this command by typing "New-AzureWebsite <site name> -Git". + /// + public static string PortalInstructionsGit + { + get + { + return ResourceManager.GetString("PortalInstructionsGit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This cmdlet is in preview. The functionality may not be available in the selected subscription. + /// + public static string PreviewCmdletMessage + { + get + { + return ResourceManager.GetString("PreviewCmdletMessage", resourceCulture); + } + } + + + /// + /// Looks up a localized string similar to A value for the Primary Peer Subnet has to be provided.. + /// + public static string PrimaryPeerSubnetRequired + { + get + { + return ResourceManager.GetString("PrimaryPeerSubnetRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Promotion code can be used only when updating to a new plan.. + /// + public static string PromotionCodeWithCurrentPlanMessage + { + get + { + return ResourceManager.GetString("PromotionCodeWithCurrentPlanMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service not published at user request.. + /// + public static string PublishAbortedAtUserRequest + { + get + { + return ResourceManager.GetString("PublishAbortedAtUserRequest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Complete.. + /// + public static string PublishCompleteMessage + { + get + { + return ResourceManager.GetString("PublishCompleteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Connecting.... + /// + public static string PublishConnectingMessage + { + get + { + return ResourceManager.GetString("PublishConnectingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Created Deployment ID: {0}.. + /// + public static string PublishCreatedDeploymentMessage + { + get + { + return ResourceManager.GetString("PublishCreatedDeploymentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Created hosted service '{0}'.. + /// + public static string PublishCreatedServiceMessage + { + get + { + return ResourceManager.GetString("PublishCreatedServiceMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Created Website URL: {0}.. + /// + public static string PublishCreatedWebsiteMessage + { + get + { + return ResourceManager.GetString("PublishCreatedWebsiteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Creating.... + /// + public static string PublishCreatingServiceMessage + { + get + { + return ResourceManager.GetString("PublishCreatingServiceMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Initializing.... + /// + public static string PublishInitializingMessage + { + get + { + return ResourceManager.GetString("PublishInitializingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to busy. + /// + public static string PublishInstanceStatusBusy + { + get + { + return ResourceManager.GetString("PublishInstanceStatusBusy", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to creating the virtual machine. + /// + public static string PublishInstanceStatusCreating + { + get + { + return ResourceManager.GetString("PublishInstanceStatusCreating", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Instance {0} of role {1} is {2}.. + /// + public static string PublishInstanceStatusMessage + { + get + { + return ResourceManager.GetString("PublishInstanceStatusMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ready. + /// + public static string PublishInstanceStatusReady + { + get + { + return ResourceManager.GetString("PublishInstanceStatusReady", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Preparing deployment for {0} with Subscription ID: {1}.... + /// + public static string PublishPreparingDeploymentMessage + { + get + { + return ResourceManager.GetString("PublishPreparingDeploymentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Publishing {0} to Microsoft Azure. This may take several minutes.... + /// + public static string PublishServiceStartMessage + { + get + { + return ResourceManager.GetString("PublishServiceStartMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to publish settings. + /// + public static string PublishSettings + { + get + { + return ResourceManager.GetString("PublishSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure. + /// + public static string PublishSettingsElementName + { + get + { + return ResourceManager.GetString("PublishSettingsElementName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to .PublishSettings. + /// + public static string PublishSettingsFileExtention + { + get + { + return ResourceManager.GetString("PublishSettingsFileExtention", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to publishSettings.xml. + /// + public static string PublishSettingsFileName + { + get + { + return ResourceManager.GetString("PublishSettingsFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &whr={0}. + /// + public static string PublishSettingsFileRealmFormat + { + get + { + return ResourceManager.GetString("PublishSettingsFileRealmFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Publish settings imported. + /// + public static string PublishSettingsSetSuccessfully + { + get + { + return ResourceManager.GetString("PublishSettingsSetSuccessfully", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to AZURE_PUBLISHINGPROFILE_URL. + /// + public static string PublishSettingsUrlEnv + { + get + { + return ResourceManager.GetString("PublishSettingsUrlEnv", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Starting.... + /// + public static string PublishStartingMessage + { + get + { + return ResourceManager.GetString("PublishStartingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Upgrading.... + /// + public static string PublishUpgradingMessage + { + get + { + return ResourceManager.GetString("PublishUpgradingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Uploading Package to storage service {0}.... + /// + public static string PublishUploadingPackageMessage + { + get + { + return ResourceManager.GetString("PublishUploadingPackageMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Verifying storage account '{0}'.... + /// + public static string PublishVerifyingStorageMessage + { + get + { + return ResourceManager.GetString("PublishVerifyingStorageMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path '{0}' not found.. + /// + public static string PublishVMDscExtensionAdditionalContentPathNotExist + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionAdditionalContentPathNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration published to {0}. + /// + public static string PublishVMDscExtensionArchiveUploadedMessage + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionArchiveUploadedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy '{0}' to '{1}'.. + /// + public static string PublishVMDscExtensionCopyFileVerbose + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionCopyFileVerbose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy the module '{0}' to '{1}'.. + /// + public static string PublishVMDscExtensionCopyModuleVerbose + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionCopyModuleVerbose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid configuration file: {0}. + ///The file needs to be a PowerShell script (.ps1 or .psm1).. + /// + public static string PublishVMDscExtensionCreateArchiveConfigFileInvalidExtension + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionCreateArchiveConfigFileInvalidExtension", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deleted '{0}'. + /// + public static string PublishVMDscExtensionDeletedFileMessage + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionDeletedFileMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot delete '{0}': {1}. + /// + public static string PublishVMDscExtensionDeleteErrorMessage + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionDeleteErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path '{0}' not found.. + /// + public static string PublishVMDscExtensionDirectoryNotExist + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionDirectoryNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot get module for DscResource '{0}'. Possible solutions: + ///1) Specify -ModuleName for Import-DscResource in your configuration. + ///2) Unblock module that contains resource. + ///3) Move Import-DscResource inside Node block. + ///. + /// + public static string PublishVMDscExtensionGetDscResourceFailed + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionGetDscResourceFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to List of required modules: [{0}].. + /// + public static string PublishVMDscExtensionRequiredModulesVerbose + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionRequiredModulesVerbose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Your current PowerShell version {1} is less then required by this cmdlet {0}. Consider download and install latest PowerShell version.. + /// + public static string PublishVMDscExtensionRequiredPsVersion + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionRequiredPsVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration script '{0}' contained parse errors: + ///{1}. + /// + public static string PublishVMDscExtensionStorageParserErrors + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionStorageParserErrors", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Temp folder '{0}' created.. + /// + public static string PublishVMDscExtensionTempFolderVerbose + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionTempFolderVerbose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid configuration file: {0}. + ///The file needs to be a PowerShell script (.ps1 or .psm1) or a ZIP archive (.zip).. + /// + public static string PublishVMDscExtensionUploadArchiveConfigFileInvalidExtension + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionUploadArchiveConfigFileInvalidExtension", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration file '{0}' not found.. + /// + public static string PublishVMDscExtensionUploadArchiveConfigFileNotExist + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionUploadArchiveConfigFileNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure PowerShell collects usage data in order to improve your experience. + ///The data is anonymous and does not include commandline argument values. + ///The data is collected by Microsoft. + /// + ///Use the Disable-AzureDataCollection cmdlet to turn the feature Off. The cmdlet can be found in the Azure module. To disable data collection: PS > Disable-AzureDataCollection. + ///Use the Enable-AzureDataCollection cmdlet to turn the feature On. The cmdlet can be found in the Azure module. To enable data collection: PS > Enab [rest of string was truncated]";. + /// + public static string RDFEDataCollectionMessage + { + get + { + return ResourceManager.GetString("RDFEDataCollectionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Replace current deployment with '{0}' Id ?. + /// + public static string RedeployCommit + { + get + { + return ResourceManager.GetString("RedeployCommit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to regenerate key?. + /// + public static string RegenerateKeyWarning + { + get + { + return ResourceManager.GetString("RegenerateKeyWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Generate new key.. + /// + public static string RegenerateKeyWhatIfMessage + { + get + { + return ResourceManager.GetString("RegenerateKeyWhatIfMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove account '{0}'?. + /// + public static string RemoveAccountConfirmation + { + get + { + return ResourceManager.GetString("RemoveAccountConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing account. + /// + public static string RemoveAccountMessage + { + get + { + return ResourceManager.GetString("RemoveAccountMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove Add-On Confirmation. + /// + public static string RemoveAddOnConformation + { + get + { + return ResourceManager.GetString("RemoveAddOnConformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If you delete this add-on, your data may be deleted and the operation may not be undone. You may have to purchase it again from the Microsoft Azure Store to use it. The price of the add-on may not be refunded. Are you sure you want to delete this add-on? Enter “Yes” to confirm.. + /// + public static string RemoveAddOnMessage + { + get + { + return ResourceManager.GetString("RemoveAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove-AzureBGPPeering Operation failed.. + /// + public static string RemoveAzureBGPPeeringFailed + { + get + { + return ResourceManager.GetString("RemoveAzureBGPPeeringFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing Bgp Peering. + /// + public static string RemoveAzureBGPPeeringMessage + { + get + { + return ResourceManager.GetString("RemoveAzureBGPPeeringMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Successfully removed Azure Bgp Peering with Service Key {0}.. + /// + public static string RemoveAzureBGPPeeringSucceeded + { + get + { + return ResourceManager.GetString("RemoveAzureBGPPeeringSucceeded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the Bgp Peering with service key '{0}'?. + /// + public static string RemoveAzureBGPPeeringWarning + { + get + { + return ResourceManager.GetString("RemoveAzureBGPPeeringWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the Dedicated Circuit with service key '{0}'?. + /// + public static string RemoveAzureDedicatdCircuitWarning + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatdCircuitWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove-AzureDedicatedCircuit Operation failed.. + /// + public static string RemoveAzureDedicatedCircuitFailed + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove-AzureDedicatedCircuitLink Operation failed.. + /// + public static string RemoveAzureDedicatedCircuitLinkFailed + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitLinkFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing Dedicated Circui Link. + /// + public static string RemoveAzureDedicatedCircuitLinkMessage + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitLinkMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Successfully removed Azure Dedicated Circuit Link with Service Key {0} and Vnet Name {1}. + /// + public static string RemoveAzureDedicatedCircuitLinkSucceeded + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitLinkSucceeded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the Dedicated Circuit Link with service key '{0}' and virtual network name '{1}'?. + /// + public static string RemoveAzureDedicatedCircuitLinkWarning + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitLinkWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing Dedicated Circuit. + /// + public static string RemoveAzureDedicatedCircuitMessage + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Successfully removed Azure Dedicated Circuit with Service Key {0}.. + /// + public static string RemoveAzureDedicatedCircuitSucceeded + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitSucceeded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing cloud service {0}.... + /// + public static string RemoveAzureServiceWaitMessage + { + get + { + return ResourceManager.GetString("RemoveAzureServiceWaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The default subscription is being removed. Use Select-AzureSubscription -Default <subscriptionName> to select a new default subscription.. + /// + public static string RemoveDefaultSubscription + { + get + { + return ResourceManager.GetString("RemoveDefaultSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing {0} deployment for {1} service. + /// + public static string RemoveDeploymentWaitMessage + { + get + { + return ResourceManager.GetString("RemoveDeploymentWaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing an environment will remove all associated subscriptions and accounts. Are you sure you want to remove an environment '{0}'?. + /// + public static string RemoveEnvironmentConfirmation + { + get + { + return ResourceManager.GetString("RemoveEnvironmentConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing environment. + /// + public static string RemoveEnvironmentMessage + { + get + { + return ResourceManager.GetString("RemoveEnvironmentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing job collection. + /// + public static string RemoveJobCollectionMessage + { + get + { + return ResourceManager.GetString("RemoveJobCollectionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the job collection "{0}". + /// + public static string RemoveJobCollectionWarning + { + get + { + return ResourceManager.GetString("RemoveJobCollectionWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing job. + /// + public static string RemoveJobMessage + { + get + { + return ResourceManager.GetString("RemoveJobMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the job "{0}". + /// + public static string RemoveJobWarning + { + get + { + return ResourceManager.GetString("RemoveJobWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the account?. + /// + public static string RemoveMediaAccountWarning + { + get + { + return ResourceManager.GetString("RemoveMediaAccountWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account removed.. + /// + public static string RemoveMediaAccountWhatIfMessage + { + get + { + return ResourceManager.GetString("RemoveMediaAccountWhatIfMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Internal Server Error. This could happen because the namespace does not exist or it does not exist under your subscription.. + /// + public static string RemoveNamespaceErrorMessage + { + get + { + return ResourceManager.GetString("RemoveNamespaceErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing old package {0}.... + /// + public static string RemovePackage + { + get + { + return ResourceManager.GetString("RemovePackage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing the Azure profile will remove all associated environments, subscriptions, and accounts. Are you sure you want to remove the Azure profile?. + /// + public static string RemoveProfileConfirmation + { + get + { + return ResourceManager.GetString("RemoveProfileConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing the Azure profile. + /// + public static string RemoveProfileMessage + { + get + { + return ResourceManager.GetString("RemoveProfileMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to delete the namespace '{0}'?. + /// + public static string RemoveServiceBusNamespaceConfirmation + { + get + { + return ResourceManager.GetString("RemoveServiceBusNamespaceConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove cloud service?. + /// + public static string RemoveServiceWarning + { + get + { + return ResourceManager.GetString("RemoveServiceWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove cloud service and all it's deployments. + /// + public static string RemoveServiceWhatIfMessage + { + get + { + return ResourceManager.GetString("RemoveServiceWhatIfMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove subscription '{0}'?. + /// + public static string RemoveSubscriptionConfirmation + { + get + { + return ResourceManager.GetString("RemoveSubscriptionConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing subscription. + /// + public static string RemoveSubscriptionMessage + { + get + { + return ResourceManager.GetString("RemoveSubscriptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The endpoint {0} cannot be removed from profile {1} because it's not in the profile.. + /// + public static string RemoveTrafficManagerEndpointMissing + { + get + { + return ResourceManager.GetString("RemoveTrafficManagerEndpointMissing", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove-AzureTrafficManagerProfile Operation failed.. + /// + public static string RemoveTrafficManagerProfileFailed + { + get + { + return ResourceManager.GetString("RemoveTrafficManagerProfileFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Successfully removed Traffic Manager profile with name {0}.. + /// + public static string RemoveTrafficManagerProfileSucceeded + { + get + { + return ResourceManager.GetString("RemoveTrafficManagerProfileSucceeded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the Traffic Manager profile "{0}"?. + /// + public static string RemoveTrafficManagerProfileWarning + { + get + { + return ResourceManager.GetString("RemoveTrafficManagerProfileWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to delete the VM '{0}'?. + /// + public static string RemoveVMConfirmationMessage + { + get + { + return ResourceManager.GetString("RemoveVMConfirmationMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deleting VM.. + /// + public static string RemoveVMMessage + { + get + { + return ResourceManager.GetString("RemoveVMMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing WebJob.... + /// + public static string RemoveWebJobMessage + { + get + { + return ResourceManager.GetString("RemoveWebJobMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove job '{0}'?. + /// + public static string RemoveWebJobWarning + { + get + { + return ResourceManager.GetString("RemoveWebJobWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing website. + /// + public static string RemoveWebsiteMessage + { + get + { + return ResourceManager.GetString("RemoveWebsiteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the website "{0}". + /// + public static string RemoveWebsiteWarning + { + get + { + return ResourceManager.GetString("RemoveWebsiteWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing public environment is not supported.. + /// + public static string RemovingDefaultEnvironmentsNotSupported + { + get + { + return ResourceManager.GetString("RemovingDefaultEnvironmentsNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deleting namespace. + /// + public static string RemovingNamespaceMessage + { + get + { + return ResourceManager.GetString("RemovingNamespaceMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Repository is not setup. You need to pass a valid site name.. + /// + public static string RepositoryNotSetup + { + get + { + return ResourceManager.GetString("RepositoryNotSetup", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Reserved IP with the Name:'{0}' will no longer be in use after the deployment is deleted, and it is still reserved for later use.. + /// + public static string ReservedIPNameNoLongerInUseButStillBeingReserved + { + get + { + return ResourceManager.GetString("ReservedIPNameNoLongerInUseButStillBeingReserved", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resource with ID : {0} does not exist.. + /// + public static string ResourceNotFound + { + get + { + return ResourceManager.GetString("ResourceNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Restart. + /// + public static string Restart + { + get + { + return ResourceManager.GetString("Restart", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resume. + /// + public static string Resume + { + get + { + return ResourceManager.GetString("Resume", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /role:{0};"{1}/{0}" . + /// + public static string RoleArgTemplate + { + get + { + return ResourceManager.GetString("RoleArgTemplate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to bin. + /// + public static string RoleBinFolderName + { + get + { + return ResourceManager.GetString("RoleBinFolderName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role {0} is {1}. + /// + public static string RoleInstanceWaitMsg + { + get + { + return ResourceManager.GetString("RoleInstanceWaitMsg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 20. + /// + public static string RoleMaxInstances + { + get + { + return ResourceManager.GetString("RoleMaxInstances", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to role name. + /// + public static string RoleName + { + get + { + return ResourceManager.GetString("RoleName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided role name {0} doesn't exist. + /// + public static string RoleNotFoundMessage + { + get + { + return ResourceManager.GetString("RoleNotFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RoleSettings.xml. + /// + public static string RoleSettingsTemplateFileName + { + get + { + return ResourceManager.GetString("RoleSettingsTemplateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role type {0} doesn't exist. + /// + public static string RoleTypeDoesNotExist + { + get + { + return ResourceManager.GetString("RoleTypeDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to public static Dictionary<string, Location> ReverseLocations { get; private set; }. + /// + public static string RuntimeDeploymentLocationError + { + get + { + return ResourceManager.GetString("RuntimeDeploymentLocationError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Preparing runtime deployment for service '{0}'. + /// + public static string RuntimeDeploymentStart + { + get + { + return ResourceManager.GetString("RuntimeDeploymentStart", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WARNING Runtime Mismatch: Are you sure that you want to publish service '{0}' using an Azure runtime version that does not match your local runtime version?. + /// + public static string RuntimeMismatchWarning + { + get + { + return ResourceManager.GetString("RuntimeMismatchWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RUNTIMEOVERRIDEURL. + /// + public static string RuntimeOverrideKey + { + get + { + return ResourceManager.GetString("RuntimeOverrideKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /runtimemanifest/runtimes/runtime. + /// + public static string RuntimeQuery + { + get + { + return ResourceManager.GetString("RuntimeQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RUNTIMEID. + /// + public static string RuntimeTypeKey + { + get + { + return ResourceManager.GetString("RuntimeTypeKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RUNTIMEURL. + /// + public static string RuntimeUrlKey + { + get + { + return ResourceManager.GetString("RuntimeUrlKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RUNTIMEVERSIONPRIMARYKEY. + /// + public static string RuntimeVersionPrimaryKey + { + get + { + return ResourceManager.GetString("RuntimeVersionPrimaryKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to scaffold.xml. + /// + public static string ScaffoldXml + { + get + { + return ResourceManager.GetString("ScaffoldXml", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid location entered. Pick one of the locations from Get-AzureSchedulerLocation. + /// + public static string SchedulerInvalidLocation + { + get + { + return ResourceManager.GetString("SchedulerInvalidLocation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A value for the Secondary Peer Subnet has to be provided.. + /// + public static string SecondaryPeerSubnetRequired + { + get + { + return ResourceManager.GetString("SecondaryPeerSubnetRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service {0} already exists on disk in location {1}. + /// + public static string ServiceAlreadyExistsOnDisk + { + get + { + return ResourceManager.GetString("ServiceAlreadyExistsOnDisk", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No ServiceBus authorization rule with the given characteristics was found. + /// + public static string ServiceBusAuthorizationRuleNotFound + { + get + { + return ResourceManager.GetString("ServiceBusAuthorizationRuleNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The service bus entity '{0}' is not found.. + /// + public static string ServiceBusEntityTypeNotFound + { + get + { + return ResourceManager.GetString("ServiceBusEntityTypeNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Internal Server Error. This could happen due to an incorrect/missing namespace. + /// + public static string ServiceBusNamespaceMissingMessage + { + get + { + return ResourceManager.GetString("ServiceBusNamespaceMissingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service configuration. + /// + public static string ServiceConfiguration + { + get + { + return ResourceManager.GetString("ServiceConfiguration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service definition. + /// + public static string ServiceDefinition + { + get + { + return ResourceManager.GetString("ServiceDefinition", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ServiceDefinition.csdef. + /// + public static string ServiceDefinitionFileName + { + get + { + return ResourceManager.GetString("ServiceDefinitionFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Deploy. + /// + public static string ServiceDeploymentName + { + get + { + return ResourceManager.GetString("ServiceDeploymentName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The specified cloud service "{0}" does not exist.. + /// + public static string ServiceDoesNotExist + { + get + { + return ResourceManager.GetString("ServiceDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} slot for service {1} is in {2} state, please wait until it finish and update it's status. + /// + public static string ServiceIsInTransitionState + { + get + { + return ResourceManager.GetString("ServiceIsInTransitionState", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to "An exception occurred when calling the ServiceManagement API. HTTP Status Code: {0}. Service Management Error Code: {1}. Message: {2}. Operation Tracking ID: {3}.". + /// + public static string ServiceManagementClientExceptionStringFormat + { + get + { + return ResourceManager.GetString("ServiceManagementClientExceptionStringFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Begin Operation: {0}. + /// + public static string ServiceManagementExecuteClientActionBeginOperation + { + get + { + return ResourceManager.GetString("ServiceManagementExecuteClientActionBeginOperation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Completed Operation: {0}. + /// + public static string ServiceManagementExecuteClientActionCompletedOperation + { + get + { + return ResourceManager.GetString("ServiceManagementExecuteClientActionCompletedOperation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Begin Operation: {0}. + /// + public static string ServiceManagementExecuteClientActionInOCSBeginOperation + { + get + { + return ResourceManager.GetString("ServiceManagementExecuteClientActionInOCSBeginOperation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Completed Operation: {0}. + /// + public static string ServiceManagementExecuteClientActionInOCSCompletedOperation + { + get + { + return ResourceManager.GetString("ServiceManagementExecuteClientActionInOCSCompletedOperation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service name. + /// + public static string ServiceName + { + get + { + return ResourceManager.GetString("ServiceName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided service name {0} already exists, please pick another name. + /// + public static string ServiceNameExists + { + get + { + return ResourceManager.GetString("ServiceNameExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please provide name for the hosted service. + /// + public static string ServiceNameMissingMessage + { + get + { + return ResourceManager.GetString("ServiceNameMissingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service parent directory. + /// + public static string ServiceParentDirectory + { + get + { + return ResourceManager.GetString("ServiceParentDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service {0} removed successfully. + /// + public static string ServiceRemovedMessage + { + get + { + return ResourceManager.GetString("ServiceRemovedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service directory. + /// + public static string ServiceRoot + { + get + { + return ResourceManager.GetString("ServiceRoot", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service settings. + /// + public static string ServiceSettings + { + get + { + return ResourceManager.GetString("ServiceSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The storage account name '{0}' is invalid. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.. + /// + public static string ServiceSettings_ValidateStorageAccountName_InvalidName + { + get + { + return ResourceManager.GetString("ServiceSettings_ValidateStorageAccountName_InvalidName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The {0} slot for cloud service {1} doesn't exist.. + /// + public static string ServiceSlotDoesNotExist + { + get + { + return ResourceManager.GetString("ServiceSlotDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} slot for service {1} is {2}. + /// + public static string ServiceStatusChanged + { + get + { + return ResourceManager.GetString("ServiceStatusChanged", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Set Add-On Confirmation. + /// + public static string SetAddOnConformation + { + get + { + return ResourceManager.GetString("SetAddOnConformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Profile {0} does not contain endpoint {1}. Adding it.. + /// + public static string SetInexistentTrafficManagerEndpointMessage + { + get + { + return ResourceManager.GetString("SetInexistentTrafficManagerEndpointMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Note - You will be charged the amount for the new plan, without being refunded for time remaining + ///in the existing plan. + ///By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis + ///for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) + ///agree to the {2}'s terms of user and privacy statement at {0} and (c) agree to sharing my + ///contact information with {2}.. + /// + public static string SetMicrosoftAddOnMessage + { + get + { + return ResourceManager.GetString("SetMicrosoftAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Note - You will be charged the amount for the new plan, without being refunded for time remaining + ///in the existing plan. + ///By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis + ///for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) + ///acknowledge the offering is provided by {2}, not Microsoft, and agree to {2}'s terms of + ///use and privacy statement at <url> and (c) agree to sharing my contact information with {2}.. + /// + public static string SetNonMicrosoftAddOnMessage + { + get + { + return ResourceManager.GetString("SetNonMicrosoftAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role {0} instances are set to {1}. + /// + public static string SetRoleInstancesMessage + { + get + { + return ResourceManager.GetString("SetRoleInstancesMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {"Slot":"","Location":"","Subscription":"","StorageAccountName":""}. + /// + public static string SettingsFileEmptyContent + { + get + { + return ResourceManager.GetString("SettingsFileEmptyContent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to deploymentSettings.json. + /// + public static string SettingsFileName + { + get + { + return ResourceManager.GetString("SettingsFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Insufficient parameters passed to create a new endpoint.. + /// + public static string SetTrafficManagerEndpointNeedsParameters + { + get + { + return ResourceManager.GetString("SetTrafficManagerEndpointNeedsParameters", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ambiguous operation: the profile name specified doesn't match the name of the profile object.. + /// + public static string SetTrafficManagerProfileAmbiguous + { + get + { + return ResourceManager.GetString("SetTrafficManagerProfileAmbiguous", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please execute the cmdlet again and include the 'Force' parameter, if available, to avoid unnecessary prompts.. + /// + public static string ShouldContinueFail + { + get + { + return ResourceManager.GetString("ShouldContinueFail", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Confirm. + /// + public static string ShouldProcessCaption + { + get + { + return ResourceManager.GetString("ShouldProcessCaption", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please execute the cmdlet again and omit the 'Confirm' parameter when using the 'AsJob' parameter.. + /// + public static string ShouldProcessFailConfirm + { + get + { + return ResourceManager.GetString("ShouldProcessFailConfirm", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please increase the user $ConfirmPreference setting, or include turn off confirmation using '-Confirm:$false' when using the 'AsJob' parameter and execute the cmdet again.. + /// + public static string ShouldProcessFailImpact + { + get + { + return ResourceManager.GetString("ShouldProcessFailImpact", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please execute the cmdlet again and omit the 'WhatIf' parameter when using the 'AsJob' parameter.. + /// + public static string ShouldProcessFailWhatIf + { + get + { + return ResourceManager.GetString("ShouldProcessFailWhatIf", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Shutdown. + /// + public static string Shutdown + { + get + { + return ResourceManager.GetString("Shutdown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /sites:{0};{1};"{2}/{0}" . + /// + public static string SitesArgTemplate + { + get + { + return ResourceManager.GetString("SitesArgTemplate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1000. + /// + public static string StandardRetryDelayInMs + { + get + { + return ResourceManager.GetString("StandardRetryDelayInMs", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Start. + /// + public static string Start + { + get + { + return ResourceManager.GetString("Start", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Started. + /// + public static string StartedEmulator + { + get + { + return ResourceManager.GetString("StartedEmulator", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Starting Emulator.... + /// + public static string StartingEmulator + { + get + { + return ResourceManager.GetString("StartingEmulator", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to start. + /// + public static string StartStorageEmulatorCommandArgument + { + get + { + return ResourceManager.GetString("StartStorageEmulatorCommandArgument", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Stop. + /// + public static string Stop + { + get + { + return ResourceManager.GetString("Stop", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Stopping emulator.... + /// + public static string StopEmulatorMessage + { + get + { + return ResourceManager.GetString("StopEmulatorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Stopped. + /// + public static string StoppedEmulatorMessage + { + get + { + return ResourceManager.GetString("StoppedEmulatorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to stop. + /// + public static string StopStorageEmulatorCommandArgument + { + get + { + return ResourceManager.GetString("StopStorageEmulatorCommandArgument", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account Name:. + /// + public static string StorageAccountName + { + get + { + return ResourceManager.GetString("StorageAccountName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find storage account '{0}' please type the name of an existing storage account.. + /// + public static string StorageAccountNotFound + { + get + { + return ResourceManager.GetString("StorageAccountNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to AzureStorageEmulator.exe. + /// + public static string StorageEmulatorExe + { + get + { + return ResourceManager.GetString("StorageEmulatorExe", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to InstallPath. + /// + public static string StorageEmulatorInstallPathRegistryKeyValue + { + get + { + return ResourceManager.GetString("StorageEmulatorInstallPathRegistryKeyValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to SOFTWARE\Microsoft\Windows Azure Storage Emulator. + /// + public static string StorageEmulatorRegistryKey + { + get + { + return ResourceManager.GetString("StorageEmulatorRegistryKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Primary Key:. + /// + public static string StoragePrimaryKey + { + get + { + return ResourceManager.GetString("StoragePrimaryKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Secondary Key:. + /// + public static string StorageSecondaryKey + { + get + { + return ResourceManager.GetString("StorageSecondaryKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription named {0} already exists.. + /// + public static string SubscriptionAlreadyExists + { + get + { + return ResourceManager.GetString("SubscriptionAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The SubscriptionDataFile parameter is deprecated. This parameter will be removed in a future release. See https://github.com/Azure/azure-powershell/wiki/Proposed-Design-Stateless-Azure-Profile for a description of the upcoming mechanism for providing alternate sources of subscription information.. + /// + public static string SubscriptionDataFileDeprecated + { + get + { + return ResourceManager.GetString("SubscriptionDataFileDeprecated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to DefaultSubscriptionData.xml. + /// + public static string SubscriptionDataFileName + { + get + { + return ResourceManager.GetString("SubscriptionDataFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription data file {0} does not exist.. + /// + public static string SubscriptionDataFileNotFound + { + get + { + return ResourceManager.GetString("SubscriptionDataFileNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription id {0} doesn't exist.. + /// + public static string SubscriptionIdNotFoundMessage + { + get + { + return ResourceManager.GetString("SubscriptionIdNotFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subscription must not be null. + /// + public static string SubscriptionMustNotBeNull + { + get + { + return ResourceManager.GetString("SubscriptionMustNotBeNull", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subscription name needs to be specified.. + /// + public static string SubscriptionNameNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("SubscriptionNameNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription name {0} doesn't exist.. + /// + public static string SubscriptionNameNotFoundMessage + { + get + { + return ResourceManager.GetString("SubscriptionNameNotFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subscription needs to be specified.. + /// + public static string SubscriptionNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("SubscriptionNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Suspend. + /// + public static string Suspend + { + get + { + return ResourceManager.GetString("Suspend", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Swapping website production slot .... + /// + public static string SwappingWebsite + { + get + { + return ResourceManager.GetString("SwappingWebsite", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to swap the website '{0}' production slot with slot '{1}'?. + /// + public static string SwapWebsiteSlotWarning + { + get + { + return ResourceManager.GetString("SwapWebsiteSlotWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The Switch-AzureMode cmdlet is deprecated and will be removed in a future release.. + /// + public static string SwitchAzureModeDeprecated + { + get + { + return ResourceManager.GetString("SwitchAzureModeDeprecated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Starting cmdlet execution, setting for cmdlet confirmation required: '{0}'. + /// + public static string TraceBeginLROJob + { + get + { + return ResourceManager.GetString("TraceBeginLROJob", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Blocking job for ShouldMethod '{0}'. + /// + public static string TraceBlockLROThread + { + get + { + return ResourceManager.GetString("TraceBlockLROThread", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Completing cmdlet execution in RunJob. + /// + public static string TraceEndLROJob + { + get + { + return ResourceManager.GetString("TraceEndLROJob", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: State change from '{0}' to '{1}' because '{2}'. + /// + public static string TraceHandleLROStateChange + { + get + { + return ResourceManager.GetString("TraceHandleLROStateChange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Unblocking job due to stoppage or failure. + /// + public static string TraceHandlerCancelJob + { + get + { + return ResourceManager.GetString("TraceHandlerCancelJob", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Unblocking job that was previously blocked.. + /// + public static string TraceHandlerUnblockJob + { + get + { + return ResourceManager.GetString("TraceHandlerUnblockJob", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Error in cmdlet execution. + /// + public static string TraceLROJobException + { + get + { + return ResourceManager.GetString("TraceLROJobException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Removing state changed event handler, exception '{0}'. + /// + public static string TraceRemoveLROEventHandler + { + get + { + return ResourceManager.GetString("TraceRemoveLROEventHandler", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: ShouldMethod '{0}' unblocked.. + /// + public static string TraceUnblockLROThread + { + get + { + return ResourceManager.GetString("TraceUnblockLROThread", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to decode string from base 64. Please make sure the string is correctly encoded: {0}.. + /// + public static string UnableToDecodeBase64String + { + get + { + return ResourceManager.GetString("UnableToDecodeBase64String", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to update mismatching Json structured: {0} {1}.. + /// + public static string UnableToPatchJson + { + get + { + return ResourceManager.GetString("UnableToPatchJson", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provider {0} is unknown.. + /// + public static string UnknownProviderMessage + { + get + { + return ResourceManager.GetString("UnknownProviderMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Update. + /// + public static string Update + { + get + { + return ResourceManager.GetString("Update", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Updated settings for subscription '{0}'. Current subscription is '{1}'.. + /// + public static string UpdatedSettings + { + get + { + return ResourceManager.GetString("UpdatedSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to User name is not valid.. + /// + public static string UserNameIsNotValid + { + get + { + return ResourceManager.GetString("UserNameIsNotValid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to User name needs to be specified.. + /// + public static string UserNameNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("UserNameNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A value for the VLan Id has to be provided.. + /// + public static string VlanIdRequired + { + get + { + return ResourceManager.GetString("VlanIdRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please wait.... + /// + public static string WaitMessage + { + get + { + return ResourceManager.GetString("WaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The azure storage emulator is not installed, skip launching.... + /// + public static string WarningWhenStorageEmulatorIsMissing + { + get + { + return ResourceManager.GetString("WarningWhenStorageEmulatorIsMissing", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Web.cloud.config. + /// + public static string WebCloudConfig + { + get + { + return ResourceManager.GetString("WebCloudConfig", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to web.config. + /// + public static string WebConfigTemplateFileName + { + get + { + return ResourceManager.GetString("WebConfigTemplateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to MSDeploy. + /// + public static string WebDeployKeywordInWebSitePublishProfile + { + get + { + return ResourceManager.GetString("WebDeployKeywordInWebSitePublishProfile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot build the project successfully. Please see logs in {0}.. + /// + public static string WebProjectBuildFailTemplate + { + get + { + return ResourceManager.GetString("WebProjectBuildFailTemplate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WebRole. + /// + public static string WebRole + { + get + { + return ResourceManager.GetString("WebRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to setup_web.cmd > log.txt. + /// + public static string WebRoleStartupTaskCommandLine + { + get + { + return ResourceManager.GetString("WebRoleStartupTaskCommandLine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WebRole.xml. + /// + public static string WebRoleTemplateFileName + { + get + { + return ResourceManager.GetString("WebRoleTemplateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WebSite with given name {0} already exists in the specified Subscription and Webspace.. + /// + public static string WebsiteAlreadyExists + { + get + { + return ResourceManager.GetString("WebsiteAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WebSite with given name {0} already exists in the specified Subscription and Location.. + /// + public static string WebsiteAlreadyExistsReplacement + { + get + { + return ResourceManager.GetString("WebsiteAlreadyExistsReplacement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Site {0} already has repository created for it.. + /// + public static string WebsiteRepositoryAlreadyExists + { + get + { + return ResourceManager.GetString("WebsiteRepositoryAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Workspaces/WebsiteExtension/Website/{0}/dashboard/. + /// + public static string WebsiteSufixUrl + { + get + { + return ResourceManager.GetString("WebsiteSufixUrl", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to https://{0}/msdeploy.axd?site={1}. + /// + public static string WebSiteWebDeployUriTemplate + { + get + { + return ResourceManager.GetString("WebSiteWebDeployUriTemplate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WorkerRole. + /// + public static string WorkerRole + { + get + { + return ResourceManager.GetString("WorkerRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to setup_worker.cmd > log.txt. + /// + public static string WorkerRoleStartupTaskCommandLine + { + get + { + return ResourceManager.GetString("WorkerRoleStartupTaskCommandLine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WorkerRole.xml. + /// + public static string WorkerRoleTemplateFileName + { + get + { + return ResourceManager.GetString("WorkerRoleTemplateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to (x86). + /// + public static string x86InProgramFiles + { + get + { + return ResourceManager.GetString("x86InProgramFiles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Yes. + /// + public static string Yes + { + get + { + return ResourceManager.GetString("Yes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Yes, I agree. + /// + public static string YesHint + { + get + { + return ResourceManager.GetString("YesHint", resourceCulture); + } + } + } +} diff --git a/swaggerci/app/generated/runtime/Properties/Resources.resx b/swaggerci/app/generated/runtime/Properties/Resources.resx new file mode 100644 index 000000000000..598cd53e958a --- /dev/null +++ b/swaggerci/app/generated/runtime/Properties/Resources.resx @@ -0,0 +1,1741 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The remote server returned an error: (401) Unauthorized. + + + Account "{0}" has been added. + + + To switch to a different subscription, please use Select-AzureSubscription. + + + Subscription "{0}" is selected as the default subscription. + + + To view all the subscriptions, please use Get-AzureSubscription. + + + Add-On {0} is created successfully. + + + Add-on name {0} is already used. + + + Add-On {0} not found. + + + Add-on {0} is removed successfully. + + + Add-On {0} is updated successfully. + + + Role has been created at {0}\{1}. + + + Role has been created at {0}\{1}. For easy access to Microsoft Azure services from your application code, install the Microsoft Azure client library for Node.js by running ‘npm install azure’. + + + Role has been created at {0}\{1}. For easy access to Microsoft Azure services from your application code, install the Microsoft Azure client library for PHP by running "pear WindowsAzure/WindowsAzure". + + + Unable to set role permissions. Please give the 'Network Service' user 'Read & execute' and 'Modify' permissions to the role folder, or run PowerShell as an Administrator + + + A role name '{0}' already exists + + + Windows Azure Powershell\ + + + https://manage.windowsazure.com + + + AZURE_PORTAL_URL + + + Azure SDK\{0}\ + + + Base Uri was empty. + WAPackIaaS + + + {0} begin processing without ParameterSet. + + + {0} begin processing with ParameterSet '{1}'. + + + Blob with the name {0} already exists in the account. + + + https://{0}.blob.core.windows.net/ + + + AZURE_BLOBSTORAGE_TEMPLATE + + + CACHERUNTIMEURL + + + cache + + + CacheRuntimeVersion + + + Installing caching version {0} for Role '{1}' (the caching version locally installed is: {2}) + + + Cannot find {0} with name {1}. + + + Deployment for service {0} with {1} slot doesn't exist + + + Can't find valid Microsoft Azure role in current directory {0} + + + service {0} configuration file (ServiceConfiguration.Cloud.cscfg) is either null or doesn't exist + + + Invalid service path! Cannot locate ServiceDefinition.csdef in current folder or parent folders. + + + The subscription named {0} with id {1} is not currently imported. You must import this subscription before it can be updated. + + + ManagementCertificate + + + certificate.pfx + + + Certificate imported into CurrentUser\My\{0} + + + Your account does not have access to the private key for certificate {0} + + + {0} {1} deployment for {2} service + + + Cloud service {0} is in {1} state. + + + Changing/Removing public environment '{0}' is not allowed. + + + Service {0} is set to value {1} + + + Choose which publish settings file to use: + + + Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel + + + 1 + + + cloud_package.cspkg + + + ServiceConfiguration.Cloud.cscfg + + + Add-ons for {0} + + + Communication could not be established. This could be due to an invalid subscription ID. Note that subscription IDs are case sensitive. + + + Complete + + + config.json + + + VirtualMachine creation failed. + WAPackIaaS + + + Creating the website failed. If this is the first website for this subscription, please create it using the management portal instead. + + + Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core + + + //blobcontainer[@datacenter='{0}'] + + + Setting: {0} as the default and current subscription. To view other subscriptions use Get-AzureSubscription + + + none + + + There are no hostnames which could be used for validation. + + + 8080 + + + 1000 + + + Auto + + + 80 + + + Delete + WAPackIaaS + + + The {0} slot for service {1} is already in {2} state + + + The deployment in {0} slot for service {1} is removed + + + Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel + + + 1 + + + The key to add already exists in the dictionary. + + + The array index cannot be less than zero. + + + The supplied array does not have enough room to contain the copied elements. + + + The provided dns {0} doesn't exist + + + Microsoft Azure Certificate + + + Endpoint can't be retrieved for storage account + + + {0} end processing. + + + To use Active Directory authentication, you must configure the ActiveDirectoryEndpoint, ActiveDirectoryTenantId, and ActiveDirectorServiceEndpointResourceId for environment of '{0}'. You can configure these properties for this environment using the Set-AzureEnvironment cmdlet. + + + The environment '{0}' already exists. + + + environments.xml + + + Error creating VirtualMachine + WAPackIaaS + + + Unable to download available runtimes for location '{0}' + + + Error updating VirtualMachine + WAPackIaaS + + + Job Id {0} failed. Error: {1}, ExceptionDetails: {2} + WAPackIaaS + + + The HTTP request was forbidden with client authentication scheme 'Anonymous'. + + + This add-on requires you to purchase the first instance through the Microsoft Azure Portal. Subsequent purchases can be performed through PowerShell. + + + Operation Status: + + + Resources\Scaffolding\General + + + Getting all available Microsoft Azure Add-Ons, this may take few minutes... + + + Name{0}Primary Key{0}Seconday Key + + + Git not found. Please install git and place it in your command line path. + + + Could not find publish settings. Please run Import-AzurePublishSettingsFile. + + + iisnode.dll + + + iisnode + + + iisnode-dev\\release\\x64 + + + iisnode + + + Installing IISNode version {0} in Azure for WebRole '{1}' (the version locally installed is: {2}) + + + Internal Server Error + + + Cannot enable memcach protocol on a cache worker role {0}. + + + Invalid certificate format. + + + The provided configuration path is invalid or doesn't exist + + + The country name is invalid, please use a valid two character country code, as described in ISO 3166-1 alpha-2. + + + Deployment with {0} does not exist + + + The deployment slot name {0} is invalid. Slot name must be either "Staging" or "Production". + + + Invalid service endpoint. + + + File {0} has invalid characters + + + You must create your git publishing credentials using the Microsoft Azure portal. +Please follow these steps in the portal: +1. On the left side open "Web Sites" +2. Click on any website +3. Choose "Setup Git Publishing" or "Reset deployment credentials" +4. Back in the PowerShell window, rerun this command by typing "New-AzureWebSite {site name} -Git -PublishingUsername {username} + + + The value {0} provided is not a valid GUID. Please provide a valid GUID. + + + The specified hostname does not exist. Please specify a valid hostname for the site. + + + Role {0} instances must be greater than or equal 0 and less than or equal 20 + + + There was an error creating your webjob. Please make sure that the script is in the root folder of the zip file. + + + Could not download a valid runtime manifest, Please check your internet connection and try again. + + + The account {0} was not found. Please specify a valid account name. + + + The provided name "{0}" does not match the service bus namespace naming rules. + + + Value cannot be null. Parameter name: '{0}' + + + The provided package path is invalid or doesn't exist + + + '{0}' is an invalid parameter set name. + + + {0} doesn't exist in {1} or you've not passed valid value for it + + + Path {0} has invalid characters + + + The provided publish settings file {0} has invalid content. Please get valid by running cmdlet Get-AzurePublishSettingsFile + + + The provided role name "{0}" has invalid characters + + + A valid name for the service root folder is required + + + {0} is not a recognized runtime type + + + A valid language is required + + + No subscription is currently selected. Use Select-Subscription to activate a subscription. + + + The provided location "{0}" does not exist in the available locations use Get-AzureSBLocation for listing available locations. + + + Please provide a service name or run this command from inside a service project directory. + + + You must provide valid value for {0} + + + settings.json is invalid or doesn't exist + + + The subscription named '{0}' cannot be found. Use Set-AzureSubscription to initialize the subscription data. + + + The provided subscription id {0} is not valid + + + A valid subscription name is required. This can be provided using the -Subscription parameter or by setting the subscription via the Set-AzureSubscription cmdlet + + + The provided subscriptions file {0} has invalid content. + + + Role {0} VM size should be ExtraSmall, Small, Medium, Large or ExtraLarge. + + + The web job file must have *.zip extension + + + Singleton option works for continuous jobs only. + + + The website {0} was not found. Please specify a valid website name. + + + No job for id: {0} was found. + WAPackIaaS + + + engines + + + Scaffolding for this language is not yet supported + + + Link already established + + + local_package.csx + + + ServiceConfiguration.Local.cscfg + + + Looking for {0} deployment for {1} cloud service... + + + Looking for cloud service {0}... + + + managementCertificate.pem + + + ?whr={0} + + + //baseuri + + + uri + + + http://az413943.vo.msecnd.net/node/runtimemanifest_0.7.5.2.xml + + + Multiple Add-Ons found holding name {0} + + + Multiple possible publishing users. Please go to the Portal and use the listed deployment user, or click 'set/reset deployment credentials' to set up a new user account, then reurn this cmdlet and specify PublishingUsername. + + + The first publish settings file "{0}" is used. If you want to use another file specify the file name. + + + Microsoft.WindowsAzure.Plugins.Caching.NamedCaches + + + {"caches":[{"name":"default","policy":{"eviction":{"type":0},"expiration":{"defaultTTL":10,"isExpirable":true,"type":1},"serverNotification":{"isEnabled":false}},"secondaries":0}]} + + + A publishing username is required. Please specify one using the argument PublishingUsername. + + + New Add-On Confirmation + + + By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis +for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) +agree to the {2}'s terms of user and privacy statement at {0} and (c) agree to sharing my +contact information with {2}. + + + Internal Server Error. This could happen because the namespace name is already used or due to an incorrect location name. Use Get-AzureSBLocation cmdlet to list valid names. + + + By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis +for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) +acknowledge the offering is provided by {2}, not Microsoft, and agree to {2}'s terms of +use and privacy statement at {0} and (c) agree to sharing my contact information with {2}. + + + Service has been created at {0} + + + No + + + There is no access token cached for subscription {0}, user id {1}. Use the Add-AzureAccount cmdlet to log in again and get a token for this subscription. + + + The service does not have any cache worker roles, add one first by running cmdlet Add-AzureCacheWorkerRole. + + + No clouds available + WAPackIaaS + + + nodejs + + + node + + + node.exe + + + There is no default subscription set, please set a default subscription by running Set-AzureSubscription -Default <subscription name> + + + Microsoft SDKs\Azure\Nodejs\Nov2011 + + + nodejs + + + node + + + Resources\Scaffolding\Node + + + Microsoft.WindowsAzure.Commands.CloudService.ScaffoldingResources.Node + + + Installing Node version {0} in Azure for Role '{1}' (the Node version locally installed is: {2}) + + + No, I do not agree + + + No publish settings files with extension *.publishsettings are found in the directory "{0}". + + + '{0}' must be a cache worker role. Verify that it has proper cache worker role configuration. + + + Certificate can't be null. + + + {0} could not be null or empty + + + Unable to add a null RoleSettings to {0} + + + Unable to add new role to null service definition + + + The request offer '{0}' is not found. + + + Operation "{0}" failed on VM with ID: {1} + WAPackIaaS + + + The REST operation failed with message '{0}' and error code '{1}' + + + Job Id {0} did not complete within expected time or it is in Failed/Canceled/Invalid state. + WAPackIaaS + + + package + + + Package is created at service root path {0}. + + + {{ + "author": "", + + "name": "{0}", + "version": "0.0.0", + "dependencies":{{}}, + "devDependencies":{{}}, + "optionalDependencies": {{}}, + "engines": {{ + "node": "*", + "iisnode": "*" + }} + +}} + + + + package.json + + + A value for the Peer Asn has to be provided. + + + 5.4.0 + + + php + + + Resources\Scaffolding\PHP + + + Microsoft.WindowsAzure.Commands.CloudService.ScaffoldingResources.PHP + + + Installing PHP version {0} for Role '{1}' (the PHP version locally installed is: {2}) + + + You must create your first web site using the Microsoft Azure portal. +Please follow these steps in the portal: +1. At the bottom of the page, click on New > Web Site > Quick Create +2. Type {0} in the URL field +3. Click on "Create Web Site" +4. Once the site has been created, click on the site name +5. Click on "Set up Git publishing" or "Reset deployment credentials" and setup a publishing username and password. Use those credentials for all new websites you create. + + + 6. Back in the console window, rerun this command by typing "New-AzureWebsite <site name> -Git" + + + A value for the Primary Peer Subnet has to be provided. + + + Promotion code can be used only when updating to a new plan. + + + Service not published at user request. + + + Complete. + + + Connecting... + + + Created Deployment ID: {0}. + + + Created hosted service '{0}'. + + + Created Website URL: {0}. + + + Creating... + + + Initializing... + + + busy + + + creating the virtual machine + + + Instance {0} of role {1} is {2}. + + + ready + + + Preparing deployment for {0} with Subscription ID: {1}... + + + Publishing {0} to Microsoft Azure. This may take several minutes... + + + publish settings + + + Azure + + + .PublishSettings + + + publishSettings.xml + + + Publish settings imported + + + AZURE_PUBLISHINGPROFILE_URL + + + Starting... + + + Upgrading... + + + Uploading Package to storage service {0}... + + + Verifying storage account '{0}'... + + + Replace current deployment with '{0}' Id ? + + + Are you sure you want to regenerate key? + + + Generate new key. + + + Are you sure you want to remove account '{0}'? + + + Removing account + + + Remove Add-On Confirmation + + + If you delete this add-on, your data may be deleted and the operation may not be undone. You may have to purchase it again from the Microsoft Azure Store to use it. The price of the add-on may not be refunded. Are you sure you want to delete this add-on? Enter “Yes” to confirm. + + + Remove-AzureBGPPeering Operation failed. + + + Removing Bgp Peering + + + Successfully removed Azure Bgp Peering with Service Key {0}. + + + Are you sure you want to remove the Bgp Peering with service key '{0}'? + + + Are you sure you want to remove the Dedicated Circuit with service key '{0}'? + + + Remove-AzureDedicatedCircuit Operation failed. + + + Remove-AzureDedicatedCircuitLink Operation failed. + + + Removing Dedicated Circui Link + + + Successfully removed Azure Dedicated Circuit Link with Service Key {0} and Vnet Name {1} + + + Are you sure you want to remove the Dedicated Circuit Link with service key '{0}' and virtual network name '{1}'? + + + Removing Dedicated Circuit + + + Successfully removed Azure Dedicated Circuit with Service Key {0}. + + + Removing cloud service {0}... + + + Removing {0} deployment for {1} service + + + Removing job collection + + + Are you sure you want to remove the job collection "{0}" + + + Removing job + + + Are you sure you want to remove the job "{0}" + + + Are you sure you want to remove the account? + + + Account removed. + + + Internal Server Error. This could happen because the namespace does not exist or it does not exist under your subscription. + + + Removing old package {0}... + + + Are you sure you want to delete the namespace '{0}'? + + + Are you sure you want to remove cloud service? + + + Remove cloud service and all it's deployments + + + Are you sure you want to remove subscription '{0}'? + + + Removing subscription + + + Are you sure you want to delete the VM '{0}'? + + + Deleting VM. + + + Removing WebJob... + + + Are you sure you want to remove job '{0}'? + + + Removing website + + + Are you sure you want to remove the website "{0}" + + + Deleting namespace + + + Repository is not setup. You need to pass a valid site name. + + + Reserved IP with the Name:'{0}' will no longer be in use after the deployment is deleted, and it is still reserved for later use. + + + Resource with ID : {0} does not exist. + WAPackIaaS + + + Restart + WAPackIaaS + + + Resume + WAPackIaaS + + + /role:{0};"{1}/{0}" + + + bin + + + Role {0} is {1} + + + 20 + + + role name + + + The provided role name {0} doesn't exist + + + RoleSettings.xml + + + Role type {0} doesn't exist + + + public static Dictionary<string, Location> ReverseLocations { get; private set; } + + + Preparing runtime deployment for service '{0}' + + + WARNING Runtime Mismatch: Are you sure that you want to publish service '{0}' using an Azure runtime version that does not match your local runtime version? + + + RUNTIMEOVERRIDEURL + + + /runtimemanifest/runtimes/runtime + + + RUNTIMEID + + + RUNTIMEURL + + + RUNTIMEVERSIONPRIMARYKEY + + + scaffold.xml + + + Invalid location entered. Pick one of the locations from Get-AzureSchedulerLocation + + + A value for the Secondary Peer Subnet has to be provided. + + + Service {0} already exists on disk in location {1} + + + No ServiceBus authorization rule with the given characteristics was found + + + The service bus entity '{0}' is not found. + + + Internal Server Error. This could happen due to an incorrect/missing namespace + + + service configuration + + + service definition + + + ServiceDefinition.csdef + + + {0}Deploy + + + The specified cloud service "{0}" does not exist. + + + {0} slot for service {1} is in {2} state, please wait until it finish and update it's status + + + Begin Operation: {0} + + + Completed Operation: {0} + + + Begin Operation: {0} + + + Completed Operation: {0} + + + service name + + + Please provide name for the hosted service + + + service parent directory + + + Service {0} removed successfully + + + service directory + + + service settings + + + The storage account name '{0}' is invalid. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. + + + The {0} slot for cloud service {1} doesn't exist. + + + {0} slot for service {1} is {2} + + + Set Add-On Confirmation + + + Note - You will be charged the amount for the new plan, without being refunded for time remaining +in the existing plan. +By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis +for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) +agree to the {2}'s terms of user and privacy statement at {0} and (c) agree to sharing my +contact information with {2}. + + + Note - You will be charged the amount for the new plan, without being refunded for time remaining +in the existing plan. +By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis +for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) +acknowledge the offering is provided by {2}, not Microsoft, and agree to {2}'s terms of +use and privacy statement at <url> and (c) agree to sharing my contact information with {2}. + + + Role {0} instances are set to {1} + + + {"Slot":"","Location":"","Subscription":"","StorageAccountName":""} + + + deploymentSettings.json + + + Confirm + + + Shutdown + WAPackIaaS + + + /sites:{0};{1};"{2}/{0}" + + + 1000 + + + Start + WAPackIaaS + + + Started + + + Starting Emulator... + + + start + + + Stop + WAPackIaaS + + + Stopping emulator... + + + Stopped + + + stop + + + Account Name: + + + Cannot find storage account '{0}' please type the name of an existing storage account. + + + AzureStorageEmulator.exe + + + InstallPath + + + SOFTWARE\Microsoft\Windows Azure Storage Emulator + + + Primary Key: + + + Secondary Key: + + + The subscription named {0} already exists. + + + DefaultSubscriptionData.xml + + + The subscription data file {0} does not exist. + + + Subscription must not be null + WAPackIaaS + + + Suspend + WAPackIaaS + + + Swapping website production slot ... + + + Are you sure you want to swap the website '{0}' production slot with slot '{1}'? + + + The provider {0} is unknown. + + + Update + WAPackIaaS + + + Updated settings for subscription '{0}'. Current subscription is '{1}'. + + + A value for the VLan Id has to be provided. + + + Please wait... + + + The azure storage emulator is not installed, skip launching... + + + Web.cloud.config + + + web.config + + + MSDeploy + + + Cannot build the project successfully. Please see logs in {0}. + + + WebRole + + + setup_web.cmd > log.txt + + + WebRole.xml + + + WebSite with given name {0} already exists in the specified Subscription and Webspace. + + + WebSite with given name {0} already exists in the specified Subscription and Location. + + + Site {0} already has repository created for it. + + + Workspaces/WebsiteExtension/Website/{0}/dashboard/ + + + https://{0}/msdeploy.axd?site={1} + + + WorkerRole + + + setup_worker.cmd > log.txt + + + WorkerRole.xml + + + Yes + + + Yes, I agree + + + Remove-AzureTrafficManagerProfile Operation failed. + + + Successfully removed Traffic Manager profile with name {0}. + + + Are you sure you want to remove the Traffic Manager profile "{0}"? + + + Profile {0} already has an endpoint with name {1} + + + Profile {0} does not contain endpoint {1}. Adding it. + + + The endpoint {0} cannot be removed from profile {1} because it's not in the profile. + + + Insufficient parameters passed to create a new endpoint. + + + Ambiguous operation: the profile name specified doesn't match the name of the profile object. + + + <NONE> + + + "An exception occurred when calling the ServiceManagement API. HTTP Status Code: {0}. Service Management Error Code: {1}. Message: {2}. Operation Tracking ID: {3}." + {0} is the HTTP status code. {1} is the Service Management Error Code. {2} is the Service Management Error message. {3} is the operation tracking ID. + + + Unable to decode string from base 64. Please make sure the string is correctly encoded: {0}. + {0} is the string that is not in a valid base 64 format. + + + Skipping external tenant {0}, because you are using a guest or a foreign principal object identity. In order to access this tenant, please run Add-AzureAccount without "-Credential". + + + Removing an environment will remove all associated subscriptions and accounts. Are you sure you want to remove an environment '{0}'? + + + Removing environment + + + There is no subscription associated with account {0}. + + + Account id doesn't match one in subscription. + + + Environment name doesn't match one in subscription. + + + Removing the Azure profile will remove all associated environments, subscriptions, and accounts. Are you sure you want to remove the Azure profile? + + + Removing the Azure profile + + + The SubscriptionDataFile parameter is deprecated. This parameter will be removed in a future release. See https://github.com/Azure/azure-powershell/wiki/Proposed-Design-Stateless-Azure-Profile for a description of the upcoming mechanism for providing alternate sources of subscription information. + + + Account needs to be specified + + + No default subscription has been designated. Use Select-AzureSubscription -Default <subscriptionName> to set the default subscription. + + + Path must specify a valid path to an Azure profile. + + + Property bag Hashtable must contain one of the following sets of properties: {SubscriptionId, Certificate}, {SubscriptionId, Username, Password}, {SubscriptionId, ServicePrincipal, Password, Tenant}, {SubscriptionId, AccountId, Token} + + + Property bag Hashtable must contain a 'Certificate' of type 'X509Certificate2'. + + + Property bag Hashtable must contain a 'Password' with an associated 'Username' or 'ServicePrincipal'. + + + Property bag Hashtable must contain a 'SubscriptionId'. + + + Selected profile must not be null. + + + The Switch-AzureMode cmdlet is deprecated and will be removed in a future release. + + + OperationID : '{0}' + + + Cannot get module for DscResource '{0}'. Possible solutions: +1) Specify -ModuleName for Import-DscResource in your configuration. +2) Unblock module that contains resource. +3) Move Import-DscResource inside Node block. + + 0 = name of DscResource + + + Your current PowerShell version {1} is less then required by this cmdlet {0}. Consider download and install latest PowerShell version. + {0} = minimal required PS version, {1} = current PS version + + + Parsing configuration script: {0} + {0} is the path to a script file + + + Configuration script '{0}' contained parse errors: +{1} + 0 = path to the configuration script, 1 = parser errors + + + List of required modules: [{0}]. + {0} = list of modules + + + Temp folder '{0}' created. + {0} = temp folder path + + + Copy '{0}' to '{1}'. + {0} = source, {1} = destination + + + Copy the module '{0}' to '{1}'. + {0} = source, {1} = destination + + + File '{0}' already exists. Use the -Force parameter to overwrite it. + {0} is the path to a file + + + Configuration file '{0}' not found. + 0 = path to the configuration file + + + Path '{0}' not found. + 0 = path to the additional content file/directory + + + Path '{0}' not found. + 0 = path to the additional content file/directory + + + Invalid configuration file: {0}. +The file needs to be a PowerShell script (.ps1 or .psm1) or a ZIP archive (.zip). + 0 = path to the configuration file + + + Invalid configuration file: {0}. +The file needs to be a PowerShell script (.ps1 or .psm1). + 0 = path to the configuration file + + + Create Archive + + + Upload '{0}' + {0} is the name of an storage blob + + + Storage Blob '{0}' already exists. Use the -Force parameter to overwrite it. + {0} is the name of an storage blob + + + Configuration published to {0} + {0} is an URI + + + Deleted '{0}' + {0} is the path of a file + + + Cannot delete '{0}': {1} + {0} is the path of a file, {1} is an error message + + + Cannot find the WadCfg end element in the config. + + + WadCfg start element in the config is not matching the end element. + + + Cannot find the WadCfg element in the config. + + + Cannot find configuration data file: {0} + + + The configuration data must be a .psd1 file + + + Cannot change built-in environment {0}. + + + Azure PowerShell collects usage data in order to improve your experience. +The data is anonymous and does not include commandline argument values. +The data is collected by Microsoft. + +Use the Disable-AzDataCollection cmdlet to turn the feature Off. The cmdlet can be found in the Az.Accounts module. To disable data collection: PS > Disable-AzDataCollection. +Use the Enable-AzDataCollection cmdlet to turn the feature On. The cmdlet can be found in the Az.Accounts module. To enable data collection: PS > Enable-AzDataCollection. + + + Microsoft Azure PowerShell Data Collection Confirmation + + + You choose not to participate in Microsoft Azure PowerShell data collection. + + + This confirmation message will be dismissed in '{0}' second(s)... + + + You choose to participate in Microsoft Azure PowerShell data collection. + + + The setting profile has been saved to the following path '{0}'. + + + [Common.Authentication]: Authenticating for account {0} with single tenant {1}. + + + Changing public environment is not supported. + + + Environment name needs to be specified. + + + Environment needs to be specified. + + + The environment name '{0}' is not found. + + + File path is not valid. + + + Must specify a non-null subscription name. + + + The default subscription is being removed. Use Select-AzureSubscription -Default <subscriptionName> to select a new default subscription. + + + Removing public environment is not supported. + + + The subscription id {0} doesn't exist. + + + Subscription name needs to be specified. + + + The subscription name {0} doesn't exist. + + + Subscription needs to be specified. + + + User name is not valid. + + + User name needs to be specified. + + + "There is no current context, please log in using Connect-AzAccount." + + + No subscriptions are associated with the logged in account in Azure Service Management (RDFE). This means that the logged in user is not an administrator or co-administrator for any account.\r\nDid you mean to execute Connect-AzAccount? + + + No certificate was found in the certificate store with thumbprint {0} + + + Illegal characters in path. + + + Invalid certificate format. Publish settings may be corrupted. Use Get-AzurePublishSettingsFile to download updated settings + + + "{0}" is an invalid DNS name for {1} + + + The provided file in {0} must be have {1} extension + + + {0} is invalid or empty + + + Please connect to internet before executing this cmdlet + + + Path {0} doesn't exist. + + + Path for {0} doesn't exist in {1}. + + + &whr={0} + + + The provided service name {0} already exists, please pick another name + + + Unable to update mismatching Json structured: {0} {1}. + + + (x86) + + + Azure PowerShell collects usage data in order to improve your experience. +The data is anonymous and does not include commandline argument values. +The data is collected by Microsoft. + +Use the Disable-AzureDataCollection cmdlet to turn the feature Off. The cmdlet can be found in the Azure module. To disable data collection: PS > Disable-AzureDataCollection. +Use the Enable-AzureDataCollection cmdlet to turn the feature On. The cmdlet can be found in the Azure module. To enable data collection: PS > Enable-AzureDataCollection. + + + Execution failed because a background thread could not prompt the user. + + + Azure Long-Running Job + + + The cmdlet failed in background execution. The returned error was '{0}'. Please execute the cmdlet again. You may need to execute this cmdlet synchronously, by omitting the '-AsJob' parameter. + 0(string): exception message in background task + + + Please execute the cmdlet again and include the 'Force' parameter, if available, to avoid unnecessary prompts. + + + Please execute the cmdlet again and omit the 'Confirm' parameter when using the 'AsJob' parameter. + + + Please increase the user $ConfirmPreference setting, or include turn off confirmation using '-Confirm:$false' when using the 'AsJob' parameter and execute the cmdet again. + + + Please execute the cmdlet again and omit the 'WhatIf' parameter when using the 'AsJob' parameter. + + + [AzureLongRunningJob]: Starting cmdlet execution, setting for cmdlet confirmation required: '{0}' + 0(bool): whether cmdlet confirmation is required + + + [AzureLongRunningJob]: Blocking job for ShouldMethod '{0}' + 0(string): method type + + + [AzureLongRunningJob]: Completing cmdlet execution in RunJob + + + [AzureLongRunningJob]: State change from '{0}' to '{1}' because '{2}' + 0(string): last state, 1(string): new state, 2(string): state change reason + + + [AzureLongRunningJob]: Unblocking job due to stoppage or failure + + + [AzureLongRunningJob]: Unblocking job that was previously blocked. + + + [AzureLongRunningJob]: Error in cmdlet execution + + + [AzureLongRunningJob]: Removing state changed event handler, exception '{0}' + 0(string): exception message + + + [AzureLongRunningJob]: ShouldMethod '{0}' unblocked. + 0(string): methodType + + + +- The parameter : '{0}' is changing. + + + +- The parameter : '{0}' is becoming mandatory. + + + +- The parameter : '{0}' is being replaced by parameter : '{1}'. + + + +- The parameter : '{0}' is being replaced by mandatory parameter : '{1}'. + + + +- Change description : {0} + + + The cmdlet is being deprecated. There will be no replacement for it. + + + The cmdlet parameter set is being deprecated. There will be no replacement for it. + + + The cmdlet '{0}' is replacing this cmdlet. + + + +- The output type is changing from the existing type :'{0}' to the new type :'{1}' + + + +- The output type '{0}' is changing + + + +- The following properties are being added to the output type : + + + +- The following properties in the output type are being deprecated : + + + {0} + + + +- Cmdlet : '{0}' + - {1} + + + Upcoming breaking changes in the cmdlet '{0}' : + + + +- This change will take effect on '{0}' + + + +- The change is expected to take effect from the version : '{0}' + + + ```powershell +# Old +{0} + +# New +{1} +``` + + + + +Cmdlet invocation changes : + Old Way : {0} + New Way : {1} + + + +The output type '{0}' is being deprecated without a replacement. + + + +The type of the parameter is changing from '{0}' to '{1}'. + + + +Note : Go to {0} for steps to suppress this breaking change warning, and other information on breaking changes in Azure PowerShell. + + + This cmdlet is in preview. The functionality may not be available in the selected subscription. + + \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Response.cs b/swaggerci/app/generated/runtime/Response.cs new file mode 100644 index 000000000000..daa4c9dfe6c7 --- /dev/null +++ b/swaggerci/app/generated/runtime/Response.cs @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + using System; + using System.Threading.Tasks; + public class Response : EventData + { + public Response() : base() + { + } + } + + public class Response : Response + { + private Func> _resultDelegate; + private Task _resultValue; + + public Response(T value) : base() => _resultValue = Task.FromResult(value); + public Response(Func value) : base() => _resultDelegate = () => Task.FromResult(value()); + public Response(Func> value) : base() => _resultDelegate = value; + public Task Result => _resultValue ?? (_resultValue = this._resultDelegate()); + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Serialization/JsonSerializer.cs b/swaggerci/app/generated/runtime/Serialization/JsonSerializer.cs new file mode 100644 index 000000000000..fa0b1b7c9502 --- /dev/null +++ b/swaggerci/app/generated/runtime/Serialization/JsonSerializer.cs @@ -0,0 +1,350 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal class JsonSerializer + { + private int depth = 0; + + private SerializationOptions options = new SerializationOptions(); + + #region Deserialization + + internal T Deseralize(JsonObject json) + where T : new() + { + var contract = JsonModelCache.Get(typeof(T)); + + return (T)DeserializeObject(contract, json); + } + + internal object DeserializeObject(JsonModel contract, JsonObject json) + { + var instance = Activator.CreateInstance(contract.Type); + + depth++; + + // Ensure we don't recurse forever + if (depth > 5) throw new Exception("Depth greater than 5"); + + foreach (var field in json) + { + var member = contract[field.Key]; + + if (member != null) + { + var value = DeserializeValue(member, field.Value); + + member.SetValue(instance, value); + } + } + + depth--; + + return instance; + } + + private object DeserializeValue(JsonMember member, JsonNode value) + { + if (value.Type == JsonType.Null) return null; + + var type = member.Type; + + if (member.IsStringLike && value.Type != JsonType.String) + { + // Take the long path... + return DeserializeObject(JsonModelCache.Get(type), (JsonObject)value); + } + else if (member.Converter != null) + { + return member.Converter.FromJson(value); + } + else if (type.IsArray) + { + return DeserializeArray(type, (JsonArray)value); + } + else if (member.IsList) + { + return DeserializeList(type, (JsonArray)value); + } + else + { + var contract = JsonModelCache.Get(type); + + return DeserializeObject(contract, (JsonObject)value); + } + } + + private object DeserializeValue(Type type, JsonNode value) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + + if (value.Type == JsonType.Null) return null; + + var typeDetails = TypeDetails.Get(type); + + if (typeDetails.JsonConverter != null) + { + return typeDetails.JsonConverter.FromJson(value); + } + else if (typeDetails.IsEnum) + { + return Enum.Parse(type, value.ToString(), ignoreCase: true); + } + else if (type.IsArray) + { + return DeserializeArray(type, (JsonArray)value); + } + else if (typeDetails.IsList) + { + return DeserializeList(type, (JsonArray)value); + } + else + { + var contract = JsonModelCache.Get(type); + + return DeserializeObject(contract, (JsonObject)value); + } + } + + internal Array DeserializeArray(Type type, JsonArray elements) + { + var elementType = type.GetElementType(); + + var elementTypeDetails = TypeDetails.Get(elementType); + + var array = Array.CreateInstance(elementType, elements.Count); + + int i = 0; + + if (elementTypeDetails.JsonConverter != null) + { + foreach (var value in elements) + { + array.SetValue(elementTypeDetails.JsonConverter.FromJson(value), i); + + i++; + } + } + else + { + foreach (var value in elements) + { + array.SetValue(DeserializeValue(elementType, value), i); + + i++; + } + } + + return array; + } + + internal IList DeserializeList(Type type, JsonArray jsonArray) + { + // TODO: Handle non-generic types + if (!type.IsGenericType) + throw new ArgumentException("Must be a generic type", nameof(type)); + + var elementType = type.GetGenericArguments()[0]; + + IList list; + + if (type.IsInterface) + { + // Create a concrete generic list + list = (IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(elementType)); + } + else + { + list = (IList)Activator.CreateInstance(type); + } + + foreach (var value in jsonArray) + { + list.Add(DeserializeValue(elementType, value)); + } + + return list; + } + + #endregion + + #region Serialization + + internal JsonNode Serialize(object instance) => + Serialize(instance, SerializationOptions.Default); + + internal JsonNode Serialize(object instance, string[] include) => + Serialize(instance, new SerializationOptions { Include = include }); + + internal JsonNode Serialize(object instance, SerializationOptions options) + { + this.options = options; + + if (instance == null) + { + return XNull.Instance; + } + + return ReadValue(instance.GetType(), instance); + } + + #region Readers + + internal JsonArray ReadArray(IEnumerable collection) + { + var array = new XNodeArray(); + + foreach (var item in collection) + { + array.Add(ReadValue(item.GetType(), item)); + } + + return array; + } + + internal IEnumerable> ReadProperties(object instance) + { + var contract = JsonModelCache.Get(instance.GetType()); + + foreach (var member in contract.Members) + { + string name = member.Name; + + if (options.PropertyNameTransformer != null) + { + name = options.PropertyNameTransformer.Invoke(name); + } + + // Skip the field if it's not included + if ((depth == 1 && !options.IsIncluded(name))) + { + continue; + } + + var value = member.GetValue(instance); + + if (!member.EmitDefaultValue && (value == null || (member.IsList && ((IList)value).Count == 0) || value.Equals(member.DefaultValue))) + { + continue; + } + else if (options.IgnoreNullValues && value == null) // Ignore null values + { + continue; + } + + // Transform the value if there is one + if (options.Transformations != null) + { + var transform = options.GetTransformation(name); + + if (transform != null) + { + value = transform.Transformer(value); + } + } + + yield return new KeyValuePair(name, ReadValue(member.TypeDetails, value)); + } + } + + private JsonObject ReadObject(object instance) + { + depth++; + + // TODO: Guard against a self referencing graph + if (depth > options.MaxDepth) + { + depth--; + + return new JsonObject(); + } + + var node = new JsonObject(ReadProperties(instance)); + + depth--; + + return node; + } + + private JsonNode ReadValue(Type type, object value) + { + if (value == null) + { + return XNull.Instance; + } + + var member = TypeDetails.Get(type); + + return ReadValue(member, value); + } + + private JsonNode ReadValue(TypeDetails type, object value) + { + if (value == null) + { + return XNull.Instance; + } + + if (type.JsonConverter != null) + { + return type.JsonConverter.ToJson(value); + } + else if (type.IsArray) + { + switch (Type.GetTypeCode(type.ElementType)) + { + case TypeCode.String: return CreateArray((string[])value); + case TypeCode.UInt16: return CreateArray((ushort[])value); + case TypeCode.UInt32: return CreateArray((uint[])value); + case TypeCode.UInt64: return CreateArray((ulong[])value); + case TypeCode.Int16: return CreateArray((short[])value); + case TypeCode.Int32: return CreateArray((int[])value); + case TypeCode.Int64: return CreateArray((long[])value); + case TypeCode.Single: return CreateArray((float[])value); + case TypeCode.Double: return CreateArray((double[])value); + default: return ReadArray((IEnumerable)value); + } + } + else if (value is IEnumerable) + { + if (type.IsList && type.ElementType != null) + { + switch (Type.GetTypeCode(type.ElementType)) + { + case TypeCode.String: return CreateList(value); + case TypeCode.UInt16: return CreateList(value); + case TypeCode.UInt32: return CreateList(value); + case TypeCode.UInt64: return CreateList(value); + case TypeCode.Int16: return CreateList(value); + case TypeCode.Int32: return CreateList(value); + case TypeCode.Int64: return CreateList(value); + case TypeCode.Single: return CreateList(value); + case TypeCode.Double: return CreateList(value); + } + } + + return ReadArray((IEnumerable)value); + } + else + { + // Complex object + return ReadObject(value); + } + } + + private XList CreateList(object value) => new XList((IList)value); + + private XImmutableArray CreateArray(T[] array) => new XImmutableArray(array); + + #endregion + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Serialization/PropertyTransformation.cs b/swaggerci/app/generated/runtime/Serialization/PropertyTransformation.cs new file mode 100644 index 000000000000..79dd9491f5c1 --- /dev/null +++ b/swaggerci/app/generated/runtime/Serialization/PropertyTransformation.cs @@ -0,0 +1,21 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal class PropertyTransformation + { + internal PropertyTransformation(string name, Func transformer) + { + Name = name ?? throw new ArgumentNullException(nameof(name)); + Transformer = transformer ?? throw new ArgumentNullException(nameof(transformer)); + } + + internal string Name { get; } + + internal Func Transformer { get; } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Serialization/SerializationOptions.cs b/swaggerci/app/generated/runtime/Serialization/SerializationOptions.cs new file mode 100644 index 000000000000..d2b49424a76d --- /dev/null +++ b/swaggerci/app/generated/runtime/Serialization/SerializationOptions.cs @@ -0,0 +1,65 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Linq; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal class SerializationOptions + { + internal static readonly SerializationOptions Default = new SerializationOptions(); + + internal SerializationOptions() { } + + internal SerializationOptions( + string[] include = null, + bool ingoreNullValues = false) + { + Include = include; + IgnoreNullValues = ingoreNullValues; + } + + internal string[] Include { get; set; } + + internal string[] Exclude { get; set; } + + internal bool IgnoreNullValues { get; set; } + + internal PropertyTransformation[] Transformations { get; set; } + + internal Func PropertyNameTransformer { get; set; } + + internal int MaxDepth { get; set; } = 5; + + internal bool IsIncluded(string name) + { + if (Exclude != null) + { + return !Exclude.Any(exclude => exclude.Equals(name, StringComparison.OrdinalIgnoreCase)); + } + else if (Include != null) + { + return Include.Any(exclude => exclude.Equals(name, StringComparison.OrdinalIgnoreCase)); + } + + return true; + } + + internal PropertyTransformation GetTransformation(string propertyName) + { + if (Transformations == null) return null; + + foreach (var t in Transformations) + { + if (t.Name.Equals(propertyName, StringComparison.OrdinalIgnoreCase)) + { + return t; + } + } + + return null; + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/SerializationMode.cs b/swaggerci/app/generated/runtime/SerializationMode.cs new file mode 100644 index 000000000000..6dfb664b72cc --- /dev/null +++ b/swaggerci/app/generated/runtime/SerializationMode.cs @@ -0,0 +1,16 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + [System.Flags] + public enum SerializationMode + { + None = 0, + IncludeHeaders = 1 << 0, + IncludeReadOnly = 1 << 1, + + IncludeAll = IncludeHeaders | IncludeReadOnly + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/TypeConverterExtensions.cs b/swaggerci/app/generated/runtime/TypeConverterExtensions.cs new file mode 100644 index 000000000000..50c0bccd17a6 --- /dev/null +++ b/swaggerci/app/generated/runtime/TypeConverterExtensions.cs @@ -0,0 +1,211 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.IO; +using System.Linq; +using System.Xml; +using System.Xml.Serialization; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.PowerShell +{ + internal static class TypeConverterExtensions + { + internal static T[] SelectToArray(object source, System.Func converter) + { + // null begets null + if (source == null) + { + return null; + } + + // single values and strings are just encapsulated in the array. + if (source is string || !(source is System.Collections.IEnumerable)) + { + try + { + return new T[] { (T)converter(source) }; + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + // silent conversion fail + } +#endif + return new T[0]; // empty result if couldn't convert. + } + + var result = new System.Collections.Generic.List(); + foreach (var each in (System.Collections.IEnumerable)source) + { + try + { + result.Add((T)converter(each)); + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + // silent conversion fail + } +#endif + } + return result.ToArray(); + } + + internal static System.Collections.Generic.IEnumerable GetPropertyKeys(this System.Collections.Generic.IDictionary dictionary) + { + if (null != dictionary) + { + foreach (var each in dictionary.Keys) + { + yield return each; + } + } + } + internal static System.Collections.Generic.IEnumerable GetPropertyKeys(this System.Collections.IDictionary dictionary) + { + if (null != dictionary) + { + foreach (var each in dictionary.Keys) + { + yield return each; + } + } + } + internal static System.Collections.Generic.IEnumerable GetPropertyKeys(this System.Management.Automation.PSObject instance) + { + if (null != instance) + { + foreach (var each in instance.Properties) + { + yield return each; + } + } + } + + internal static System.Collections.Generic.IEnumerable> GetFilteredProperties(this System.Collections.Generic.IDictionary instance, global::System.Collections.Generic.HashSet exclusions = null, global::System.Collections.Generic.HashSet inclusions = null) + { + return (null == instance || instance.Count == 0) ? + Enumerable.Empty>() : + instance.Keys + .Where(key => + !(true == exclusions?.Contains(key?.ToString())) + && (false != inclusions?.Contains(key?.ToString()))) + .Select(key => new System.Collections.Generic.KeyValuePair(key, instance[key])); + } + + internal static System.Collections.Generic.IEnumerable> GetFilteredProperties(this System.Collections.IDictionary instance, global::System.Collections.Generic.HashSet exclusions = null, global::System.Collections.Generic.HashSet inclusions = null) + { + return (null == instance || instance.Count == 0) ? + Enumerable.Empty>() : + instance.Keys.OfType() + .Where(key => + !(true == exclusions?.Contains(key?.ToString())) + && (false != inclusions?.Contains(key?.ToString()))) + .Select(key => new System.Collections.Generic.KeyValuePair(key, instance[key])); + } + + internal static System.Collections.Generic.IEnumerable> GetFilteredProperties(this System.Management.Automation.PSObject instance, global::System.Collections.Generic.HashSet exclusions = null, global::System.Collections.Generic.HashSet inclusions = null) + { + // new global::System.Collections.Generic.HashSet(System.StringComparer.InvariantCultureIgnoreCase) + return (null == instance || !instance.Properties.Any()) ? + Enumerable.Empty>() : + instance.Properties + .Where(property => + !(true == exclusions?.Contains(property.Name)) + && (false != inclusions?.Contains(property.Name))) + .Select(property => new System.Collections.Generic.KeyValuePair(property.Name, property.Value)); + } + + + internal static T GetValueForProperty(this System.Collections.Generic.IDictionary dictionary, string propertyName, T defaultValue, System.Func converter) + { + try + { + var key = System.Linq.Enumerable.FirstOrDefault(dictionary.Keys, each => System.String.Equals(each.ToString(), propertyName, System.StringComparison.CurrentCultureIgnoreCase)); + return key == null ? defaultValue : (T)converter(dictionary[key]); + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + } +#endif + return defaultValue; + } + internal static T GetValueForProperty(this System.Collections.IDictionary dictionary, string propertyName, T defaultValue, System.Func converter) + { + try + { + var key = System.Linq.Enumerable.FirstOrDefault(dictionary.Keys.OfType(), each => System.String.Equals(each.ToString(), propertyName, System.StringComparison.CurrentCultureIgnoreCase)); + return key == null ? defaultValue : (T)converter(dictionary[key]); + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + } +#endif + return defaultValue; + } + + internal static T GetValueForProperty(this System.Management.Automation.PSObject psObject, string propertyName, T defaultValue, System.Func converter) + { + try + { + var property = System.Linq.Enumerable.FirstOrDefault(psObject.Properties, each => System.String.Equals(each.Name.ToString(), propertyName, System.StringComparison.CurrentCultureIgnoreCase)); + return property == null ? defaultValue : (T)converter(property.Value); + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + } +#endif + return defaultValue; + } + + internal static bool Contains(this System.Management.Automation.PSObject psObject, string propertyName) + { + bool result = false; + try + { + var property = System.Linq.Enumerable.FirstOrDefault(psObject.Properties, each => System.String.Equals(each.Name.ToString(), propertyName, System.StringComparison.CurrentCultureIgnoreCase)); + result = property == null ? false : true; + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + } +#endif + return result; + } + } +} diff --git a/swaggerci/app/generated/runtime/UndeclaredResponseException.cs b/swaggerci/app/generated/runtime/UndeclaredResponseException.cs new file mode 100644 index 000000000000..6a4fa1c5cbd4 --- /dev/null +++ b/swaggerci/app/generated/runtime/UndeclaredResponseException.cs @@ -0,0 +1,112 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + using System; + using System.Net.Http; + using System.Net.Http.Headers; + using static Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Extensions; + + public class RestException : Exception, IDisposable + { + public System.Net.HttpStatusCode StatusCode { get; set; } + public string Code { get; protected set; } + protected string message; + public HttpRequestMessage RequestMessage { get; protected set; } + public HttpResponseHeaders ResponseHeaders { get; protected set; } + + public string ResponseBody { get; protected set; } + public string ClientRequestId { get; protected set; } + public string RequestId { get; protected set; } + + public override string Message => message; + public string Action { get; protected set; } + + public RestException(System.Net.Http.HttpResponseMessage response) + { + StatusCode = response.StatusCode; + //CloneWithContent will not work here since the content is disposed after sendAsync + //Besides, it seems there is no need for the request content cloned here. + RequestMessage = response.RequestMessage.Clone(); + ResponseBody = response.Content.ReadAsStringAsync().Result; + ResponseHeaders = response.Headers; + + RequestId = response.GetFirstHeader("x-ms-request-id"); + ClientRequestId = response.GetFirstHeader("x-ms-client-request-id"); + + try + { + // try to parse the body as JSON, and see if a code and message are in there. + var json = Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonNode.Parse(ResponseBody) as Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json.JsonObject; + + // error message could be in properties.statusMessage + { message = If(json?.Property("properties"), out var p) + && If(p?.PropertyT("statusMessage"), out var sm) + ? (string)sm : (string)Message; } + + // see if there is an error block in the body + json = json?.Property("error") ?? json; + + { Code = If(json?.PropertyT("code"), out var c) ? (string)c : (string)StatusCode.ToString(); } + { message = If(json?.PropertyT("message"), out var m) ? (string)m : (string)Message; } + { Action = If(json?.PropertyT("action"), out var a) ? (string)a : (string)Action; } + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + // couldn't get the code/message from the body response. + // In this case, we will assume the response is the expected error message + if(!string.IsNullOrEmpty(ResponseBody)) { + message = ResponseBody; + } + } +#endif + if (string.IsNullOrEmpty(message)) + { + if (StatusCode >= System.Net.HttpStatusCode.BadRequest && StatusCode < System.Net.HttpStatusCode.InternalServerError) + { + message = $"The server responded with a Request Error, Status: {StatusCode}"; + } + else if (StatusCode >= System.Net.HttpStatusCode.InternalServerError) + { + message = $"The server responded with a Server Error, Status: {StatusCode}"; + } + else + { + message = $"The server responded with an unrecognized response, Status: {StatusCode}"; + } + } + } + + public void Dispose() + { + ((IDisposable)RequestMessage).Dispose(); + } + } + + public class RestException : RestException + { + public T Error { get; protected set; } + public RestException(System.Net.Http.HttpResponseMessage response, T error) : base(response) + { + Error = error; + } + } + + + public class UndeclaredResponseException : RestException + { + public UndeclaredResponseException(System.Net.Http.HttpResponseMessage response) : base(response) + { + + } + } +} \ No newline at end of file diff --git a/swaggerci/app/generated/runtime/Writers/JsonWriter.cs b/swaggerci/app/generated/runtime/Writers/JsonWriter.cs new file mode 100644 index 000000000000..276652e3e6d2 --- /dev/null +++ b/swaggerci/app/generated/runtime/Writers/JsonWriter.cs @@ -0,0 +1,223 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Web; + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.Json +{ + internal class JsonWriter + { + const string indentation = " "; // 2 spaces + + private readonly bool pretty; + private readonly TextWriter writer; + + protected int currentLevel = 0; + + internal JsonWriter(TextWriter writer, bool pretty = true) + { + this.writer = writer ?? throw new ArgumentNullException(nameof(writer)); + this.pretty = pretty; + } + + internal void WriteNode(JsonNode node) + { + switch (node.Type) + { + case JsonType.Array: WriteArray((IEnumerable)node); break; + case JsonType.Object: WriteObject((JsonObject)node); break; + + // Primitives + case JsonType.Binary: WriteBinary((XBinary)node); break; + case JsonType.Boolean: WriteBoolean((bool)node); break; + case JsonType.Date: WriteDate((JsonDate)node); break; + case JsonType.Null: WriteNull(); break; + case JsonType.Number: WriteNumber((JsonNumber)node); break; + case JsonType.String: WriteString(node); break; + } + } + + internal void WriteArray(IEnumerable array) + { + currentLevel++; + + writer.Write('['); + + bool doIndentation = false; + + if (pretty) + { + foreach (var node in array) + { + if (node.Type == JsonType.Object || node.Type == JsonType.Array) + { + doIndentation = true; + + break; + } + } + } + + bool isFirst = true; + + foreach (JsonNode node in array) + { + if (!isFirst) writer.Write(','); + + if (doIndentation) + { + WriteIndent(); + } + else if (pretty) + { + writer.Write(' '); + } + + WriteNode(node); + + isFirst = false; + } + + currentLevel--; + + if (doIndentation) + { + WriteIndent(); + } + else if (pretty) + { + writer.Write(' '); + } + + writer.Write(']'); + } + + internal void WriteIndent() + { + if (pretty) + { + writer.Write(Environment.NewLine); + + for (int level = 0; level < currentLevel; level++) + { + writer.Write(indentation); + } + } + } + + internal void WriteObject(JsonObject obj) + { + currentLevel++; + + writer.Write('{'); + + bool isFirst = true; + + foreach (var field in obj) + { + if (!isFirst) writer.Write(','); + + WriteIndent(); + + WriteFieldName(field.Key); + + writer.Write(':'); + + if (pretty) + { + writer.Write(' '); + } + + // Write the field value + WriteNode(field.Value); + + isFirst = false; + } + + currentLevel--; + + WriteIndent(); + + writer.Write('}'); + } + + internal void WriteFieldName(string fieldName) + { + writer.Write('"'); + writer.Write(HttpUtility.JavaScriptStringEncode(fieldName)); + writer.Write('"'); + } + + #region Primitives + + internal void WriteBinary(XBinary value) + { + writer.Write('"'); + writer.Write(value.ToString()); + writer.Write('"'); + } + + internal void WriteBoolean(bool value) + { + writer.Write(value ? "true" : "false"); + } + + internal void WriteDate(JsonDate date) + { + if (date.ToDateTime().Year == 1) + { + WriteNull(); + } + else + { + writer.Write('"'); + writer.Write(date.ToIsoString()); + writer.Write('"'); + } + } + + internal void WriteNull() + { + writer.Write("null"); + } + + internal void WriteNumber(JsonNumber number) + { + if (number.Overflows) + { + writer.Write('"'); + writer.Write(number.Value); + writer.Write('"'); + } + else + { + writer.Write(number.Value); + } + } + + internal void WriteString(string text) + { + if (text == null) + { + WriteNull(); + } + else + { + writer.Write('"'); + + writer.Write(HttpUtility.JavaScriptStringEncode(text)); + + writer.Write('"'); + } + } + + #endregion + } +} + + +// TODO: Replace with System.Text.Json when available diff --git a/swaggerci/app/generated/runtime/delegates.cs b/swaggerci/app/generated/runtime/delegates.cs new file mode 100644 index 000000000000..95c7ad8fc3da --- /dev/null +++ b/swaggerci/app/generated/runtime/delegates.cs @@ -0,0 +1,23 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime +{ + using System; + using System.Collections; + using System.Collections.Generic; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + using GetEventData=System.Func; + + public delegate Task SendAsync(HttpRequestMessage request, IEventListener callback); + public delegate Task SendAsyncStep(HttpRequestMessage request, IEventListener callback, ISendAsync next); + public delegate Task SignalEvent(string id, CancellationToken token, GetEventData getEventData); + public delegate Task Event(EventData message); + public delegate void SynchEvent(EventData message); + public delegate Task OnResponse(Response message); + public delegate Task OnResponse(Response message); +} \ No newline at end of file diff --git a/swaggerci/app/how-to.md b/swaggerci/app/how-to.md new file mode 100644 index 000000000000..51c9d0dcbba8 --- /dev/null +++ b/swaggerci/app/how-to.md @@ -0,0 +1,58 @@ +# How-To +This document describes how to develop for `Az.ContainerAppsApi`. + +## Building `Az.ContainerAppsApi` +To build, run the `build-module.ps1` at the root of the module directory. This will generate the proxy script cmdlets that are the cmdlets being exported by this module. After the build completes, the proxy script cmdlets will be output to the `exports` folder. To read more about the proxy script cmdlets, look at the [README.md](exports/README.md) in the `exports` folder. + +## Creating custom cmdlets +To add cmdlets that were not generated by the REST specification, use the `custom` folder. This folder allows you to add handwritten `.ps1` and `.cs` files. Currently, we support using `.ps1` scripts as new cmdlets or as additional low-level variants (via `ParameterSet`), and `.cs` files as low-level (variants) cmdlets that the exported script cmdlets call. We do not support exporting any `.cs` (dll) cmdlets directly. To read more about custom cmdlets, look at the [README.md](custom/README.md) in the `custom` folder. + +## Generating documentation +To generate documentation, the process is now integrated into the `build-module.ps1` script. If you don't want to run this process as part of `build-module.ps1`, you can provide the `-NoDocs` switch. If you want to run documentation generation after the build process, you may still run the `generate-help.ps1` script. Overall, the process will look at the documentation comments in the generated and custom cmdlets and types, and create `.md` files into the `docs` folder. Additionally, this pulls in any examples from the `examples` folder and adds them to the generated help markdown documents. To read more about examples, look at the [README.md](examples/README.md) in the `examples` folder. To read more about documentation, look at the [README.md](docs/README.md) in the `docs` folder. + +## Testing `Az.ContainerAppsApi` +To test the cmdlets, we use [Pester](https://github.com/pester/Pester). Tests scripts (`.ps1`) should be added to the `test` folder. To execute the Pester tests, run the `test-module.ps1` script. This will run all tests in `playback` mode within the `test` folder. To read more about testing cmdlets, look at the [README.md](examples/README.md) in the `examples` folder. + +## Packing `Az.ContainerAppsApi` +To pack `Az.ContainerAppsApi` for distribution, run the `pack-module.ps1` script. This will take the contents of multiple directories and certain root-folder files to create a `.nupkg`. The structure of the `.nupkg` is created so it can be loaded part of a [PSRepository](https://docs.microsoft.com/powershell/module/powershellget/register-psrepository). Additionally, this package is in a format for distribution to the [PSGallery](https://www.powershellgallery.com/). For signing an Azure module, please contact the [Azure PowerShell](https://github.com/Azure/azure-powershell) team. + +## Module Script Details +There are multiple scripts created for performing different actions for developing `Az.ContainerAppsApi`. +- `build-module.ps1` + - Builds the module DLL (`./bin/Az.ContainerAppsApi.private.dll`), creates the exported cmdlets and documentation, generates custom cmdlet test stubs and exported cmdlet example stubs, and updates `./Az.ContainerAppsApi.psd1` with Azure profile information. + - **Parameters**: [`Switch` parameters] + - `-Run`: After building, creates an isolated PowerShell session and loads `Az.ContainerAppsApi`. + - `-Test`: After building, runs the `Pester` tests defined in the `test` folder. + - `-Docs`: After building, generates the Markdown documents for the modules into the `docs` folder. + - `-Pack`: After building, packages the module into a `.nupkg`. + - `-Code`: After building, opens a VSCode window with the module's directory and runs (see `-Run`) the module. + - `-Release`: Builds the module in `Release` configuration (as opposed to `Debug` configuration). + - `-NoDocs`: Supresses writing the documentation markdown files as part of the cmdlet exporting process. + - `-Debugger`: Used when attaching the debugger in Visual Studio to the PowerShell session, and running the build process without recompiling the DLL. This suppresses running the script as an isolated process. +- `run-module.ps1` + - Creates an isolated PowerShell session and loads `Az.ContainerAppsApi` into the session. + - Same as `-Run` in `build-module.ps1`. + - **Parameters**: [`Switch` parameters] + - `-Code`: Opens a VSCode window with the module's directory. + - Same as `-Code` in `build-module.ps1`. +- `generate-help.ps1` + - Generates the Markdown documents for the modules into the `docs` folder. + - Same as `-Docs` in `build-module.ps1`. +- `test-module.ps1` + - Runs the `Pester` tests defined in the `test` folder. + - Same as `-Test` in `build-module.ps1`. +- `pack-module.ps1` + - Packages the module into a `.nupkg` for distribution. + - Same as `-Pack` in `build-module.ps1`. +- `generate-help.ps1` + - Generates the Markdown documents for the modules into the `docs` folder. + - Same as `-Docs` in `build-module.ps1`. + - This process is now integrated into `build-module.ps1` automatically. To disable, use `-NoDocs` when running `build-module.ps1`. +- `export-surface.ps1` + - Generates Markdown documents for both the cmdlet surface and the model (class) surface of the module. + - These files are placed into the `resources` folder. + - Used for investigating the surface of your module. These are *not* documentation for distribution. +- `check-dependencies.ps1` + - Used in `run-module.ps1` and `test-module.ps1` to verify dependent modules are available to run those tasks. + - It will download local (within the module's directory structure) versions of those modules as needed. + - This script *does not* need to be ran by-hand. \ No newline at end of file diff --git a/swaggerci/app/internal/Az.ContainerAppsApi.internal.psm1 b/swaggerci/app/internal/Az.ContainerAppsApi.internal.psm1 new file mode 100644 index 000000000000..281f0bdb95e1 --- /dev/null +++ b/swaggerci/app/internal/Az.ContainerAppsApi.internal.psm1 @@ -0,0 +1,38 @@ +# region Generated + # Load the private module dll + $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '../bin/Az.ContainerAppsApi.private.dll') + + # Get the private module's instance + $instance = [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Module]::Instance + + # Export nothing to clear implicit exports + Export-ModuleMember + + # Export proxy cmdlet scripts + $exportsPath = $PSScriptRoot + $directories = Get-ChildItem -Directory -Path $exportsPath + $profileDirectory = $null + if($instance.ProfileName) { + if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { + $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } + } else { + # Don't export anything if the profile doesn't exist for the module + $exportsPath = $null + Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." + } + } elseif(($directories | Measure-Object).Count -gt 0) { + # Load the last folder if no profile is selected + $profileDirectory = $directories | Select-Object -Last 1 + } + + if($profileDirectory) { + Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" + $exportsPath = $profileDirectory.FullName + } + + if($exportsPath) { + Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } + $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath + Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) + } +# endregion diff --git a/swaggerci/app/internal/Get-AzContainerAppsApiOperation.ps1 b/swaggerci/app/internal/Get-AzContainerAppsApiOperation.ps1 new file mode 100644 index 000000000000..88c5c9a748a2 --- /dev/null +++ b/swaggerci/app/internal/Get-AzContainerAppsApiOperation.ps1 @@ -0,0 +1,116 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Lists all of the available RP operations. +.Description +Lists all of the available RP operations. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapioperation +#> +function Get-AzContainerAppsApiOperation { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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.ContainerAppsApi.private\Get-AzContainerAppsApiOperation_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/app/internal/ProxyCmdletDefinitions.ps1 b/swaggerci/app/internal/ProxyCmdletDefinitions.ps1 new file mode 100644 index 000000000000..88c5c9a748a2 --- /dev/null +++ b/swaggerci/app/internal/ProxyCmdletDefinitions.ps1 @@ -0,0 +1,116 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Lists all of the available RP operations. +.Description +Lists all of the available RP operations. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail +.Link +https://docs.microsoft.com/en-us/powershell/module/az.containerappsapi/get-azcontainerappsapioperation +#> +function Get-AzContainerAppsApiOperation { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Models.Api20221101Preview.IOperationDetail])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerAppsApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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.ContainerAppsApi.private\Get-AzContainerAppsApiOperation_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/app/internal/README.md b/swaggerci/app/internal/README.md new file mode 100644 index 000000000000..4f1a547acf5f --- /dev/null +++ b/swaggerci/app/internal/README.md @@ -0,0 +1,14 @@ +# Internal +This directory contains a module to handle *internal only* cmdlets. Cmdlets that you **hide** in configuration are created here. For more information on hiding, see [cmdlet hiding](https://github.com/Azure/autorest.powershell/blob/main/docs/directives.md#cmdlet-hiding-exportation-suppression). The cmdlets in this directory are generated at **build-time**. Do not put any custom code, files, cmdlets, etc. into this directory. Please use `../custom` for all custom implementation. + +## Info +- Modifiable: no +- Generated: all +- Committed: no +- Packaged: yes + +## Details +The `Az.ContainerAppsApi.internal.psm1` file is generated to this folder. This module file handles the hidden cmdlets. These cmdlets will not be exported by `Az.ContainerAppsApi`. Instead, this sub-module is imported by the `../custom/Az.ContainerAppsApi.custom.psm1` module, allowing you to use hidden cmdlets in your custom, exposed cmdlets. To call these cmdlets in your custom scripts, simply use [module-qualified calls](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_command_precedence?view=powershell-6#qualified-names). For example, `Az.ContainerAppsApi.internal\Get-Example` would call an internal cmdlet named `Get-Example`. + +## Purpose +This allows you to include REST specifications for services that you *do not wish to expose from your module*, but simply want to call within custom cmdlets. For example, if you want to make a custom cmdlet that uses `Storage` services, you could include a simplified `Storage` REST specification that has only the operations you need. When you run the generator and build this module, note the generated `Storage` cmdlets. Then, in your readme configuration, use [cmdlet hiding](https://github.com/Azure/autorest/blob/master/docs/powershell/options.md#cmdlet-hiding-exportation-suppression) on the `Storage` cmdlets and they will *only be exposed to the custom cmdlets* you want to write, and not be exported as part of `Az.ContainerAppsApi`. diff --git a/swaggerci/app/license.txt b/swaggerci/app/license.txt new file mode 100644 index 000000000000..b9f3180fb9af --- /dev/null +++ b/swaggerci/app/license.txt @@ -0,0 +1,227 @@ +MICROSOFT SOFTWARE LICENSE TERMS + +MICROSOFT AZURE POWERSHELL + +These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. + +BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE. + + +-----------------START OF LICENSE-------------------------- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +-------------------END OF LICENSE------------------------------------------ + + +----------------START OF THIRD PARTY NOTICE-------------------------------- + + +The software includes the AutoMapper library ("AutoMapper"). The MIT License set out below is provided for informational purposes only. It is not the license that governs any part of the software. + +Provided for Informational Purposes Only + +AutoMapper + +The MIT License (MIT) +Copyright (c) 2010 Jimmy Bogard + + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + + + +*************** + +The software includes Newtonsoft.Json. The MIT License set out below is provided for informational purposes only. It is not the license that governs any part of the software. + +Newtonsoft.Json + +The MIT License (MIT) +Copyright (c) 2007 James Newton-King +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-------------END OF THIRD PARTY NOTICE---------------------------------------- + diff --git a/swaggerci/app/pack-module.ps1 b/swaggerci/app/pack-module.ps1 new file mode 100644 index 000000000000..8ed48957e579 --- /dev/null +++ b/swaggerci/app/pack-module.ps1 @@ -0,0 +1,9 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +Write-Host -ForegroundColor Green 'Packing module...' +dotnet pack $PSScriptRoot --no-build /nologo +Write-Host -ForegroundColor Green '-------------Done-------------' \ No newline at end of file diff --git a/swaggerci/app/readme.md b/swaggerci/app/readme.md new file mode 100644 index 000000000000..06632c0e77ca --- /dev/null +++ b/swaggerci/app/readme.md @@ -0,0 +1,10 @@ +### AutoRest Configuration +> see https://aka.ms/autorest + +``` yaml +require: + - $(this-folder)/../../tools/SwaggerCI/readme.azure.noprofile.md + - $(this-folder)/../../../azure-rest-api-specs/specification/app/resource-manager/readme.md +try-require: + - $(this-folder)/../../../azure-rest-api-specs/specification/app/resource-manager/readme.powershell.md +``` diff --git a/swaggerci/app/resources/README.md b/swaggerci/app/resources/README.md new file mode 100644 index 000000000000..736492341e3d --- /dev/null +++ b/swaggerci/app/resources/README.md @@ -0,0 +1,11 @@ +# Resources +This directory can contain any additional resources for module that are not required at runtime. This directory **does not** get packaged with the module. If you have assets for custom implementation, place them into the `../custom` folder. + +## Info +- Modifiable: yes +- Generated: no +- Committed: yes +- Packaged: no + +## Purpose +Use this folder to put anything you want to keep around as part of the repository for the module, but is not something that is required for the module. For example, development files, packaged builds, or additional information. This is only intended to be used in repositories where the module's output directory is cleaned, but tangential resources for the module want to remain intact. \ No newline at end of file diff --git a/swaggerci/app/run-module.ps1 b/swaggerci/app/run-module.ps1 new file mode 100644 index 000000000000..d86051f9b010 --- /dev/null +++ b/swaggerci/app/run-module.ps1 @@ -0,0 +1,54 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$Code) +$ErrorActionPreference = 'Stop' + +if(-not $Isolated) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + $pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path + & "$pwsh" -NoExit -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +$isAzure = $true +if($isAzure) { + . (Join-Path $PSScriptRoot 'check-dependencies.ps1') -Isolated -Accounts + # Load the latest version of Az.Accounts installed + Import-Module -Name Az.Accounts -RequiredVersion (Get-Module -Name Az.Accounts -ListAvailable | Sort-Object -Property Version -Descending)[0].Version +} + +$localModulesPath = Join-Path $PSScriptRoot 'generated/modules' +if(Test-Path -Path $localModulesPath) { + $env:PSModulePath = "$localModulesPath$([IO.Path]::PathSeparator)$env:PSModulePath" +} + +$modulePsd1 = Get-Item -Path (Join-Path $PSScriptRoot './Az.ContainerAppsApi.psd1') +$modulePath = $modulePsd1.FullName +$moduleName = $modulePsd1.BaseName + +function Prompt { + Write-Host -NoNewline -ForegroundColor Green "PS $(Get-Location)" + Write-Host -NoNewline -ForegroundColor Gray ' [' + Write-Host -NoNewline -ForegroundColor White -BackgroundColor DarkCyan $moduleName + ']> ' +} + +# where we would find the launch.json file +$vscodeDirectory = New-Item -ItemType Directory -Force -Path (Join-Path $PSScriptRoot '.vscode') +$launchJson = Join-Path $vscodeDirectory 'launch.json' + +# if there is a launch.json file, let's just assume -Code, and update the file +if(($Code) -or (test-Path $launchJson) ) { + $launchContent = '{ "version": "0.2.0", "configurations":[{ "name":"Attach to PowerShell", "type":"coreclr", "request":"attach", "processId":"' + ([System.Diagnostics.Process]::GetCurrentProcess().Id) + '", "justMyCode":false }] }' + Set-Content -Path $launchJson -Value $launchContent + if($Code) { + # only launch vscode if they say -code + code $PSScriptRoot + } +} + +Import-Module -Name $modulePath \ No newline at end of file diff --git a/swaggerci/app/test-module.ps1 b/swaggerci/app/test-module.ps1 new file mode 100644 index 000000000000..e9d08b85b5e0 --- /dev/null +++ b/swaggerci/app/test-module.ps1 @@ -0,0 +1,86 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$Live, [switch]$Record, [switch]$Playback, [switch]$RegenerateSupportModule, [switch]$UsePreviousConfigForRecord, [string[]]$TestName) +$ErrorActionPreference = 'Stop' + +if(-not $Isolated) +{ + Write-Host -ForegroundColor Green 'Creating isolated process...' + if ($PSBoundParameters.ContainsKey("TestName")) { + $PSBoundParameters["TestName"] = $PSBoundParameters["TestName"] -join "," + } + $pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path + & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +# This is a workaround, since for string array parameter, pwsh -File will only take the first element +if ($PSBoundParameters.ContainsKey("TestName") -and ($TestName.count -eq 1) -and ($TestName[0].Contains(','))) { + $TestName = $TestName[0].Split(",") +} + +$ProgressPreference = 'SilentlyContinue' +$baseName = $PSScriptRoot.BaseName +$requireResourceModule = (($baseName -ne "Resources") -and ($Record.IsPresent -or $Live.IsPresent)) +. (Join-Path $PSScriptRoot 'check-dependencies.ps1') -Isolated -Accounts:$false -Pester -Resources:$requireResourceModule -RegenerateSupportModule:$RegenerateSupportModule +. ("$PSScriptRoot\test\utils.ps1") + +if ($requireResourceModule) +{ + # Load the latest Az.Accounts installed + Import-Module -Name Az.Accounts -RequiredVersion (Get-Module -Name Az.Accounts -ListAvailable | Sort-Object -Property Version -Descending)[0].Version + $resourceModulePSD = Get-Item -Path (Join-Path $HOME '.PSSharedModules\Resources\Az.Resources.TestSupport.psd1') + Import-Module -Name $resourceModulePSD.FullName +} + +$localModulesPath = Join-Path $PSScriptRoot 'generated/modules' +if(Test-Path -Path $localModulesPath) +{ + $env:PSModulePath = "$localModulesPath$([IO.Path]::PathSeparator)$env:PSModulePath" +} + +$modulePsd1 = Get-Item -Path (Join-Path $PSScriptRoot './Az.ContainerAppsApi.psd1') +$modulePath = $modulePsd1.FullName +$moduleName = $modulePsd1.BaseName + +Import-Module -Name Pester +Import-Module -Name $modulePath + +$TestMode = 'playback' +$ExcludeTag = @("LiveOnly") +if($Live) +{ + $TestMode = 'live' + $ExcludeTag = @() +} +if($Record) +{ + $TestMode = 'record' +} +try +{ + if ($TestMode -ne 'playback') + { + setupEnv + } + $testFolder = Join-Path $PSScriptRoot 'test' + if ($null -ne $TestName) + { + Invoke-Pester -Script @{ Path = $testFolder } -TestName $TestName -ExcludeTag $ExcludeTag -EnableExit -OutputFile (Join-Path $testFolder "$moduleName-TestResults.xml") + } else + { + Invoke-Pester -Script @{ Path = $testFolder } -ExcludeTag $ExcludeTag -EnableExit -OutputFile (Join-Path $testFolder "$moduleName-TestResults.xml") + } +} Finally +{ + if ($TestMode -ne 'playback') + { + cleanupEnv + } +} + +Write-Host -ForegroundColor Green '-------------Done-------------' \ No newline at end of file diff --git a/swaggerci/app/test/Get-AzContainerAppsApiAvailableWorkloadProfile.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiAvailableWorkloadProfile.Tests.ps1 new file mode 100644 index 000000000000..4e4824bf183f --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiAvailableWorkloadProfile.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiAvailableWorkloadProfile')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiAvailableWorkloadProfile.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiAvailableWorkloadProfile' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiBillingMeter.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiBillingMeter.Tests.ps1 new file mode 100644 index 000000000000..da45c339a079 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiBillingMeter.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiBillingMeter')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiBillingMeter.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiBillingMeter' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiCertificate.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiCertificate.Tests.ps1 new file mode 100644 index 000000000000..c387eb1b2e5b --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiCertificate.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiCertificate' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironment.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironment.Tests.ps1 new file mode 100644 index 000000000000..d2e84d8386b3 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironment.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiConnectedEnvironment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiConnectedEnvironment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiConnectedEnvironment' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.Tests.ps1 new file mode 100644 index 000000000000..39243a96d479 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiConnectedEnvironmentDaprComponentSecret' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.Tests.ps1 new file mode 100644 index 000000000000..9480a42176a8 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentsCertificate.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiConnectedEnvironmentsCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiConnectedEnvironmentsCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiConnectedEnvironmentsCertificate' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.Tests.ps1 new file mode 100644 index 000000000000..bc3f77bc9fe6 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiConnectedEnvironmentsDaprComponent' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentsStorage.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentsStorage.Tests.ps1 new file mode 100644 index 000000000000..4b3b0f5b64ad --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiConnectedEnvironmentsStorage.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiConnectedEnvironmentsStorage')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiConnectedEnvironmentsStorage.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiConnectedEnvironmentsStorage' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiContainerApp.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiContainerApp.Tests.ps1 new file mode 100644 index 000000000000..9c60a8a15da6 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiContainerApp.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiContainerApp')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiContainerApp.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiContainerApp' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiContainerAppAuthConfig.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppAuthConfig.Tests.ps1 new file mode 100644 index 000000000000..385d1f6da4c1 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppAuthConfig.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiContainerAppAuthConfig')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiContainerAppAuthConfig.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiContainerAppAuthConfig' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiContainerAppAuthToken.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppAuthToken.Tests.ps1 new file mode 100644 index 000000000000..0072d267319d --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppAuthToken.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiContainerAppAuthToken')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiContainerAppAuthToken.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiContainerAppAuthToken' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.Tests.ps1 new file mode 100644 index 000000000000..d01742058e3f --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiContainerAppCustomHostNameAnalysis' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiContainerAppDiagnosticDetector.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppDiagnosticDetector.Tests.ps1 new file mode 100644 index 000000000000..7facc78174aa --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppDiagnosticDetector.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiContainerAppDiagnosticDetector')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiContainerAppDiagnosticDetector.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiContainerAppDiagnosticDetector' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiContainerAppDiagnosticRevision.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppDiagnosticRevision.Tests.ps1 new file mode 100644 index 000000000000..e536183af721 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppDiagnosticRevision.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiContainerAppDiagnosticRevision')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiContainerAppDiagnosticRevision.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiContainerAppDiagnosticRevision' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiContainerAppDiagnosticRoot.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppDiagnosticRoot.Tests.ps1 new file mode 100644 index 000000000000..fd19979e0357 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppDiagnosticRoot.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiContainerAppDiagnosticRoot')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiContainerAppDiagnosticRoot.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiContainerAppDiagnosticRoot' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiContainerAppRevision.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppRevision.Tests.ps1 new file mode 100644 index 000000000000..aae42a2c5285 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppRevision.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiContainerAppRevision')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiContainerAppRevision.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiContainerAppRevision' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiContainerAppRevisionReplica.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppRevisionReplica.Tests.ps1 new file mode 100644 index 000000000000..8da68b99b391 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppRevisionReplica.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiContainerAppRevisionReplica')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiContainerAppRevisionReplica.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiContainerAppRevisionReplica' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiContainerAppSecret.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppSecret.Tests.ps1 new file mode 100644 index 000000000000..43c215a00b0e --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppSecret.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiContainerAppSecret')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiContainerAppSecret.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiContainerAppSecret' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiContainerAppSourceControl.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppSourceControl.Tests.ps1 new file mode 100644 index 000000000000..261e14067a80 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppSourceControl.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiContainerAppSourceControl')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiContainerAppSourceControl.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiContainerAppSourceControl' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiContainerAppsAuthConfig.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppsAuthConfig.Tests.ps1 new file mode 100644 index 000000000000..3871029f0b06 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppsAuthConfig.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiContainerAppsAuthConfig')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiContainerAppsAuthConfig.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiContainerAppsAuthConfig' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiContainerAppsSourceControl.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppsSourceControl.Tests.ps1 new file mode 100644 index 000000000000..273b9fac26e0 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiContainerAppsSourceControl.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiContainerAppsSourceControl')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiContainerAppsSourceControl.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiContainerAppsSourceControl' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiDaprComponent.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiDaprComponent.Tests.ps1 new file mode 100644 index 000000000000..cff5e10dc357 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiDaprComponent.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiDaprComponent')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiDaprComponent.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiDaprComponent' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiDaprComponentSecret.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiDaprComponentSecret.Tests.ps1 new file mode 100644 index 000000000000..22f203d4978d --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiDaprComponentSecret.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiDaprComponentSecret')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiDaprComponentSecret.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiDaprComponentSecret' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiManagedCertificate.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiManagedCertificate.Tests.ps1 new file mode 100644 index 000000000000..eef2b35392e8 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiManagedCertificate.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiManagedCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiManagedCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiManagedCertificate' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironment.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironment.Tests.ps1 new file mode 100644 index 000000000000..f7ee4b2e8028 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironment.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiManagedEnvironment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiManagedEnvironment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiManagedEnvironment' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentAuthToken.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentAuthToken.Tests.ps1 new file mode 100644 index 000000000000..f3c20d351946 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentAuthToken.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiManagedEnvironmentAuthToken')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiManagedEnvironmentAuthToken.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiManagedEnvironmentAuthToken' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.Tests.ps1 new file mode 100644 index 000000000000..49dc10b774de --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiManagedEnvironmentDiagnosticDetector' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.Tests.ps1 new file mode 100644 index 000000000000..89c877e66a82 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiManagedEnvironmentDiagnosticRoot' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.Tests.ps1 new file mode 100644 index 000000000000..2eca5773955c --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiManagedEnvironmentWorkloadProfileState' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentsStorage.Tests.ps1 b/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentsStorage.Tests.ps1 new file mode 100644 index 000000000000..5d4dd0a9b7c3 --- /dev/null +++ b/swaggerci/app/test/Get-AzContainerAppsApiManagedEnvironmentsStorage.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzContainerAppsApiManagedEnvironmentsStorage')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzContainerAppsApiManagedEnvironmentsStorage.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzContainerAppsApiManagedEnvironmentsStorage' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Initialize-AzContainerAppsApiContainerAppRevision.Tests.ps1 b/swaggerci/app/test/Initialize-AzContainerAppsApiContainerAppRevision.Tests.ps1 new file mode 100644 index 000000000000..fea395fff649 --- /dev/null +++ b/swaggerci/app/test/Initialize-AzContainerAppsApiContainerAppRevision.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Initialize-AzContainerAppsApiContainerAppRevision')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Initialize-AzContainerAppsApiContainerAppRevision.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Initialize-AzContainerAppsApiContainerAppRevision' { + It 'Activate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ActivateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.Tests.ps1 b/swaggerci/app/test/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.Tests.ps1 new file mode 100644 index 000000000000..76091733858d --- /dev/null +++ b/swaggerci/app/test/Invoke-AzContainerAppsApiDeactivateContainerAppRevision.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Invoke-AzContainerAppsApiDeactivateContainerAppRevision')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Invoke-AzContainerAppsApiDeactivateContainerAppRevision.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Invoke-AzContainerAppsApiDeactivateContainerAppRevision' { + It 'Deactivate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeactivateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/New-AzContainerAppsApiCertificate.Tests.ps1 b/swaggerci/app/test/New-AzContainerAppsApiCertificate.Tests.ps1 new file mode 100644 index 000000000000..c697a62ba4d3 --- /dev/null +++ b/swaggerci/app/test/New-AzContainerAppsApiCertificate.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzContainerAppsApiCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzContainerAppsApiCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzContainerAppsApiCertificate' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironment.Tests.ps1 b/swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironment.Tests.ps1 new file mode 100644 index 000000000000..08a69601fdab --- /dev/null +++ b/swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironment.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzContainerAppsApiConnectedEnvironment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzContainerAppsApiConnectedEnvironment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzContainerAppsApiConnectedEnvironment' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironmentCertificate.Tests.ps1 b/swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironmentCertificate.Tests.ps1 new file mode 100644 index 000000000000..9a4ec62c52f9 --- /dev/null +++ b/swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironmentCertificate.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzContainerAppsApiConnectedEnvironmentCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzContainerAppsApiConnectedEnvironmentCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzContainerAppsApiConnectedEnvironmentCertificate' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.Tests.ps1 b/swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.Tests.ps1 new file mode 100644 index 000000000000..591c196d283b --- /dev/null +++ b/swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironmentDaprComponent.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzContainerAppsApiConnectedEnvironmentDaprComponent')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzContainerAppsApiConnectedEnvironmentDaprComponent.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzContainerAppsApiConnectedEnvironmentDaprComponent' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironmentStorage.Tests.ps1 b/swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironmentStorage.Tests.ps1 new file mode 100644 index 000000000000..dc5ae7a93569 --- /dev/null +++ b/swaggerci/app/test/New-AzContainerAppsApiConnectedEnvironmentStorage.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzContainerAppsApiConnectedEnvironmentStorage')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzContainerAppsApiConnectedEnvironmentStorage.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzContainerAppsApiConnectedEnvironmentStorage' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/New-AzContainerAppsApiContainerApp.Tests.ps1 b/swaggerci/app/test/New-AzContainerAppsApiContainerApp.Tests.ps1 new file mode 100644 index 000000000000..1ea7ec0ceb5d --- /dev/null +++ b/swaggerci/app/test/New-AzContainerAppsApiContainerApp.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzContainerAppsApiContainerApp')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzContainerAppsApiContainerApp.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzContainerAppsApiContainerApp' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/New-AzContainerAppsApiContainerAppAuthConfig.Tests.ps1 b/swaggerci/app/test/New-AzContainerAppsApiContainerAppAuthConfig.Tests.ps1 new file mode 100644 index 000000000000..80b2da78c04c --- /dev/null +++ b/swaggerci/app/test/New-AzContainerAppsApiContainerAppAuthConfig.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzContainerAppsApiContainerAppAuthConfig')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzContainerAppsApiContainerAppAuthConfig.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzContainerAppsApiContainerAppAuthConfig' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/New-AzContainerAppsApiContainerAppSourceControl.Tests.ps1 b/swaggerci/app/test/New-AzContainerAppsApiContainerAppSourceControl.Tests.ps1 new file mode 100644 index 000000000000..32642e51898c --- /dev/null +++ b/swaggerci/app/test/New-AzContainerAppsApiContainerAppSourceControl.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzContainerAppsApiContainerAppSourceControl')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzContainerAppsApiContainerAppSourceControl.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzContainerAppsApiContainerAppSourceControl' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/New-AzContainerAppsApiDaprComponent.Tests.ps1 b/swaggerci/app/test/New-AzContainerAppsApiDaprComponent.Tests.ps1 new file mode 100644 index 000000000000..fd1e0820546a --- /dev/null +++ b/swaggerci/app/test/New-AzContainerAppsApiDaprComponent.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzContainerAppsApiDaprComponent')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzContainerAppsApiDaprComponent.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzContainerAppsApiDaprComponent' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/New-AzContainerAppsApiManagedCertificate.Tests.ps1 b/swaggerci/app/test/New-AzContainerAppsApiManagedCertificate.Tests.ps1 new file mode 100644 index 000000000000..c41db0252147 --- /dev/null +++ b/swaggerci/app/test/New-AzContainerAppsApiManagedCertificate.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzContainerAppsApiManagedCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzContainerAppsApiManagedCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzContainerAppsApiManagedCertificate' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/New-AzContainerAppsApiManagedEnvironment.Tests.ps1 b/swaggerci/app/test/New-AzContainerAppsApiManagedEnvironment.Tests.ps1 new file mode 100644 index 000000000000..7182bba05fcc --- /dev/null +++ b/swaggerci/app/test/New-AzContainerAppsApiManagedEnvironment.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzContainerAppsApiManagedEnvironment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzContainerAppsApiManagedEnvironment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzContainerAppsApiManagedEnvironment' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/New-AzContainerAppsApiManagedEnvironmentStorage.Tests.ps1 b/swaggerci/app/test/New-AzContainerAppsApiManagedEnvironmentStorage.Tests.ps1 new file mode 100644 index 000000000000..9108adddf2b7 --- /dev/null +++ b/swaggerci/app/test/New-AzContainerAppsApiManagedEnvironmentStorage.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzContainerAppsApiManagedEnvironmentStorage')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzContainerAppsApiManagedEnvironmentStorage.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzContainerAppsApiManagedEnvironmentStorage' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/README.md b/swaggerci/app/test/README.md new file mode 100644 index 000000000000..1969200c6a09 --- /dev/null +++ b/swaggerci/app/test/README.md @@ -0,0 +1,17 @@ +# Test +This directory contains the [Pester](https://www.powershellgallery.com/packages/Pester) tests to run for the module. We use Pester as it is the unofficial standard for PowerShell unit testing. Test stubs for custom cmdlets (created in `../custom`) will be generated into this folder when `build-module.ps1` is ran. These test stubs will fail automatically, to indicate that tests should be written for custom cmdlets. + +## Info +- Modifiable: yes +- Generated: partial +- Committed: yes +- Packaged: no + +## Details +We allow three testing modes: *live*, *record*, and *playback*. These can be selected using the `-Live`, `-Record`, and `-Playback` switches respectively on the `test-module.ps1` script. This script will run through any `.Tests.ps1` scripts in the `test` folder. If you choose the *record* mode, it will create a `.Recording.json` file of the REST calls between the client and server. Then, when you choose *playback* mode, it will use the `.Recording.json` file to mock the communication between server and client. The *live* mode runs the same as the *record* mode; however, it doesn't create the `.Recording.json` file. + +## Purpose +Custom cmdlets generally encompass additional functionality not described in the REST specification, or combines functionality generated from the REST spec. To validate this functionality continues to operate as intended, creating tests that can be ran and re-ran against custom cmdlets is part of the framework. + +## Usage +To execute tests, run the `test-module.ps1`. To write tests, [this example](https://github.com/pester/Pester/blob/8b9cf4248315e44f1ac6673be149f7e0d7f10466/Examples/Planets/Get-Planet.Tests.ps1#L1) from the Pester repository is very useful for getting started. \ No newline at end of file diff --git a/swaggerci/app/test/Remove-AzContainerAppsApiCertificate.Tests.ps1 b/swaggerci/app/test/Remove-AzContainerAppsApiCertificate.Tests.ps1 new file mode 100644 index 000000000000..165e4c28beb8 --- /dev/null +++ b/swaggerci/app/test/Remove-AzContainerAppsApiCertificate.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzContainerAppsApiCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzContainerAppsApiCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzContainerAppsApiCertificate' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironment.Tests.ps1 b/swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironment.Tests.ps1 new file mode 100644 index 000000000000..6d9605567d91 --- /dev/null +++ b/swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironment.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzContainerAppsApiConnectedEnvironment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzContainerAppsApiConnectedEnvironment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzContainerAppsApiConnectedEnvironment' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.Tests.ps1 b/swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.Tests.ps1 new file mode 100644 index 000000000000..b2b9cf2a8d11 --- /dev/null +++ b/swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzContainerAppsApiConnectedEnvironmentsCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzContainerAppsApiConnectedEnvironmentsCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzContainerAppsApiConnectedEnvironmentsCertificate' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.Tests.ps1 b/swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.Tests.ps1 new file mode 100644 index 000000000000..00498f0385aa --- /dev/null +++ b/swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzContainerAppsApiConnectedEnvironmentsDaprComponent' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.Tests.ps1 b/swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.Tests.ps1 new file mode 100644 index 000000000000..8ba5e18b9784 --- /dev/null +++ b/swaggerci/app/test/Remove-AzContainerAppsApiConnectedEnvironmentsStorage.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzContainerAppsApiConnectedEnvironmentsStorage')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzContainerAppsApiConnectedEnvironmentsStorage.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzContainerAppsApiConnectedEnvironmentsStorage' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Remove-AzContainerAppsApiContainerApp.Tests.ps1 b/swaggerci/app/test/Remove-AzContainerAppsApiContainerApp.Tests.ps1 new file mode 100644 index 000000000000..f539c5ddfbee --- /dev/null +++ b/swaggerci/app/test/Remove-AzContainerAppsApiContainerApp.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzContainerAppsApiContainerApp')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzContainerAppsApiContainerApp.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzContainerAppsApiContainerApp' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Remove-AzContainerAppsApiContainerAppsAuthConfig.Tests.ps1 b/swaggerci/app/test/Remove-AzContainerAppsApiContainerAppsAuthConfig.Tests.ps1 new file mode 100644 index 000000000000..28516f58e5bc --- /dev/null +++ b/swaggerci/app/test/Remove-AzContainerAppsApiContainerAppsAuthConfig.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzContainerAppsApiContainerAppsAuthConfig')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzContainerAppsApiContainerAppsAuthConfig.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzContainerAppsApiContainerAppsAuthConfig' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Remove-AzContainerAppsApiContainerAppsSourceControl.Tests.ps1 b/swaggerci/app/test/Remove-AzContainerAppsApiContainerAppsSourceControl.Tests.ps1 new file mode 100644 index 000000000000..47985e6eed69 --- /dev/null +++ b/swaggerci/app/test/Remove-AzContainerAppsApiContainerAppsSourceControl.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzContainerAppsApiContainerAppsSourceControl')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzContainerAppsApiContainerAppsSourceControl.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzContainerAppsApiContainerAppsSourceControl' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Remove-AzContainerAppsApiDaprComponent.Tests.ps1 b/swaggerci/app/test/Remove-AzContainerAppsApiDaprComponent.Tests.ps1 new file mode 100644 index 000000000000..22a20687aae4 --- /dev/null +++ b/swaggerci/app/test/Remove-AzContainerAppsApiDaprComponent.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzContainerAppsApiDaprComponent')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzContainerAppsApiDaprComponent.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzContainerAppsApiDaprComponent' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Remove-AzContainerAppsApiManagedCertificate.Tests.ps1 b/swaggerci/app/test/Remove-AzContainerAppsApiManagedCertificate.Tests.ps1 new file mode 100644 index 000000000000..6257350d3ec9 --- /dev/null +++ b/swaggerci/app/test/Remove-AzContainerAppsApiManagedCertificate.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzContainerAppsApiManagedCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzContainerAppsApiManagedCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzContainerAppsApiManagedCertificate' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Remove-AzContainerAppsApiManagedEnvironment.Tests.ps1 b/swaggerci/app/test/Remove-AzContainerAppsApiManagedEnvironment.Tests.ps1 new file mode 100644 index 000000000000..cda663e14158 --- /dev/null +++ b/swaggerci/app/test/Remove-AzContainerAppsApiManagedEnvironment.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzContainerAppsApiManagedEnvironment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzContainerAppsApiManagedEnvironment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzContainerAppsApiManagedEnvironment' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Remove-AzContainerAppsApiManagedEnvironmentsStorage.Tests.ps1 b/swaggerci/app/test/Remove-AzContainerAppsApiManagedEnvironmentsStorage.Tests.ps1 new file mode 100644 index 000000000000..fe5c3d83e373 --- /dev/null +++ b/swaggerci/app/test/Remove-AzContainerAppsApiManagedEnvironmentsStorage.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzContainerAppsApiManagedEnvironmentsStorage')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzContainerAppsApiManagedEnvironmentsStorage.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzContainerAppsApiManagedEnvironmentsStorage' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Restart-AzContainerAppsApiContainerAppRevision.Tests.ps1 b/swaggerci/app/test/Restart-AzContainerAppsApiContainerAppRevision.Tests.ps1 new file mode 100644 index 000000000000..18c01d502a24 --- /dev/null +++ b/swaggerci/app/test/Restart-AzContainerAppsApiContainerAppRevision.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Restart-AzContainerAppsApiContainerAppRevision')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Restart-AzContainerAppsApiContainerAppRevision.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Restart-AzContainerAppsApiContainerAppRevision' { + It 'Restart' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'RestartViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.Tests.ps1 b/swaggerci/app/test/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.Tests.ps1 new file mode 100644 index 000000000000..40133d66fcfb --- /dev/null +++ b/swaggerci/app/test/Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Test-AzContainerAppsApiConnectedEnvironmentNameAvailability')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Test-AzContainerAppsApiConnectedEnvironmentNameAvailability.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Test-AzContainerAppsApiConnectedEnvironmentNameAvailability' { + It 'CheckExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Check' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'CheckViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'CheckViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Test-AzContainerAppsApiNamespaceNameAvailability.Tests.ps1 b/swaggerci/app/test/Test-AzContainerAppsApiNamespaceNameAvailability.Tests.ps1 new file mode 100644 index 000000000000..36da56b8ddf9 --- /dev/null +++ b/swaggerci/app/test/Test-AzContainerAppsApiNamespaceNameAvailability.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Test-AzContainerAppsApiNamespaceNameAvailability')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Test-AzContainerAppsApiNamespaceNameAvailability.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Test-AzContainerAppsApiNamespaceNameAvailability' { + It 'CheckExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Check' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'CheckViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'CheckViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Update-AzContainerAppsApiCertificate.Tests.ps1 b/swaggerci/app/test/Update-AzContainerAppsApiCertificate.Tests.ps1 new file mode 100644 index 000000000000..53297178c7ea --- /dev/null +++ b/swaggerci/app/test/Update-AzContainerAppsApiCertificate.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzContainerAppsApiCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzContainerAppsApiCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzContainerAppsApiCertificate' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.Tests.ps1 b/swaggerci/app/test/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.Tests.ps1 new file mode 100644 index 000000000000..490f6ab96ac9 --- /dev/null +++ b/swaggerci/app/test/Update-AzContainerAppsApiConnectedEnvironmentsCertificate.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzContainerAppsApiConnectedEnvironmentsCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzContainerAppsApiConnectedEnvironmentsCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzContainerAppsApiConnectedEnvironmentsCertificate' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Update-AzContainerAppsApiContainerApp.Tests.ps1 b/swaggerci/app/test/Update-AzContainerAppsApiContainerApp.Tests.ps1 new file mode 100644 index 000000000000..eb8066434af8 --- /dev/null +++ b/swaggerci/app/test/Update-AzContainerAppsApiContainerApp.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzContainerAppsApiContainerApp')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzContainerAppsApiContainerApp.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzContainerAppsApiContainerApp' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Update-AzContainerAppsApiManagedCertificate.Tests.ps1 b/swaggerci/app/test/Update-AzContainerAppsApiManagedCertificate.Tests.ps1 new file mode 100644 index 000000000000..5eb6d4dee5f3 --- /dev/null +++ b/swaggerci/app/test/Update-AzContainerAppsApiManagedCertificate.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzContainerAppsApiManagedCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzContainerAppsApiManagedCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzContainerAppsApiManagedCertificate' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/Update-AzContainerAppsApiManagedEnvironment.Tests.ps1 b/swaggerci/app/test/Update-AzContainerAppsApiManagedEnvironment.Tests.ps1 new file mode 100644 index 000000000000..8f480ffb39ba --- /dev/null +++ b/swaggerci/app/test/Update-AzContainerAppsApiManagedEnvironment.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzContainerAppsApiManagedEnvironment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzContainerAppsApiManagedEnvironment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzContainerAppsApiManagedEnvironment' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/app/test/loadEnv.ps1 b/swaggerci/app/test/loadEnv.ps1 new file mode 100644 index 000000000000..0ea394729062 --- /dev/null +++ b/swaggerci/app/test/loadEnv.ps1 @@ -0,0 +1,21 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +$envFile = 'env.json' +if ($TestMode -eq 'live') { + $envFile = 'localEnv.json' +} + +if (Test-Path -Path (Join-Path $PSScriptRoot $envFile)) { + $envFilePath = Join-Path $PSScriptRoot $envFile +} else { + $envFilePath = Join-Path $PSScriptRoot '..\$envFile' +} +$env = @{} +if (Test-Path -Path $envFilePath) { + $env = Get-Content (Join-Path $PSScriptRoot $envFile) | ConvertFrom-Json + $PSDefaultParameterValues=@{"*:SubscriptionId"=$env.SubscriptionId; "*:Tenant"=$env.Tenant} +} \ No newline at end of file diff --git a/swaggerci/app/test/utils.ps1 b/swaggerci/app/test/utils.ps1 new file mode 100644 index 000000000000..1990edd45299 --- /dev/null +++ b/swaggerci/app/test/utils.ps1 @@ -0,0 +1,31 @@ +function RandomString([bool]$allChars, [int32]$len) { + if ($allChars) { + return -join ((33..126) | Get-Random -Count $len | % {[char]$_}) + } else { + return -join ((48..57) + (97..122) | Get-Random -Count $len | % {[char]$_}) + } +} +$env = @{} +if ($UsePreviousConfigForRecord) { + $previousEnv = Get-Content (Join-Path $PSScriptRoot 'env.json') | ConvertFrom-Json + $previousEnv.psobject.properties | Foreach-Object { $env[$_.Name] = $_.Value } +} +# Add script method called AddWithCache to $env, when useCache is set true, it will try to get the value from the $env first. +# example: $val = $env.AddWithCache('key', $val, $true) +$env | Add-Member -Type ScriptMethod -Value { param( [string]$key, [object]$val, [bool]$useCache) if ($this.Contains($key) -and $useCache) { return $this[$key] } else { $this[$key] = $val; return $val } } -Name 'AddWithCache' +function setupEnv() { + # Preload subscriptionId and tenant from context, which will be used in test + # as default. You could change them if needed. + $env.SubscriptionId = (Get-AzContext).Subscription.Id + $env.Tenant = (Get-AzContext).Tenant.Id + # For any resources you created for test, you should add it to $env here. + $envFile = 'env.json' + if ($TestMode -eq 'live') { + $envFile = 'localEnv.json' + } + set-content -Path (Join-Path $PSScriptRoot $envFile) -Value (ConvertTo-Json $env) +} +function cleanupEnv() { + # Clean resources you create for testing +} + diff --git a/swaggerci/app/utils/Unprotect-SecureString.ps1 b/swaggerci/app/utils/Unprotect-SecureString.ps1 new file mode 100644 index 000000000000..cb05b51a6220 --- /dev/null +++ b/swaggerci/app/utils/Unprotect-SecureString.ps1 @@ -0,0 +1,16 @@ +#This script converts securestring to plaintext + +param( + [Parameter(Mandatory, ValueFromPipeline)] + [System.Security.SecureString] + ${SecureString} +) + +$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString) +try { + $plaintext = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr) +} finally { + [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr) +} + +return $plaintext \ No newline at end of file

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

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 z 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 literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll new file mode 100644 index 0000000000000000000000000000000000000000..6344999edbb35cb0ca89a042286bb6c6d4ea963f GIT binary patch literal 702400 zcmb@v37i~7*+1Uf-P3dIk)7S0nN2pyEP-sAnc2;;1U6ZY5D0SLM>gCbCY1Ls0RR8}Y|m5mRMk^Y zJ@r)8Q&;y<8*Z>1%d%WN&p&Tjp9bXL8u^|5XB&b$il6PUKA!&0Zl7*B@;keo_{s~$ z`!A^muc)4VasRnzZ`>GM+JDY@{nbqy`!CqofABFU^j{pj{Jf#|_RJoJ^s(zK>&OujE;1 z?U)j8Z9S23JV3ePkG$Dd!m>8I*1iLtl@@H{XJ3?mTf;k}YoYD$u&hief@i4TE?obV zWwk8MJ8utLP-~^t2JcMvvQF!%8?m6HMAr;#&ZH3yH7L;p4*72eE8BXAyUs2a!vb8k ze;0&k+ckO$>#y%_vFtFDOmGZ^1c^yYuYz88@-M z6)D@x9fC^}mxe!`T=6H*D`w9fL*!zsfIj|eUT3!1HRhALz1uBUvTp5E*K)n#xo~ZO z%W)HaH#n=L459>h8UniAtULH%PstMg?f`!fQPvr3t%A=>#@_-aH#-6N&SboZX-}DM z&9{}il1VV03U(sG+3QtnOd6hVZ!Zs|h12A4KCO(- z3vL3fN>aV0v~by;9{j28B>gOk09J)p>J;iL>l$Ji2QG@hyM6q@cFQw)dC9v`9Xa6J zz+Fg3N>dDbw%-MUNy)g>z09#L0!>tIRtaS^Uhjs&`qreW%(i@cdBjWK-km7#nN29~ zXLfsV8fhj{S?~6c9yqdzyR&Y00`>hvsY7qa1uMR6r$i&{q-YHCb*&-fi`J2~Mbe2O zJ73CY%00Fxf^}SP{Z8V%0yIVAta!XYg+(9YmKNDgC=N7>eJCMlEMbI3xIaRC)NGK@ zj}nRlh&>~OIDmkhm9#j3C`Sl!08xn$;s9a=5&I)sI_w@F#bTzl;RsJh3_nObxfjO@ zdkYe{{>`ZW(%!Z+ehVBSQ6&T|of@rmTDgR+i1gkvxr+)@^^*pzk}S4G2az- z75(xh!JWXAR?o3aE_XG1-`VWFyV-kBv-e%i-d)Y!chh^mebF4N+K!A>aPI-qKbrjP zurHb^jNRE0j5FaDhB|Hky+|~evHkZE+D^&s9q#OKE8bQ#1GiK~w{b~nj^p2pV8=lJ z{qU5|v70jg0C1Z5)%FY_jjT;}dz$QbbBaU3eISq<&O60*#@Xr=&r|0R_;RXqS+|g>{*Y~#>{v)c_8(%zhWEqt9$l}QkHG66Lop24#YO&!bg^%AEHrAGHdz#oRjQKx zD57WPw5aD}@U$kqq>4e(pUm{f&#@-*0~n=5pB#S!k>{YzejEuRfik!C4A|QaJ^{Rm zCR8NBfbHb{QyJq%r?_Y+=MC<}Yn1l@h+k!6d2th)a}_d0byOZOq_{wLjss{1**4^uZp*5V(j z?tZ$_xsc`_bRSQ*5&5n~#O$Y`i|IZ=+?Qf}Y4J}{Jk`TLN!`2C{W7|%Z;CX{RNT)| zwd0>=O%K>TJ^ne21jXp_&!tQ19K5h&$~qO-*)iz!l-tIC)?#^!o#1YOjNRjDGLDhE znYeDnb>nf}D6ZrAFV{SJ98D&9pqsT?k%#MFAv6&U+TfK+c8}v~3W--R@e&%(bAwkP zz8ytJ|LcKL!TCrS>~bv6P1;Vd1HO3QuU&OX z`~Ue?VOaZS5mHbufN?=w;#!0zh&;<2xopBk7=r|HhW#K~L7)FQ@Zk6xL0}jCrDi;d zD4uPtALXFjXOblfExGm~F3XJWIcrxBX+c-wc_@|*pTH)+t*G7nmls0 zfc;>Z&5Jb~~pPCYXiF~3bG<v_8Np(|~}HA2?{x>nJ(l&;lu9Yhy6a!Z*4|Ir%00O_E5 zk%wy?W%6(bvky|GM0Eb$=!nW`cM~x^6V70CQR zM}g9gPe8QVkZetqOdK%T4+O&h8uR5G;OlUNMA4eZ2>4A=+^uhY$*wW=h5jp`cD?IM)oWQj-vLLPK__KF9#&VK4kngE$t3Aq zfP^HI@wOgDYTreQ+|YvWwIl=c4Ex$ZXv-Af{?RZM1?j1_lb0=C#1r(m+-X|yn z@SM-sl|A!VVVLLHSvU9*(sd`g68?P<-TF)x>lR#3u!A2XV8uhQHGcv}rQ3t+r_FIa z89iHj+IrgU%7`8OjKN+x*X8;DLuV2z3te`XLtEJc@_&IG{N*DZUEV}~IhfKZPLx9~ zmO&#~Qfye(pZ5J{S&OdZ@WT2`ShvxEKiB^`XwM5CVh$BIco-0hUL5lO0GST9yVW}( zRk7KDuHF;(yoVlWHU?gHA10DrS!oA(@Ld^nt6zws*g*lP?KJ7^0E3M>{f8RqnsX|h zQ|!9_8N^=v;K^7`@E<`o+o&1r5XK1E`osamh6o`JAWn@C;sD~b2q6wMnWKT2)S8H5 zYdVHOk0L{9gO9-x62+in8FXtD^i~ED#h~LD^ouCymkc6`K^WL4&%=pg&T z1^T~Yo)?Kb7rqM6tI^lm)zW48E+}?cTZr&~%}hZjqL(xD#wD#2UMf)ORmGhPUk&Kh z=u>(LrALI)1J_=i>kI}zKM5}jgXyCwOoHe%(e=Ec+)|d;N@_oJJ;e=NS)O@cLcP_jF(5um> z`GQyGON8bNl|Ne*v-T=Ns=hc7a8ZO12M}jP2yp=Maw0Z5`4z4+cX_MW_&QjDii9D~ zD;jZnC&!U6#Cc^SPGNE!2}7Iq?)a4jE;awyVdH z!5Ah4$s(%QS9U(6X4rG3ChbDV$^w%00h8=W=7%=zTFBXg-ezro9-2qIbnURgK7e?k z(AB&KTkY|u!FWg^DoXPW{sL?~fxU(GBh^cwbPj)5=jX;pCSepp0d(1<+tt1XmaniAlMp z3w#DeDR)Q7rM@R}i!mdNm#L&>QtnW_qP42DEkX)ttcFTQau;D+ zYWxWlrIg&XJF%U~U4-pvAAy-R^nyuIGasE5mZJ-dqDPpz7y$U5u!%PDPpK}xKb zyx$A2A**@Hf>*Z-o6vU=;v z@DCB|{N$!3EE{*%Qfh~mldzaS!BFs+GD3u;Hbq=ckrc-#*TR&PYhP%asvqEWzPHXn z2|j}dxmd{3BI_58pibdx9et0$j?p^>W=CP+SR+5hkL~wRGy%u-Hf(>12UYJC+lO|u ztKW-w(cW-!)!D^tgK<$d5lnkJxDn+VO#2x3%9tH2NMlX_o4~8I!hu$w0Wy{L|0ym| z$zm;pb(D2Wk%+N}=50dzYN-^n-Yz=Wo+NFODUv2dGOCh&pcN(C_do_xtaCm^ij?7U z6nzn7I1UA3S1$`hXqkSV0)Wv2Q2C7){0qUY$jxMi9TcqtbeK(Jdf&1%)unG}xIFAF z80vMDAV-qoE)Q__y3w@irPA= zifw(N7vsS*EX3M+Uvj3l{&i4;I!zh4SK9p(swO!6cZU9`RjTqUU zwIA)yy3&!hrScd0Ff}u+WmtUdf3?QZ4N{Xb$?Xud5nWPtG)qmAYZb{!LfIWKQK}b5 z<(VQ%$`Lag3w+HWM{*1~qN9Ydo2lf%h8JVQGkL_M_l+nwGmq7t5@e7UMi2Hf4f#zw zKHY*?2|R?6d*m(fP!(5$Qd||G0-}n9P(^e`byaMPPiWZj@d-^-#;1f`U63+$ZN{gB z8K0o1q-gY1$uY*Oo1>W|o*A2FzF^(lGy?{ew+4a)#v3Axi%? zWQBrYmY8`_>FnwS5&v-sYoEn2v|N`lw&BHAfRT_MI<=|4C0|d>XrqeNmXE zE~8(hj4p!?bPJuyap+=ZJEgDcYNSlWIOf8Ta$|gLvr~R{lANcguJo@rf!E56GA3J; zakF&aO6j7HfIu7Uc*?{ifugddJDDzOlfF(T&9(Jm*T<zS0sbIB6jhsg4^>q?0al@f7 z+1ddgoHOnXh@Q>N=jRP4wH#RGq1_}C#!9cw12P&^NyEb8TxZ2o+)wE#h^<4XYn-I} zRTdO~n8cnzZFj>n0i43vI;>@Ie^KoJBH-b8F2qACd8P-Jv^9d~z*w9TCVpp=biv0U z1S_dey}ia;Oq=OpDsuR@aHngyKNsVW23|7x{_B( z+Y2Q{8Lf5!0-OpQoLiPQn+ecSV64)qo-Iefv-t4B`V&PD60#2nDPYWjLBh>Ae<9L( zLyPR{+gN+FoE)hyk6pg4tEe(+O=2Wv7=fioK8&873Mnala-H$kxj^*cvGHW^U>V6O z_uKQN5G8xQfyIn*C^5U5Xf@mzK4cYG_&DBHQ4G4pHcb9C-IGqSeN1e3X2eWAX5Q3Dpbu zDm)>cF+5k}c{84K@LY;#WG8-Xe=&Kq11`-Cj4+O(v?&$ahL_pZwzjB#c^<%X{EuM6 zdGTQDz=LQ}x)&M~3y5(oaG<=et^*E~hjnr@P(~0JGzZGN*#Q^*2FhrqTxJ|7&#?n^ zA#ix(=!&q8BuzO#;b5yv<_0LTKY$pp)uj)B9Uiy;Y3j)o0%!6xEoP5@z;xg@*f3$+ zURaMW(b8t7(TLqQ^n`5eU5rZPveiZd1BE_1a^0l5nGV^MyQS{Bm98sorz7DLiJpVW z>_kXvc841ZH6-d0!>Dw;y(tG#+X3cZ9;$o=O9nm@)?VOqi0!Pt!Dq8C%Of7zrfgVb zbhDzh?B=mB=Q>_8F}{=pqIGa^e~ID#)dp4-zSL4M8A?HFEQL^$QtZe4CYNG=DFt=) zKQ6~8N$@-bY$yvoDAonvg3L2mLvc7!&RmLS+Sg`pAvTrt=c27&ZfZenX+7B(mYNTBg#5+-? zt;tF9_Mn# z<+`#skO;ICAr2tMiO^-_d6SoaB@A)U5kzsOED=lCi;T0WL1)U6wS*`IIo)}j)Wl&=8F-XDf~zn;=HyIX9_Wp8D2?B_2Y#PV_$J!>c!gj~rGRn&(Y=-^#0^J3t|sm!@0I2T5VicG`^Xn&dp`i?YjG-)u_ zAx(j4FtBMxiB}62+kF7=(2+4Z;DcOh^=0 z-7#EYN5C7Xz6Fg&PB9aMrD#k5CBmCbgstx)f}$dZQr%9-et$K}j`F|6Jq#vCKG%~9 zc-#RvY2%TodeEL^Uu{$LnDSR&?x$*F?5FkuP(cBxg8)=B0JabSDii?QCID5(-ugED zO8whgi|A9N`P))lDXJaQn0e!2z5lhvTxvzR{jEUaj6f20%9U_>r8E3h&_eFC^pq1p z39S2M0%<$eZWEYpDZFyJf+_&5WgmKyMW1{^B^ zpJV_Q!!_U@2H@NoNPU(87*{pmRtB6X0iR*Oa1?MG15TEJPcvYzDBx`jI86dR#ekJj zz#R-&F9Dxmz}`{7oebC@0iS2UK2gAZ3^+pqKF5HODBz0>I8OpT!~p6MMN*?Lq>4Gg z7Z5CBq9Ztfk%JFKI68uJ1@{T!U^WDF1gk(PSStaaVgTh#M{ua%J`&;R2o4wA=OP>( z!6C$Lc@Mc-9dSjU^f=Cz_cCBK3ZPH=8)wV=7_cA;pilY~XUn||U>_m{q)$2yr}i;8 zVd6Noj}j*>T#?euoh|QYLYT*zkUr@C#7dG ztAC7~HkSNwYyhWbx?HTgzX=KL;AQx&bSMn2K#xCfDeP*TOZDG^5N!91zdVVBcr;Oa zz;T1~#Dg6eNjNX-1#4g|^aNKTCCCsap zaD(fZK+2Q0V0%n1&;JjFu!GIWBY5RYD2njoSPAquu!%7ay@?gIr$Q%q4t*F~LuN3K zMnd0lSVmzSZW(xG$L%@J-ooKbweesl_&xAC1acpP;~sXhTO|0*!95ZhVY~?Z6$ik` zbWCza4E{ixNo?#f#NNUoPnCI{6Z}!=64lma%h(9IwgjI!xVQuCF~&H@$}83=VM)(X zH24zYnZe+BFWz6&!JU8h9PK{WV~#Qs}_BV7h0!ONiNK^MYRM{VmK=*CLu1m?leURF15kVv1?&buV_3Y%l<2v}F@ zMWj6^p`8Y>iH4+%d{Rz_CuK7wf1@6k5) zk-q0&QHRrIP2~0yMG|9Cy6yv<;9WTRZr6zFPIaZkhD24Tq-#HOa3KyqNffRJWuW(x zmWHMrndgS@{z6l%OzHJO^W8#|sP1%ET8vN7Ov|W1nk^c|r!fkelD3aDaYWDKy02s4Z_o-=+j6sS9CkKe@3IH`k7BDh(6jZr2UoKhcUVDXD0wQ~b2rWR@d0NWz9 zZz?uwiRc2QC2G~^2#&ap)PNDL3KUqK0*H9(Ee}nfMad>ADJPo9IhPva zT!|h<;asFlvmF0sHYeJ$d!h}EaO|k;0SmQ&yPLF1v62uV87A(@==!GErH}QLj@H!% z$^F03C??aRm4<1vLj4E}4)h28oFaYf^&_V-Qhf^Z`OLDh?pN6d}ZMxb4$M z)w5t?siI@&+D#etwF>n${&Qa9@SN~!oT#(C8i8Cz@+Q285Ht>hHRFGhJc9U_BjVx! z;=dwJXIlrYzbVZ9C9BS(+)g^!T4Q`F$lKFAn7Q z)d(RDlixzXQRY|s9D+ILrqz#&bZ=v9c#nughnY_%WF$^`X#+P;d5OVPlvXlJODh%P zLYe;4xh*MxAnjh(<9h%nEh-Sjp!YI}UAE{w`|*&d`uf0fDIaZomX8DQv}+2CP*1Z$ z(%fs(a6T~YngSz`h4%waS~wtzK{WU$EjJLwp!*oa{#F>5H3gz5U|RkZaAV1U7$*7< z6Wts&nOoRoh$?NkoK-fFLuvJ<=C*ec4J}5C%Gl#aAs_#4D#tl??Y|L(EfBFXkR1Y?-6MUF9Y{<7#8={^utC!vd?>4zspz`%i%5?O0-spA1tyI}Dla2fle$ z`Z}~lo|V2b;adc{ z;SBfcL;RDcL+>`cM9~6f!M>hi8~kG4(QeB(|pi3P##41 z$5Bf`m-NXu9^v~QN$Z5TQ4ao<@4LmF3*QOo)#y`tMWshXlN=~tD3#EAzod1-`vkh- z2L$Tb^n1mf3*QIm)#y{Y{YsaJ*jaa1*3=FHUE8jG2l|e8I1tzcY+3v&rhQ!)aH)QN z9@@SY-5icSdH&;+W~00Z8~#2oJUHR!1S(&j6?ZQD44_w|Px;zS`6435m&$LQq4$8K zb;2(R^sy$C3BM@rTzEgASEEnqEmC?!_*f&#ls>Bkb8s;B+bG#m&$OS~gYe%jO)fBCU2ay6rKBTfo}LUfr;?z0<|u`BJN!HUw~eXKILV1<%Ni*x}QQ>Pec=a%Haq@|M!yC3I8C_4gV-m<@-Bv=fd9tdNul# zuCH{7m?GaJ4c(_DtrPx5pc_6TQ0e|z+_~^6K(9uh(%n<(6469=1Nc44(EW#`b;4%_ zy5VyI6XCxEV!!U6;!wf-UEI0wZ-8EnKFtVik)06{DwvaPc@sr3Q;-vCj{isMIIx(G zy2VUBj$LcZEp?m?Hqq++*wKc^=OtSw#G*0#v0rgmoe*3u{5POiqfc3ZjYd|8m{Lc_ z7G#1y*FTWJHmlGX_e0^M+~K&6`(cP`8UdNul#?vT+b}U&w$Xv+iV1? z&Mp>rF5CmqtI?zGV zWate`S|{8~pwe3*?p(MW(5um>^k93E9uZUMoowi>lC(~^TA-G9MBKS>A3(20pVAvv zdPGbq?w`Q(NFYGqW33A zS|>b7pc|ejQ0X2o?p$~rpjV?$>F%R+iBP(6gZgL2poU2tw;xV5`Qet3jJdcEz<{Ak{Ex}UZqDa4lh3(A6Bn@r>ixQN#GMPz2J~w5 zX+D_CG9M!JejVf<*?FfMdKXDrC%jmo*5|9loeM7n^lJ1eJsAC@M}*dAobR6-zOi5) zm(Lj{pH~Y_C#(wePo;b=5qB;O0KFQ0n$M`_Lxg|&WcfT~@<}%5bEe7XHA2$~FB9mW z!F+I^0(FuLF9q~!^l3hr3$Z*z_-9Sd=V6l%-aZg7&sip)n$UE@EdqV)J!Znq;?9My z1N3V2X+D^{FdriPb0_EXh{>n5IiIslKHG$*6J8wBHT->>EE1*}SPxHZChWQZT zpFcUDM@>HM&H0>T@_B>M#FB?V{}s&VDskt+*8_Sr`ZOQRZI}-c{soisdCcT9r#YW< zO+MENO>C44^e<#S*NQtAUIXaW=+k`GXg);v7crmbZ2#XN&v(&rw@cqehjpHBVi3WS z!uJSlx!w05#zri#V6^wY#37&aVlH3&h>%M|;sD}@L~I~MEHgDI3i?KS%l8rNe~ov1 z@|bN9+s{LK<6j3VWMJujr&6?Q--1((_MOGda0lXYN)pXX)aMr{k_`wWqX-jzVMde8 zjgyl2eTa;C^ABSMEJWH`USg8` z0CbG=hYcsG`xm3uVz*~XQ>eynKA}?1q9pWkY2|h9{9(7yUY_GF7-rpCna!;XT=kq>}40)9?+g}H0>*7W1;H!}t zm0@Rb>2Mm|8Q#K!lh1bbfcmmvJks`OxCGibP~A8~`$Fr8dxLfvw0FV8?Zcw%e1CvG z7#j4=6QADbWc{CMTh=S5%61TM}Ev+t&ugKWaWXWV*AR)smi8QF+B#`+Ol4aBpAf4tIPvK(HglNKdEB>D9ixBMMI|{ z?a(PBuN3d8D;K1SmC@fLajLj<^rr$(9eqFG2nIJGPalPK3Al0eqXKI~!AJ!mw!Z@6 zSalxSyPY@JY{6w}uHOs1xpxBVxUb!-j7HZd{)TS%#oiH3YyXKGFskj*z*x}hmU0EP zkQsSm0t__A=ru7sE&|v-X3ZWr%ZsLre4O$95^y8$o0?Q=ZT?V~R$t#xS{)0AajU6A z$g+$+UY>@V%z6J{k~v2x;+<07$SG4OjvPD%mGV(fnblLAOH{BN(|Oe_YcTb|apVoAEP~rr|c&VQZ-lNhq72TtyAR#W2;kP9)@Em)*_t zPw2%6Mi9j4A6qw%ya00_9xee9#-HhM`ymd@2kQ{5dD0{YK@zT+&0Y_kxMjHKZ)=NyIafn+q+VPj5j!Jf+ zpnVjMr?6v>RBvbTFnK@6NfOENUk0eHpybROq9w>qD^lX5QK5M+E*|(CO3GqZIUy@u zyv%hBav1CZ;RYK!4Ov_b_Y2T|T+wsn2-t*AjLP1c#KY6%6DO{iA`(#YKpPdPA^ zp`b0bsUHJFr6aYA5I0*1rd~?iF5P`S%_5VAur(qWxIXqmF;%il}^X*N~iU%G}xVJk@t8v zwPl>1#LF>eYt0!Se0*eB3!V`dKT%tnY>8of)Hak{Mcu3qjWoeH=f2fE7X#Ku zMO+uNsL=-^1!4S|4);mKy8zGI@!V@5-7oZvu)$#hhts#|2fs?w=;8P}nna_^OCJ<5FvW(*$U3{Lq0BeG1Z9p}XVDm9l=x_& zD8tb~Qz(usn}RaKQGo#wsTV&S$#`@L7w zSiiHl3HOx!%OK!Gf7cW1iS#j^s;sYuMtnBFW8EHt^NrvoH<4R zpOH6&#uqgV^@O4BwT*-vgi))iCIy+P8tNlwH-(9*9t9o3Ak~Ay*iL87-X>}?<*x+W zTe@~;!)54{H}7xT^Hj0?eMDmHHyobr zvNnPbBWNY(?QBgB_C~NAHuKzZz63EpqI){B_WBt-n+F_;ZTu*KQM7 z9$PmbjzK(24V>(zf3}C|W_o5y2L^`xvhNhn9$V)jJ*}td9;f))VXla}qK%GB_y*@X z#mZ2RQw)dZIK|U3QWp0dN;v5KabMG}evkr%eS;S?Oj^M^zp0m%ZHbB8h3EpXUg=tI zL$45soEw$B6R%s@bL9c-f){(0v+&LpohSYd>|!9baDY&rf5SgA2Oba0We>xHWTQ6| z`J8x`uFQE@EW1xVqdOV$n0QVf8uL()eMg|{R?`raH$%|sSFw2)+rqQa8XyYQ1Ebv| zM>DVqWf$AU-km&RMOOP%{G2GhgBL~0T9>o>@33N~#1vC`3Jc$&!DDQuFVd}3crKTD zQelxjyd#oqb7>%@`ckry!r818mBPtW z>SyF2pk@$^FA4WI{bj;h4V8jTX!dxtnyHhE_#_-Pz{C=znKd)hf!;J9(i^mx?`p&FC^%sX)WbdT4T8XTBncH&E2 zQ*n_k7i(|D)k9z|*=00fcIKK2Z_m?(E9_9Asu|w7Wbku3{}8Z-W%i`77sn#ZyOdfEXdCkKzCY;Q81n__Vk# zT{*{t1^7x2tC%N@yi0JKMs0yLfg^8*r>UwsqJHyv^fHqh@yPGk^?16X14;VFiI&*@ zi3(?$&tS5?35&Ecqbcv5ES^WtAxKl+)6|sF9J7qtteQHbL3VkW{0@kVi>q`+S>i4J zjfOzm@h}YNd7rDo1K5w&RVBuc_O1LAl;`HWbdv+|n$fzmF$Hb5CV)4qBvWJ5M+ein zy_bfac5Zjj*_6-7bwJI~xdjrmiLDV`*dV*GA?(A|3x*41DA4AO%@mDKk2Abxa#+EU zC3QJ;jfO^h=~8IdG~+`BZ%NAxjc^mGR9@AjF%+{*j=nufYUR%%ggZ6mk7|j__j2?| znF4k;b5p)v_C2|NQ)Sz$UdmR=)wxyNGK+dUcG#HxHR^gNzAm_56GQRdW($dEZzFwu zYjdU}9NW^;$6+jOs*CdN>0O9RCqha+mJdtoI9-U)&2&oXqK}Hw z?D6h{>Vr}Dlb$kQm>w}1?+jmD&+oJ6uTyRk&@{QkhCS`-?YY|jqjy~06N!v=T^Rxz zXMN}h7#Dnf67H`;E%AD}e<&P$FLJ_K0lO5s6rFp4Y*}Tv%*d=0vA*8*Ujv=yyTmwy zk%KM;dEs`OTU<7LVH~~uG~=5zhO)U24IMCZ;CXoUn3A6+<+|t%-|dbZ&3Pqu1a_g+ zglk|`)3C;6H*wQ{1N-z*IFw}U*bPoWRMuwQ>NSvHpT5AZ4Ri2L|1y+tpp3is3)T6^ z7_N0zcTmtYwej9%Zj@sldl=-mIqUXwab1G&?Ti*Sc~ova`jmVnb&n=4rdzXaX5>AX z@24trAi^vLx0k06<@7zxIi#u|H!*S_z7q9Mxts|d@KBg)K_oCfV8vGr)W=vkT zn;H2OeA5=MBiqqjypDSDI-=r*EFM;>9NUg*PD=(=`dwhtm9wTK?#^bj&1K5g%ak=`QX-Gc z@9v7VrfgP=)1}2h7O&!PGi`Tau%gO6KE8$Fb$4gG3&V4=J#_}T@0RWE9bP|$#l^vm zXzcya8*4cPab*6*XuI?R{^95sSo#N1qx!Li!tmKI%wtXzOL@#>b4IzgzF6g&Qi533 z=A)|3H>&o<^-v32%V;fcXX$ldmbnI2T=d)t?2wizU+9)@a>ac#%rSE^h6l8kV`j|DoqWAfW;CXP`} z1GZhz!%%#!;$sai<0D_OG>rG@m0@=3M=xP=T=yi$m2HXi;0!>}<=;wi9CoLSkK zsuTf7aiq{1c@jT3eKdNHz|zp+BR_(x$@*Cm&9y!*FNTbjz`?Ohj=uhp9HpBJUB(wv zB`}%{udZ@3ZPu{$v{9V3;?gz8F+xPMFeX%+iIlv`oO%qCtJ+Z`J)Ff)4OPSVADm@0 zu_LFAE_86P*PQ;~`lGG}^0)=wg^4TpY+Z#hT?2Idqs0^voA%|95yoqL7n@5doR`M8 zN>GuNctzrC&8~jA8Q-Q=E<9bAG@o$RPlc`cmI+j^#we5~pl3%R>p`x&nPYXlwT#Fy zUGa})l;#O0R*&TDpCjigXoF*AZsnd%v}%S^ZanEG$8;__Iw0s7Z@K&~Q zZ4c>|;zI~Wadi*V;c)mMWFILt*@|%j(+RVQ(h$Bxyj1enyS=dWGscx3?kIpSonBW^ z67Jo|Sr{?SQHRm(FWDuB0eLmmUz+xHdgV(artw(_St>)62jWpisFO7G@!nZ8k3y8c z)}tUh+#)ein4MlLo0=Ui;oDoW>!wltlc@om)0_us@z1TC%v<{NhL$-ChY!$xbZ{Sg zp&2;;{JeB!Lbn;kW5!CD+9ob=xS}^Ir(M0M?iMDn*=LwoPbQG}OX1`4seC9(_z>E{ z2VLOf-g@3Jjp}aU1E**V9~)jeAJ0yehd~J+LR8i8Rru6_b14M;HN8qW3q(Jj@}MCX;vGaJ zXS}C3d-sgI)vXZooR*3FG6+^q{>u(kk3SEIH^&QktYP|mauVGudJXy*-qU}x-05(_ z8wBdTq8;MKJ$gXgqsOn_^EeP(;ywux^?OB+MWQ^#+w=65eYs{>tAT-s9s^QTFP;g@a%-Q z2z0}n1t!8<1!}o=iaQtH2 zkt+62r-~7FF#q@;}-1Ttr zoQZu3Z41jTbk=`AVH6m72mX~zltqO?-hvmJ_t;N_X$+-y-(b^@V$UujXo9M zIu#!gD!!`e3AGZ>G$l*;p%ks2cWCndh|qPyj|z0dj|)tM9}}o~e^}hP@I!!JjXur$ z5Y3y2scqzJ&Dp;^%Gc$0EL5hwz4+94L#VK2R7R(oCd8MZY>U$A9q_G&-_HmyPWWko zZunV&%IBxVoeMt+=+)>`K3}GM5;2v}R~SC8jPi@|S-?W=bbQuge7-(Pr+i*+`23>q z;)M4Lbi)S(DxY5vcP{)qpjV?$`8-tlBtrRYQquEHRr)wMqhrZokmoj&-&cgD6XGZi z?s2*y&K2;EExPwi_+R4AgJ-NY62ah^cb9*~sOMQTZI%PM0=OY;&4AWn3Si zj>|=LC+e6T9|v>m`c7W2FudX{1bD-hM1gJyd!o+kH^iL_ad{BD(x<#0uDlX4jcjg- zWOE&}JQ-F+2l_eXD(Y>Ugc(E$wll$67`NEpf-U1}huakQk|^#D#=R0B&D|5W36vHt z?3QO-Ux?t#^3r+ZveIJ^#-NxYuhz61vD(VSO?0af-M294YEZj^bUR7+O1Pp#5#d|n zgvXiKf#r_k;p{VdYB!KE1afBoLU~_ler zMrrSe^Lmxx^&#QM2_F&Yh7Su=Ua<%*y#6nsSEEmPJxX~cVj5mw7v*1#8u>D`|_?w z|6w3pA0>oMA~w!9^XL>GMJlGHqU$o4l@{ zlGhH+OXxMJh0|frmlY}_34C92z0~81!`UYLfpCVF+i_IpVsx!TGvEO zQ`c8S8Q#YX*@m!zY`UNu;4+*{TM1Wc+6$-af?gld{V?gW3wjD2nsz~t!xbfp2scUL zswnZ)uI&v`(8nTv-%{rn7b?K7q>0F$Y%f68Z%2mw&I3Z#>ZKiqF_G_Y#*FkabgGqo zoQ66$=G&Z(d{PdEnd{>O0q2wfR^T)KD=-A0cf{A-iF5s{>1fiKH)>E+%BIp?6D9j} zB$}I81nHe`hAT=Gm7$3+K3>l}qc}~3uZswOE+TwOo$#&G5N=BRrYP|jm>9C5j5w#$ zaXF1Ib|Xe)ix!;<%s@038mJ{RNbdtVnhA*5viA$6$R>TG(P11XMW5t^zY*w$zZIAW ze=ksV`Pbskg--%{HTqPSk5OGFVj5lE9u?sMW*qhD*O+{t5}Hol4KCLgMy9RD9hx>8iJPk8%@N(Nk}lg0 zF8>(?!Ku6{!*^5S8=}OQF>zDSTcV(^NBq9M&hH(w^=!X9gm#M2l?9}p4EAyKo*?gBwQReTc%lyt4lKHt&;s>Qf4Lj*NQ>OnD zew}bapd0>MpqAxd;?9N70eUt1v@94lSr#I+Ea#j0;0q=7Cv>Q+)-()Dr4HKU0T~f}47L3~QLKoI)lj!|4wePzz?aNn0x-NM{5=B@fy)K*Y87#CUGh}Oi+{HN zF;pAhv2xqI*gIA@t+I=YLdmBPGMQcMSF*jrqvjsH(goXg@mIP$#{BRq5R&1?K=`s% z|1(q+|4H)vq}B=-geed8sfc?-#J2x-#Kx#6B;=*b!QG^@fhWM)>XWQuEqEIQ2Xt?5 z9DS;yziH2%8$(w=gfa&ANUf4JC+05tnglYTe9i*oU(>p6ClCwq;A>^Na1d%5<2${{ zx2N&VzG!KOrAOZ?)klzL#L4yBJ5}Da!k6C36W~>Q3}W(kmh=Dr<7a zNJWz)UiU1jbq=amUuRA|@Q=beQpkm^5@qDcmw1QJ*6iulbR#~ff>_SQM$fw-_x1du zOQt+89$F8SFvJ{NoXIbHn0>!1=hLod9;!?4M(T_gaO)43fk>M=Lb&6CVq0>(o+L_D zcFVVy=X&V?XUEZk8J^xb#kBtn8v?2m?=0e* zhp<^DvCK;oH5lkNgB}q^6@9erx7M40)+{zfK$8@l!H($7i%}j0(W=rnZNHmsQ2Cy2 zsZv|x7WRz(F`NQi2E9tK4d7gh)UfT#mk#jKWDf(J z&sY5Wn8bUP`RpFxgU)L&z?#f^(y&aQrPUtm8Ri%Yw$G0X`0s^KV%=gaI&|EVZ+-5N zHcwT`BO_)Z*Y7my9R`Cp|4-!3;$?W$;`>C>{3?Wh7nq(V6(<#J@35)m&%sN1j4~9n zS`Vg3?243q|7U1IPTtvZL9i#AgZP6Aos;8&cbDf(o8&lIa_#@$BzN!3lGFb3{3w5E zhO@}d_9?1L8j{0F#7vnY%)kNg0f6!Q@YAc2W|yZU>v3-u-BGQa(^5_2mW1|1A4Tt2 zSCxibMR?u}N`NwOJX#0XOt(jAeh|F9RGPP&sRO@VsvSVR4e7i<`>*fX{+xQ{RzEZI zSYG{N6o&6mHm%7@p|Bt%S}Vsxeg}0b?yfgcsmh{<4!?60?E|go#hHu?mzl+8oKC}b zmkt5CNo0G2j#IXs^E~bGM32#Bh^}#~jLBu+?99qEM7TsS&6b(AS)p|bXx+eZCAV=U z=G7PDjdM_slJ@3~{|dDHjEfh#<2I=lEMFYF!^0hp%!Q}5IXFyo;RfD1W$BWIvBj+@ zLVEr8??`pFID`Kyb1X-$r0KrbiahvTW(M5ivRGlUAr>oZFL@CD_}&lpPo}J9liTj{iLlgm~w+QZtX=yyM1F@PZ#FXxVZFBH>N z8<&ZR#rHx_gkd-3d!dul<)Pk}&Xf)o@AD{|c;N#58+nPYsDAE{+o6j;s z5BRNSs}*PM`1-ApzvCyCJW6s5l3>#DRZco8IApVV{1c#yi&u+L?ZGGEZW}@OWTk>n z!QGw?hSKN}7b!IKNTbUQaQP*Jm#Ssm;4^Tg1MJFrm6H?(p9QKrQC^CV#C(oU3=L8g zN$c^$9U1=%_^GrfarXLtxP%I#!{Evce*KX)d}AgF?>u-PN^0rnr-Kn@(vuEW5Vj@N zAxTq`ay9R*J(5XPyp%~=k`m%Rbi9a|^_e1er?RPFZ%`ZD3yumLt1z>%j9c=}?|&^Z zNrTG=UyRr-j~iU&@TLUIN8?^o^y475!r1cuI-w?fgD8@&X6XuW>_tb1q@Xii(ETPA zG@C4`a#VNkvo5LbgC7|gOfJ-w?O)?`5&H|?_yZ^c_Vuk6A1Ld0*1iKRZScZU{~I4Q@_p&mbc{olTi9r;_Z#S9@nNo4viuk0r{rwD(Y*Au@qs_IQnq?~ z{7WcU$i~R|H_r6Cu!QwPU9HtS!Kr@y7ttApsXCh;qcU}At2s8sH4vEv6RWe}-FW^{ z`^v+?-!0(J8EnB|u#`P3<``c_#+8*$um&uS{}(*KeFebJ0s#xL`j5Jtwr@m-AoYNk zZfU`}F1ihLZ4RZvi{P(g8xLfVbwD~ZpjXb%d}z_?pQ1|t-DpUJ4Usi@Rc6wIi}3DNyeMs-X@ zbv97%Fnpor^xUViNjde&t!m-5Q0jx7^c4p$l@eL9f(Q2&i5)j z58|1Rs_R17D*>@RVoex7aU=8aWBUg(6Uo$`@D63(U!~%lgsSvU#t*JVC1dPpPv);i zMCe~r;+IWL+-CQtW=}k~XQuF2POF8?B_BP5Nt_Xu*j8&uFFadJF%6 zCR%6zr?k>`Htp}byDS=`-q*6*HzW7oT6W9Z zX6!o9-tC;oeZ9Tg2P60Y*tgHX#PAKke5S%gQzK+Z@Bfmto zpeO$ZJgv!qqiFANcQQBujtUSQ)bkT|xh0Pqs~nc@-}MCxep^G}s^OTl@{^e^%o)9aeHYXvJW6GGb^vjg=43s~Jqdsek}^a^aTQ}mJ;1s3P6c+~{v0)r zGY-S{2IMxlpI9~H-$8|Rd+DqvU+m0Z52L{jeu=`_)gUSrzE*e#_|c0;3E?y9rfzE1 zZq)F1L2z{!u0%Z2fiHIEFTqf#{a5M0y{Lbdbs2;UwDoI1Q6RX9r<*o6U#8XpH~)Cv zl47_W`XqLOn!oEIgp9tT#|yrP9Jh8iOX+M%3ByKa@ivC|*e@toUgd4=X^wUdqkUhZ zF~mO&(YEHAOnUPk{GgGw)P&eDu^u z#b7T;PY$fbcW5KT;}G?PZ9>khEU~K#kb%^eT7nu?UI->ep&CCD;|=U2c`UN4&(yisSd$rdg5GHzF)=2Vg3MoHWE#P7CKlD1XoRy2Wa8NVMiCmJ@znEUOswLd?dcZAxVLL}$hqAK zq8LAgteSoP&wv{9{|CR_ZkLPr`p3^3X0ZBIX-%6qc(#>amTpcv{&U3PX9+X)D0_Ii zj`%Q;7d2vYt^RcXUPPFvVz+~eAdf1zM%kbyvgYwgK=i?8&12QQ@Wv*j zy=ySu8pL85OEKYD9~_UKCT4H8md{CwwTb-K>twxhtWJ^#57jw)1v^`^zMzwAMatxT z#eiMiXE#$3u}C^MtYD1AaFThbuIu|*8{aR}FX`9OXskWzy52jp zuB${b8O==6`c>OeY@_$=ODSdPI@u(o>- zS~x2uDkxcDx`@39Cq&r~*NJ{)GSTVvTUrO%YogS|UhD3Y*qfeG)DFl&g%l$MdGil~ zeu|O~LO*YrOmSNM+#6RJPxT)`YG=b3zZ}YjWE#<5_npx7XqWd^WxZX;aG95L1kjp& z6iG5hr#P~E!DGPGm+b^q2!6plWZ`OXH{59O4*|1yV`KGq4L+%c+N~)yFE|$Dv<=zT znc(3a)Hhv>>s06lFikVODd_0Z+o;0eaiFEA&y;&S>FHbDq%O9(g|WtYl`UlE(Qx1{AR#F$3a0hb6IK23&%SbO2rx*2A8j@AO zZL)gG@#>$D>0Od9RwmrcRu8|m-3U|M zJiHRB4_8m)Aty@gdHC*26svD&z>B>goOv+s2r_jbsr0j-2;!R4fq?IX9C$x%cUXx$ z1GtAkJqNT%+_`W!K(9uho&!1q#w5-`5uxXRs@NoZf(nUiV@2#1mF$2APc*Y>0zX|3 ze9au(E0mP3N$CVXsE1CI^oO$r{%E$qAJ+q?%k+Qhq0?mg<$56G=I~oXTyMvI$)^w? z%XAJMs6sTT~XuN+73Mt)OeQCcodsSfQS={=a~DGX{Qfw!qKL7RYT(B|BXW zKTr?dJjXFgmxz?k4Zc(lzGaG>x1=E;e3Orh%=7fnU1=IM`Fx#(wy)z*E%%uAFzM!3RppJBX9Hpcw6J7sExs;5h-$sd&!CgZ(;d1Qx8NQm_-j zE0{Up*@Uiq(9HKdn3t~f;fdhQtu;-52k!gf2I2=o$! z$&+?w6m^<{%2Dzd?-8pon~^LKRug)s2=cnw__hB^nEorF{a1{NyJ-=b>T-7xcDr`g zO$2&1#<2A(p|3Z4nx%Q3l&Zn1yJ@kZMJP+li9qjOxR>q&tw;ppOj7*_dP`^fGIV&= zFTm+vhJkpqwzqSkCA&;}TPkhI39)sBam@|)5|{{=3&efZVRa-zyhRH!v;_`{I~NWD zdNumA1)ilXkO*_~H9E`wZj;|?N$G^60^M+5fl76ixO3qMpjV?$sh+J=iHM!2)%#rU zF?0`-v`%=SKsQ_~Q0cA_cP=~t(5um>bk9+`M9kb@{1VcfxwCv`*3c(s4gJTgp%b%) z{%Y3Hzt0-_+gU@On>F-zvxfd_*3jR~8v4&!Lw_-A=wD_HeQegyr)LfQ{j8z?H*4ra zvxfe0*3d_04Sj0XP#)TxSz~`aYuaaL4Sjsp(7(4gUzWfHT7XOp|r3*{Ff6No5Z}}0Al7IQ_N~?WU@0 zS?@(To!+r^K6s<0L@S9F(po&^`PF!C#B&#(FXMR-&tLGsD6kgc!BpEi9?w~LuEcW# z9-LOP9>9Zj1nbXux*)KAJZteBiwD=6t!;Sj#`9r3Kfv=C9^1hOX7H@QvknhzJqwnL zbq$_d@QmDsAKTsa402BdmrBvxO1mP)pM*V7PV=+@BD%BF3>dL+Z{%4l~p~m`GrXQ|VoQljwR;PpA_y{u@Tmbh#5b z7}$NZU9L0n|1R-&Hpmk({#%Won8=;W_=!YtlZpRViGO7yJ`v+jKodaUo5-QE`m$ak zc)f}Ll*E5^BR&!1zf=0ji5zy;`m&Ht)x^iaGzfD?BR&!1zt{MwiQL(Y5AnR&#D7-e zs|70MC1U&!8b3Xe!){Pt7V>$6iH`*l(7&NUpNR24YW&PZ?i|L4q4*XPpEhXS0A=M8 zG5#lw-#U>ymGN8gHX#$Awyd#EZQ+NAaa1wo(>9S?#rSQBAT;s&CB88mNuP*uEUz$r z`$TS(@!J!@WhVY2iEk`V#wTJN2TB;fVu>Z81<(! zj=SkZB)}ru9B)nwdRY&B?#Mg;_5AaEO;a=haQ!6Eo7JY?if-h6=zq2*F$MOa_~nc^ z^S8GOTyT5agEYqV+tPDjjMu)5nC*ES3K+%PSa0c0c)`;sL^g53vOVy_@5L+_>)Shp z55shh6;`HkSnn?^WD+aybY$_ecz%K`z2kxv_j|!JK$XagXWb88__y%-*P&>O^To{d zT##G*;IS@vdj#rq_u@hwc}xS@TSuPQK+dfr4{adl)se?FkbQOJ`UZ0TbjSsD}IOrv2j3Z%)Gp7+}?qoU=hB%#!bG78vJ2?)+?BD}z zfpT{++n_fku7rVJ7voSz#Ie?{;XDlVz#EW71_>dibg%7y0Y$>suPH157R;U-k}tfb z@(yGQa3}NLY$^&XE4;!bwYCLDk-PZt!uk{OHThUQVlj}i#ERiKjGRnJkD^rI0St@` zPG)`p6&kVzN^GMEewSJPG?u2Q9HKCw`sSC9-~@GpoFEHh!H<{=2~8IWYa)X;nhJjt zIrP4^Xd8}rH(18CDE}QOW(C`a-(hhFqHBu~R>4oBPXo$aSp=##LYeD|K+RPYq%QXZ zDdgY*lEQ|Oto8ceR>C+S@D;i?OkVs7zD6`8z&7clZ9zU+UE{(YlUQ$TkhI{+cn-pI z1@I>W!kV>UmsscmtP-B(czBlZ06d4_ISLP6OJI%Qz%&+$Kg*2l;PV8rH5s$E72H1q zUW#MK*J1*$9L7nQg{>a5ux0BSR>0{OjH$*NSHQ_!b3%@zcq4YSs11FE-JN`Ve9Qf0+bF#yrF|3ohsf9D`F8XQOnGSSq5=-8=#xTF`3dZCVCw_?=(9kJ*~SLnwlgoAihMippnhS5Ya3Z*FSd5k zW{*X`hfiG<6n%~$_39v(6S+XkdHLDdTv&^VEylh*Z{vJy8(PyZ*B4c`?+=2@xydtL zq#d_U;+(PQx@wl4vnu}bIn|WmIT{w`sS6;f3xThWmvnO z7G8lZ=b=i*24Q+~g|LeYtS*En1uPZNL9piHj3+ z-6qzz+n1+YqDHs(<@)Pua(SI|QhQ#oHryI!e=5w6P8aL>d}VuozP#=`VUuF>=Wem- zw2==bO(mr%Sxd7=^u_=x6N>z7HElH=nmDg{%MUPJw}G!@4oPs9E-vk9by-$U>5WW;{k5LlIMX3nE@@3N z4Rf@!j7`w_Ti}VM&az^n-yfSw20`?0F6%-kh_&e_~%{>K(~mKdDGLU?yd_YlGUG3_n^cc@mZbZrS!T@t%lD`jR}>>f)6 z@M8e6RFE}!>l&5?-Y-=%{k_!tmIJ+?FK_F&6k3<9EC_v@yuY7@zUe^ko8@giltMq} zKyPhFaov@?k2%o$-^ICgO!B_sfHhrt5=;4J-cLEun-d4c_@}8i zV~T~LQTr5QsqHN^!-$36|1NK7P|f>U2YNqS-qx3k^QRr?{d9R-*C_929O(T_d0Ss9 z@8=%q{XBVFA1Ut_AL#uOdH)JhpGJIT26RXAJA>av{962O;CDN}H}m@D#xEo=Pl z$8Vb7)%>2$?*;t05i9diem~;(D}GDp%+~NbhuvqLWyUESq_aCv zMHkNr=P9OXl)=VIyPg^UOmxq|PI5Vq8Cu9i4#xerpy#aiDI_8*09O^w5r z`yi!UEIqxjrGj%UkHePxAeCJFs{~sLIM)z4Y`G6o$i=@-ur+*6N6v>;$HiI^5+@pk zyJpJKmir)OT&%SxVXqc;GVVRBDlYy@g1tuA$+-Ejin#c%2{vP=MXp_OoXCBU8ZQ2G zg01m%I+#AJ5-!%-mH3v*&9xhj_90bp@!u2dBf&NeTsqBB1Ogsf0heN#{w==G5i#{! zY}1kjqy6N3{ULR4pEccE=LmjB^+vlAWX`5-Kw-kz=o(t0q94XrV^(SwipNndb_gc?MuOUcUKnL_5kd{$Wi@PLS0oW(KnlGt<$%-0VwdABq{y$mQrh($N*b(Ph*; zq8S1``3p5^RObJ?EX=Bd=+=(yMY5fytL6pc*7Z`&1Gxn{)A${}r=#WwK7HCl+D` z2gO>liE@F*-+Mf+TO2r^QQfiLwO?L?NuUG#?o0fxQ7TZL&=M4v^L)v(%h66idnAd9 zvq~JiRRqGG^CX#lUiG}2G?0)(rU%eURro#K4)^Pha#{WE*}g4Ywhjw7du6va z2XGV;LV9Ax_}h%ky0pq0)+N$$w0qO3i!UtIp%YQradeV5quf++x>H34dTBfLZg^CC z_-M+x_7-1jW-$90GqbbTnMpepo5fZ5on~J;dktndBbTf2k9HMa09WBrDkl+Bg6*jT z$@{`2JxnFszT$L8a#9pF{Dbtl6m^p6N9!m6$zlC6HWYIHOoNtPu}70*f5VelojV zPE+_X`wfc4`d}CjV`2YeJc5~=PWYeR(+P0y&YUgFj7^zF$jaBb(AJ;Vnu4;mEAw<^ zZsg;|chPLi2POeoePGO&c^^E_6M@62+{CzN(RkUvBVH<| zb&TV96%50_5q#!zrTL2whd8;DpMOv*>b!L zYs?$R9ByTmH2SC#ku3#%_0?!DmjiDMl+Zg{;(XwCuU?*Y(l_K-qVV-ZY%yY{S=Y7r zLG&1G4ZY9fn{>$)N&&jP^D#dF&p|V1L3o0T96GU+Ltc_QOOxCQ(6Fvl?7c@we%zZ$ zc7!C!r)uViQ(QhNu8qX?LE@@#3`Tk0SLXn=@*D+wV7zjeqnLBYQhwTd04uDyd@p3G zQA*Ft91pz@K@YuTLT@yo=jY>9#$-5f&zSCIN{IfTm*~=3AwBC-$Q;#7%Tr)?F{vHo zrLxt5zxNmY9k+b;YHF$ZsyqT6R@WR~WH*DM~d3*#K?IXb|dU(V~VT;H4 zgz;Lw{=^CgYmDT|F=LG4u1hJaoTm%&ef2L{ISw+kFqylc!<~*rPFNjHz^TQIeWJ6} z3C0ob8WWIXF#8hd^&(@j<+v*K{whAq9*Vo+@uuG^28w$zUkC~>e7P0WaPqg>6)>FV zzKEB5em+9ii`A|6C$uMjgm9#Po`N6BKlja`sPi<<=HQwMAQ<~xF}jb z3Bu&p6P?Vlg#Vbr2hkZsqwNLd9-#!2zor^rM+J%MmZV%1%ORF>wXwN|(yM+Knx>VOBY^D?Jd?`ejud{U5td%8sR-Z!9#m2LNwQtJ%~Y!w2KGDHq}M3 z>^%r!V-LawqVUTD**Uh0(ZkNTZb9uy?9mGA#tXEu(#zv7K8wlgV8V?aOUA^z9jdkc zqu_pW0d8(>BAnGiyUveLkI_)y3GwCeCfVc7d@I{It`Kd(MiwN#$Kzr!^pzw9eXXyn zAdk}5?oLqIhhRJ#HS2O?dWm9fX-6)7t@|C521=0QqlEIQ4%L@-5CX@XqZ#xN9ao40 zbG}#9s4%#7_rL_4KmxiYrmywaPE08)R$aQRbP*2A3eBIoc>j7vNiT~}>M1Rw;VX|EFp9OThSzeoOtvc9apfD1h4MKytYZwi4 z30EP09Mx?0-!$spAMVj4^&Ajr1N{u@#mr|Uw_TL`MJz6xW~_*COn1|l<1#kK>zrl) zo?F%*^lVwbKi@uAggmzk0O(&KGElH%=s>9_oP+Uf%YX((?X3=5J&52kHBM^Z-@&Cf z6p?`^jq;Na4n3NBOky|vGG@cU8j^hkCiUn;bD8M9bx9fzPS z9iCeskanznAzm~-8q0hUIeZp5`14}gm1rBI^|O_-YYoXVzehTv@gbcufX{3U+6pNC5QO;%A>|Uyax(d!tq^}Y{Ol=XSA=i zJ58PM?s#cmg3oSM0*$jcYn55{&dlgKoYFl$1<2jXb6qY~uS|gFFdx5?6YTRw6hQ-~j_orS9f?3f zZtrlZ3g+pbdVLi>dNhLAD-W1E1UFz%u*FR!)z%J3YomDHqS`G z#ga^f#6%^!G-X0fR8N8zXT9h#;z4i|khNhWt_>T`(y|26bs*puMh}6C8kNQ}&9g4U z)mWS@g(D1vX!>?Fk8xj6kp+Ryt#*AnOYV^JeSB-mDv%_$hKW1 zB%*?zjyE(oH$duTQU>o6ViwO)mrT{c6Umj&Q*MKKmE@j8d0x$H@|cNHm-^8v>0>1- zy{h0vFNKpBHJz6;SeAU1b1Jy966uY~LP;e2S)hgg)j3M;&( z(X=k6@>r|l+YTt-O1<_ZwqA!%QtRIf(cRL%vNY+&&`iPA_m+~%^ho$DhAXz8xfnQA zv$GAgw|V(j;C1F>nz*ZP{~B~?pP5B(3!2_CMDl`abHBDaFX0?C03Ws3qM)*U3BsE0 z3#!HSgM6lr5#svoqZ?NH{q?e!mt&w%p3D}ig$)GDSEl>(xyhf6)_mqJmvY2W80wJ9 zlVK_AkgCP()*Yqnb`_oM)(v$xsj06xGb8)t8t)Vt9Q%^DHucUTNFE^e77YKTRGQSTbcGKOB^Yv*n$`A-`OCIA0zv3~^dv z2Tk4(rx0j$mT&s_BFb3q1;hQN{_4a;iSL;c5#OsP)@-^1hH}0N2h+#A%tC&`xdt{d zYD_%~2})lsL0XsPPG>eUif(y$0CM$-#eADnCsu|BG#9OJwC_Y3^?C|Re|57;RF$pp zJ8-PuK0Q2G%9aM#1*O4ZD6;)3Kl#Pdz~(-pE@iJC&TeAwT}G(g(D1unkSXy@fQdC} z6cfj<=gd8RS08_dvz&SS@mQACO8M%_6JAbYv8}}&|EUK#GXj3 z=OE6?OR+gYe8cNXZ1m?gY%#rk=k#z`UtG%d0=QZi6+pf|I#jgR0-IzacL@HB4zPsY zV7TBCdh&5x&xW`P)2e(N57@3+NCfNELPw9FvAI#Dr`}ARm2$Z(gzaBxKN8>QQGB=& zQkc;-DLVD|q^zWzFJ<8Z{FNK1c`{F7%s@U=Hk^^oK2D^KV7Agr&!Tj`t6#!j=d-L_ zcCqdxrp6;J2&U91EHQZ!`P_QjKJyzyk4C!+euFSoWy@M zB$upym^XgX>W6;ug4LWVb$I+S?-Jmob`12Hx8?81IuFFD)XD{F5Y zeObk!yv;AxFY>|{a9hmg_5C?2XO7SI{`%3m>RAGuD!}~!lylWb2=Fig9t**jhOs;WXakM`RwRIjrWh*|z#meKRSAGyOO8ghkU;KDQL4oR^6(B$Ujor|%_6Gy zCycdS)4#LjdOICB#?)7a7qb8vmA#rlt3=);0z~_&TI-DyptZo z%p_e)6G&%5RxKxxOFKA~1oGETTxl+B?%<@^Kxs_)N%P_O4o;d8YdSb-PMpxeNwY$2 zjZ0UW7h5_w)r6nUJb{`} z1yzqpV9UBw;IRZW)>B0i(DM0iiBCW)=6lLr0$VxXE%pg$)qGDePhi!;d{4PffyMcr zLYe~m=6gzI3heJr>Z>CuaG_$N5@0*L0k(le5-w zzFyAbI?gx9c}B$G=$mdS$5ZAiRLtgTI0=$v0%Eo zEqbZ|C2vlw1=GmrWhPNg1*i3w|Y-v8?qz4`I%yVM(*n9`Z+x3 zlq1vCEiN6`3ZhJbpBJZr8t^Yi^@MfszjaQz)Cqw?dFz}qiV$q;O;W%~GdT#sJ&rE6 zDK^rJ3L9I@Pm7p7VU?@X+n`dNa6HU$-iJK+w$ReFZX4v4@#}(c<>X!A%5}@#)$%ULoC^BNaQh2)Shx;vC|*TTJkepR z9Q++Y#mJAx;Y99)|1!ZDH!t8+!H$V+SlvBU@+!0JFXt#C6VXi{2ge_sP8hg9S*tRN zVA#N(2fA`8|nr5Edtu5!*ui;^xbt}t-^~(xaMgkDX zS3Y@t3e!xM0}ZhpFK5Bagm~#B9Fe+gIhYsX8&!P6#J5=Sp$RnVDb0tbf=wBHL0}c@ z-Xk)5-u1^n-0+J0p0`Sh14)bd;7*JA?q2XE9q@Yq*CwOKQ%Sw}34CiG^X&YQhJPVH z=|JjXnS;5NTI)($FK_QvbiA!=)sS`WJ?c5X)KSp(6SB;2QWVC$h#7XcB*Wrz^lWEa zu{gu_wI>p3Ir=xg^}f~{pqlIgG5LA+*2GtkADGl*7Ueppqogn%746Z4%4l0uYPfdG zL_hT}(HQEbQE@apQJHa6=8~u@Q~4w!X}6wE8lt^w!JO`gkx%BUT|O%lW8U18AP~*+ zVb|u|Tf1r>YUdtkkW&B>vZ_^qm59!KP z<#fezdefj_Y^_q;5?XC8M|<#2u!aJY2+gC(a5y`Zwb1L!dB?Otl*@hAi1CP%@?$vU zDIbaQpnw||FC^4Iv?xF7Sa}LO4&@HdO3q~ttSARNtV|9c#7h16L-Da7)VjqBsdV{Z ze@moy{cc>1T&+zHRGuk8?K}d&J0m-z8%a`q%aG@i zf3?est6g5y*QD^?9IE$QW0AAQ0`@ImhCC-El$JXu`wN}2yP?ow%FpH7PbRh-#iOM! zXZHnsgY*Tywn$hEFz8bW7wCK|=mTgn) z0D!>rMSu}qV2?RAmoMfb&YjdjQ*E=U5tNrED1)7v2ir=|_c8V7#Tp5hPhxE_i4AviVsCP+G>~?-H~z6I1r;`bd@?bC+JZ?2*U_o(DQqJ49hfA&6 zsP{u?LEfo-IYi#APsLxDys9_v9^9LETe%kLWs>Tty*alr4H~UKW?{~aEzG$-g1;ci z6yN3BvIFxix-CIKsqCueq4Vr+lF`kxb2@o;o8Y~9w$}hXc{X=&o+YWeswc;$J2`g# zf*d=gC&xA(m}A-K8OpE~hl=5Vgj0&y?0j%yRX#NqQ=Vlj+q`OhWg^~H+oNw%zKY?} zsbR0$JQzH&JUhD0OFN(GAbL5XY%ZrCyo6=Cxo5)KjZ!Tn^hUQ+cdfgkf?0nx&Ek$9 zJ%Laa8yKqmFu%xrQ|%4sv3aI6dWmTE_GPyK=-2h@qZ5_-Q31`G`j~R`EJe4P=<4MZ z=$yGAZSZ_8Mxj-xIymP z=q6aqUmM+w5j|JziVUlkK@dGJb;7-58rmDAG+8|SWRKrAs;Agaf3~)hdUvx?o&>Ncz<1MbF1gcj&RHMGbRo{?0y4o;PxXoP|H8 zJ{h=C;tN1;j0bL%XpT`Y%nfFvR}l>(;~q!rJQwFO7w0mLxS#H^()vna4hEHp2BfFf zbN$=l6VM^dUVQfI7ppsNvptJJhVquV2RT%SwTFAiquAXEVb9NvMR%BG3}wJ=p1*vW z5tM_hbdXikg%m;;SKS6uwQrj9Aul9x9iIWF;_?}k&%gKjEJ=Jy^0~F+gF_?7)q8Gz zac1Xb*Jwb~IBq3xI}XsOX#ItW^`(MViv;`Tp_h1BZj4^yH-E|)Auv6==4_s?a}2tpN`p#<;X$>@fw%f?KwbnS zdNCh1d4(=zQkkxOx8L$5Q7^{u_Vcwhu ze-~}|r99ZOS{8#mh9SI(eQe5KHXQi5)f}SE?8sNI+A&=i+kxz-xzLBbwX20mkW#R0 zYOqipqOAqVwGWoE1&oF+=5E6HTt14u=J)`b;LQHXBMrn8r z_OS||eXNTWynP$r-DzO7M%}>iqzk5KwBc5!AHQ6oyyz9?xLpqNL+=cnj;X(dkFqo4 zjcQLG%a}cC@qr5?$EaCm{7OEFhmnl$FpAobz&y_W5_-`=tTl!gfL=vN?Pf?~2wloj zPG6nS^{sx0a6%W=%>hZaPW8#?@ad};c&;NUcgo{NeHfy+v@DD%u%jndKMpICVWOAou;yj#8Uel4usZJy*?`ST2c<->6GS%le*dKQL{t zH&)1RFLTO5UJ^>SncUy|5(E?<0im@iGbtr2efB7*AHPA=-k)RyN+BgCexrbg5^ek@ zi(GLZS`NK&ujxrdDu-y7NjoXKZ!v1{Nt>y0-VfDg8Vijb2`d{QQmn5J~E7@<)Qs{Y_C?rlS4S4xu+TKI*yURc++3Y6+>fC`|hCjABz zSSBZuwo;;Pq-EBX7|Zd%^4hhXYWEImrzmVjDVA(fKB%Z7m~5C=bu@9Mb?xKjL`5 z9Z*UcpPt0J{vwfy^(bu6HwrpeWteuP%rN39arl=6f$Atk>l6N2@8N>0v#EV2DLI{- zP}xhPIz*Pn>KoP`6sua@f7U*`Sk;`@?nz?pmL%%)VWPeM<%l||^hsOONb{(!Pp5MNd?tH#Qis&$m`)dt^Cv6w5l1a44Sy z<`7&MD$Iw(*-qA3J^}r}ot*q6R?cL8N-?&)8JV`g_ zk7#Gxp9YarQnR1I487UUVtB2c8V}u#6^(N^Bd_Rle7KrQJ_+RWK-gdZ1&sC=`HVzg z5{~L(F7p`Z|5)_rfr-P)z zGmIJeM8D;OFytT3^uWauvHlKYp-3!G73a?t=kM`XoPQ9yH+!#)VD^s~UTbuHT5Kf~ z!1--`1u_$$u8ViM=yWCXK+$M9N>1#ue2jC`W~ ze27#2;f&zjGA#d28NLt4!pJ3Km9hU(+!^1+y$F-IJq)jPaVJuhVR=P9AEJ{_0!hkP zfXBh~CC~pA{Vd)}TZjq$oQz;LkKwf*--$-@G>jSfLwYqSd18=z5ve(0w0tlMVJ9 zIgS2en%0Qr+_3Q*FN}@=-`ayRxW5LMp3T}0G#5cOL^q^%!_t+vn_zzfPB*@hXpJ~- zAIY~b=SAYb=a`(hiI3uw3-nNTV$Vi1$cm#1@(Hc~Yp=!HAH+vvbg4%X&c;g4QDZt! zOJF`e27n7Qm~9jWvw7pWzj70~pdRLqN+LtoiAFWiy}jFs)^X>e246>fFzAh=3H%N{ z(p&VRb%vw(Vs;atQ?t0uZVWhC=QH0xe!uONUpE;}NPQ-x{`}#Egl4fLq`VVSJ|Ax& z*2?x=#}-clh^EBQMtLPk&iyM%&Rdd^yyeq!WMzYj=)eSXu3Ge!;53oag*}%v{;oHT z|1bIePje(XmS__eSEPIPj766l2Ql|yFFKAOY|e@9Clj@+(&t5+_(q%gFnkkaL=VN= z-FX^WxlnGveZ1gfb00$SRJ%EAhhaFQM-7Niz^BqaQT}pQ+9%2C#wZU&9=}H(?%YW? z!_!lb^Y2Vc+#P;=GU1}%pnn{XPr*w43d_;&anHXi#fneG<9a#W`N}H}Lw_{60iqkD zb}Rmq$SN+fcQ1@gPOJa>eY^XQv{aA{we2)`=?msg$H>NK@D1kJZc&WSGV9rV!<(;3 zJh;%0+YQb&pRIi7Uz`@Lx%&`lbbny+dFK59S&c?6J|DXuU%Q=t?B{w9lhi3R zR6+L)YJ3sC{XGYd3@`u-t22w(SCX5%7zA{O55yP_df?j}{1U;l<>B0>mwN1GDdqNQ zbG^IVf>W3AgYe({DFlxF!NM&B*c9t<5xi+ETS!$V;AB;FD$JD%)&e&k=R`H!mze#* z+;)&leNG;zor`*~4Dnqma6zvy;b%+cm|_Zl$zCd{$HVbRD#2C4SrT83kz{C^ z^peZa-ssajEe*PCp;oo${~Wj%2JB)u|=d zUm-c2K`BXU(0~K!4Z&g^plXrMf6aH>Q0q>MsL-R+2v?_ecM}tx3CP;Dti6SxcCB?c zndIx)LYGJL$E1yiRcqfhXO;L-Aaq-`E>?7}nm0OoH+OZ-o195J*OQ_5s{M2|sYcyb zg#;v-&oa- zF~q&L)j#?jy|S-&mx|4?1#SD> zE?|EAc)pb9xhHg7U_BAX!sOZ9gA*Vwzph`HUn89kv6F-a+xHK_J(sQgP0TYq?k${h zI=$&O;?kezc<<*hZKq%I=l%@_UHSAJvudsr)Ioo4H{M>7G=FZUxG@ zCYe@CuYr=gH}H-2@L^5v!x~&!xj-pwa}94sFh6<{(*eCz#6%(oc{lcppA5i__1qYA zr|0XzDyTk{Z}c=iQ2mHeb>lJAoe5n*{dBG#-0{zef6>>IsKxjhe5xl*t?>0$7g0Tn z@7!HbvouD}##v+M<#S{rjlD7_Or5w#Sln-uUiR@(oLu(tF&Wuej(rBYX6+L~(wuLA zj`>f@lbM^KQ4FJ-G5T^hUvm>PtVR8@{22@H7G*bmlyv1v*?o2kS9Oz~)hZ6>3iP`u zdQ`WgC5Y`6rQH0@>J&bp?o_X5vEdZS&b^5{G;HGfMlAcock3>VTksv61@kHr4uV#PfA;=61TltOR2k4+=U1nRb+D>6q`XQUuR3U z>>OYW;&E>BxI^phIwMJ%PCk|cpma$on`OQ2S}d?1u%L29IyKLrPtcp_rEX7BJSa?) zraomU?71;c`>xaqxO);#rJ3#X?8YpUQGXaMCZd7%twd|bb$JxZ9*8PsZygSK1M2cp z$U)Pvv5LV?XqQ~%q8EW|cO~3ult&<%rpX27o~QSb+7cek6CG&o#RM{`zXZ$va3A0H zO9k5_pXf&9+9+|Q0MDz5YRTO=R|+^7;oE~A*}2b9ShCT8Nk;9d^htj~E_0t&X$sme zgHU`MA38gg0Jh$$)HT<*H?MLL9YUSw4kr7v;fzXNejjK3O=+DCbI~9{F3Mg=u3LZX z+narVwK6H>qGy6pndH%g_A7{Ipu*xlyDd)1H?z6?t&J1d$$9JL{HAKMZC}DZq$WFE zT9uWV$Huo4Vr`h;M^P=4Jacm4R`LYH2mMBNga!U1O4;Vp+|69sQogmxrC5~m`hYz0 z1>5teF-&c%OY%rJ$*!z;nU5ipzlmqda8?j?kxnt>b;4nMST)LA!fz-s8Ty;Mnwac` zHuuSiSxn6PCFc2wc{XPKfu7wXzO&}p#oX6n?pHy6CFzvo4>;sW@m(Z0Q)M%0dd+00 zVg9PucvJfq)mm#N+2uaUHVrfv%Ndg#1B-uGdRph;WBVC;-h^?t|M0%!4m=IR-CW|t z<9Ed~KBE?=IBwbAXBpX_3(A3QKpKmNRSDS6!=Sv#L^qH14pMPz^eVo!rK%bE`f_Ts zZQ_g`r;Sfxi39HSCGK=|Dep*4{%0vzI@Q;Dv65i}7iI|-NHyLzgEsp)Lff3sM2z!ed8ovyORk7jXJ^tEzIQiRHlVv#9Ka~uS++{88SHs_KuT->a zOlmr7UkaGh{gC_#stronogfVNmHL)WB^=5z+|NFeWOQBXTUQA{e1T%Lg#8rHes&LW zB)^o~K)uJ&2Dc-FHZF@t-eNC^QZKU|-YES17 zUlH-NUkhgYb$s@yt!no%1KgwL3?<8FW!QM`QsScqmHgK2l7aT_bcf!>u0o^r7J09M z8XKp=kz6!N6#ZSjNxrKDi(U^_{02TfdXz^K&wYoDCv5#;@^|#aD-_)~n$3KhJ|68vs#6JXZk9}&+!wJ+px(dfPQ01ynX0m{{YIGP z_J-`HrwVM{eJOMb3SA~ak(G|3L1AZ1k!MkDnen+bJQ+c zg|Mgu`NomVH{UGZ{(PyALLHh`qy2uy1Mypcm->hM7-p3EIz6^#qAdzrG80|w=AgOg ztzZw-C!NlQyU4D;0w!|Ne;9bVmvytxvPGSGzD=I~E@9fXy(!uW%~cPapZ0qN?m!mP z1NCKG3#PGU^me0M?0V(ncK|AHm}$Qgb9lfsk;8-e_+4@?u5Upl@orgBAI!XsVNP?b zG>G*-uwuMb10U0&9tBcqAn}RcBiCYg`R9l3=`SsA4>s+SvL^rw%65*zx4bw!YR+@N$j6O)MJ45kLB{IOee`u4>i1 zDJcsM?B!8?Du?^KQ|3e0;rCcwQhWAT`1DklT5C6^ZAFJqyDQc$MYy@9vG5V%?Sq9x z8IrPKU@zBAoAc<)rL9PKM?@8@#~&rU=|(?7-2TG26D_5!!SE*8$3SiLN0*T%KYkj4 zYu!BTVXhmedp^#Zv;#Pn&rzA^T7|1R_;=v{gvQY8jP4p z6`S;&mT!GQ7~ch;;rSf55oq%>l+%IUQY`jm8`}d@T{bS7C->dF%Jh~&S5!TEAMt0w8gJc=wK^JY z0nWOJ?q3Y;{>3N)()v!mh|dbCmD60c1Qy^ibgI%T2PWRKTFOcD>Nq21S3o_UsJTH?A#b(U{;L9n%EC9Ze0?Y#7t0}-N z0KS$2%mU!+DZnfMzL5gV0^pk|z$^g1l>*EHfboW7%q;4Q+?m-Nd2ie|C+0p64p$h5 z%#=Py+8vljRgXj_dz3=EojTORqQ&nfeTK)usulI_-P94agh`FgjKp66PwH1wXpRKc z)t6USPcUS{c17Yz8yeU>_<8tff0*G08}gIF7TOq~wd#J9zY)Xl8}BK9v+tmzb^ur8 zX5R^5fA|sUFuq9Crb}6q@-w5XORFUJqkl=vCFE`-fwiy9@1Ps80bHv=oRJDesy*~+ zOVAZ5kT(*~V|2!lSv#Lt5dU8mO>ahJA`RGW>!o(Q8^K!)?vmA%o%zpo;rE9|pS$NY z7mKmkuK=OP{whZMYkX3rlCrDzZg1}Ez?{O->B>1o{0%@(A71n3zS(s=-?K$K-`3{5 zxwG*J68pDODz#@PI(O*o>;_#xrw8TRhe3IRujfWtdG+r(YA6}UDFL%=} zp99l=QkIF&O2&?Qf558CQj}h#{{W~e(QwF=aiI{9fZIAr{%13f)clCQ_Kzj&)_GLO z*6Z}~HZfB8B%J7BHGB+sNS|piTkqCqX!F7_20WzCPB2@a(dVcw3&R-jkUmcWv-J&q zjyrx~nCIhe+2`H^d<^}NVIFh>VeIpEY~7UZQ6W#HQ9KcxmOkI&)5RHYZ8-^`ecptv z*T>Kg5oV7HP;INn)3kOv4i&cE*`t;58aeDglfBjT=13YBj0&0}+I;pn@~fXRyLu0q zc9V2pdwvh$9_JqxI`36-{!3ZNap0euIgprz#C%9%_B(Tx8MrZb;GV%5Ec!W z!m`FH)){oBq5o?^=;bcv`3I(#W%S0M(#Xy!y)*@fq@li)j?>HBoLT;Q*Oz+SXuR^j zQv2YdmGwnM)radm4n`TVnqOUmRlLO+n_y0B{dnIQ?%hTkLjDRDRQJComLejrUu*LN3IGp))@Jh-qrT8%kf zSbdDl?e!~KV<%@GI~;66?~-Y)cJ?>OzSh}aE_=h-5k{sp>Fi8#GObN!ug|tla+d2` z=Q+!xTRWWPO5=Jm%Tds&2NtSFPYn)cM<)ucM>+4)3*=A&y3T>tBY;FuE1aNKbOcq9 z?MH~Lb-hFOM>I#;tZ8^DFra%fdpMg9H#|BYZbv_oX)4)lLMtbgMRYsTAGG}0iq{}2%8PtCOK2;@?VWr|oXRUMy<}B`6N_{V%5~0}f?r-? zM`i8SS>F_bCr@zirL%^**JwjexyZTX<_MUS3&qKC+gs=)jGQ}p+bw*x<=nS=3W*<7 zne?Lvz-`fM2Gu3HzC>j=`XQjck$&2#Ak2=ix$6P|Ia?bT=zU71ki5^bJhN2&*+$!5SspD_NY-{ls(UsYdI zvoD>!3zKyzzV6+u=g@HT0G|Nq1AO8|)qhFC%NH%EKl>#!gV}jAv$J0|(~G9=ey35o&Bb>gtK3FmfY-j%;Na|n%S4meibvEk<0OYljB=} z9=;2irL>bn@WACMtLZ@)MS48L6>W#xMge{PEmYO!;vl%tuDyODjfyT6A6n#4)Il)Q z6Vm1nkec={=}{Xg@1=e4+!m6FznU3~fS zP9v81O#aHxm-W1B@tSJc)>vXLPs|n0Z2uM-H!9tAE@^OF zN4na;V96Z-er6{r8&%%!UwRpnEXgQF|El{OT3b$W5{X%z3#*H#bY#!$D<{?jty}SR zPS!^DmpK>aE?TiIX$X=X6893$*6QqW+#3}^g>h4LVEgE?5G&Vs`7^bi<*nSl{J0#C zh;Oer&#}2btEQ`7do~9iCNJCH(Lf))@QKfBd$F|t$fpMFKXn{hcYYA^r5u*p ze+Detf58lA^zGGW%bm}H2#k?^5Szd01qQ1RR z7jZkpt`hEQ(y*r|Pc@IzpLay&CwpK{t_Syy1SyA3vaE3syN_=haeRkGf_@A#b?{c3^xx@$!C^T(f4 zQDj`JAm@@hzxH$I?3eTQ*7>6a^Bs`$l-)~yhvEa|K{@w)>eX}XI>EVE&df*S-#-0F zIhUC8*_S=>%!e<+Su*EUuYJe6e=vY^$ecfaR&eB}pN(_4Rvlrp0+$+wo^DSdxy9|( zhhh0J7Yx`sBZ^hdvpTC?qsBB>CtPJjuclFQD~bOae!KwxIcoPDeP=cLdx1h_p9sFE-ErczWPodiQxD<>Xg*>A1CZ!;=`k6SLZgeQDVPGEq8sh zpLq?Koa#vFG<;uetlNFyyGB45KV-bgguzi<8sJ_<|d>)v!hZJB=o051FnKu}2lSEq=K_j%U1$X

N5Nj%m!^G=6>tV%8j6ca^nWC%^(OWgrH$$YBF^k1~bRR>A6!@GG@`K$Aq%h9TQBD*-U z`5OGqzmTf+k~LxR)xssdT+LuoD9AY_{j6~qR1MxdZn)xVpvTh~QMC}N8j3gcrnZ)? z;X|I(N_29RM)XlBA5+2|X-ea_&mK&IXitDvxUD-=zgEzl`65ncz9CUm#7wtdry~BX z;Z=lIxMde~XI8{X-<@^uoa-Uv8c}gR9adwX$dmgRMBC!k%S9tpBe`IEsxL|vacUg3 zn9e}OG_vJB1b}q7rV~VN$R?Q-h}Qq zv?*0kk_nWg^}l$!$Aa*BWZu4SkX9)75Xvf$w~~Nlg?OyBIYC2Wsmr{QWn0+tp^n&06EKXG!UpGk;@1p8vs#kgv9Cs}my-xCmE+n=A5L#o8D za6}jXDYcXmb~eEndWb0{>s6W1gQ=v7kWwPM;KZfUf$7&^>Z-b=Ol{^nXf44Rw6gsP zvrNIqLJAE-AVFHOz*}@$(Lp+ishimnI`(f`sZnLrppI@!V{Eru`|`o1;Q&IJ)XJ`J zKmI~)eOpY#^MR5H zf@bfK6J7DJJ}ZN`?a!daAOpUHR{ymCRf{_%Wp9+eosr)Lu_AX2T^c>B)-OiU^0hve zOHkI*0P;*P5YS&t=e`bH(wY^LY9y{E#r@8H13uGdz6K7#5mh{qp%Hy=*{wC08qxn$ z74HnAMG+d&%kHQyjz#AHl#VeJOK6Otv`@z}WGNDFWpR0S7n4GzyI8F0F7!z9ld1Bw(ZqSdPP`ctjlx3~f0F~5FN@p#BkaznZq^GYx3q|OopFnOp6G+(t`*tE;jy_I!M3O#BopCzWWxm! zEE^>UCW^G`$fkx-#l}sShAm5smvSES@T{+Q+>+Z~bo(9kA;DI;O} zphRjS0nt6@^)B4cpJ&kcTbfCcWY1-1)R>G)$d}XTSFE_LLZ+=grd128Qp{^7wS|W} zaqzb^lWc&`CutSIYJBSG&e)7sZk8d1UJIE)4K4|H0aGK>a+YbU;=)}CN^x>tw;QW2 zab1JicDSRwVW59(h-R-ebWXG(-A$>(9V_YQV_rJZdqcmsr{A-$4Ox=ZZXS1@t>)pX z>PZlA{|-n8G?kFI(5H3>Hu}Z{?glsPPhM^}bNdg`o`2seJ!hU&u1AIUkkLY-ehrO& z53pp!oX6_xe`q|`pTQMEmM4>B9$)jsEIILP{%U_msPXaVaY+20#63ao6-!1&NhTaE zINXci)ZQ4dQo!n*EN;)LWe}yf0&-FAJ=T3l$wul7e6%${Uv5%w>v(vX_!`_Y1(3F> zg3IobUKY388~tSXzQp9udk$_nS*V5-qDs^!tLu|hT;heH|C-35z1`DNKMDrvY(*TKLxJu|AITK3(b}NTHy>5d56&$TZ1{}UaTm&X(_#}pZDwU01mU;jo%3zi<*bmhshqu2H+#tE}kd0R}bzQvr z`!N!UXpea1J4YERQg0VX5#^c@d@WZYK%aaz_%m}bNIn-UCnwHul2$QF%L*`Q1<*22 zQ1gNDlFZI1 zK}l)ehnB>?DB~$^YmIc2&=tW$MYvAw<6z}t-xjS$eml$|5lqZA0rM^Save@K-xm7D zTrQ?{XXUDSNneKqE1LHOwkaN;Rv$+PRA9>;BI!=aSd1S^z6fZcWe<&>?=s^p6@JGhg(WtpYnVQb~C;e zxC!4&34-rs9*OwgIxD+Y#f3*;h-pCxVN}@r1r{wHj}+KZ7#!~I9JpM8!nxhI;Dn(p zPGiVtmr@dI8+l%`V4ccPfd#yX|G3+pd}zQ~9jha87vfkiZ|Rs0@Txe2|}4(%~a723P}rw9GDVo7{vq? zA;Ln)G317IthbKC;)V>OQpe-;9gJqX)qQ9@YfaQ|UKT}6dryQ5(VS?V#gG+sDe6XlL@M1s%!<7OeC|cHdj_FE4;R>cDpLs zsmeO72$t1k6;v{%0*_U)_ly!TBb7$>IZLVVYA-{!_W`-GQ>-sLUo9gzUnLdERE?qd z&gv+RJxEQII7t5hR<--#yIH-$Sooi;Mg?&KVjg`M3wYk&QC*AXk*%s;4pCLjv#Zm! zcHgiO;mh93o9%=7s=8Thb`h_zu0BJ-{FmRRb+sqesxQBOa1+&46=+mf=kZp@FX;5> zPTOFByAe*rLaXJFCk|$KWqA+R%Hs}C!syTlIf5M)geMc^6{fvBkWUbvLOAN-;FgE! zx7!XR+nla>M)UP_C-Kx;K8*k&76zP0_A9u`8(gwBf##RZ)}*uF+zNH<2$o60&N^bZ+*Vf*wZ>fwgC;b z0JYC>OP+DFJW5j+02A(u%Gp@Ld34LqqqTAGmDy)^l#^yiEJr^>;!y?dy6-{3?fq@q z(l}_9P@*SfF2q?@@Pf>@0_0wh5p?u|45hOrw6l}{sE4w1DHZP3_g#P0Eq_ilu(!~= zXXGw;cgA}UC2q5KXHll5A?+y#ECa`N!^z(~mXdteMJ&$!pvYZt2L5}Cbu zf%`{tOH6hT%$3RpowP`A1-WX&+e|-7zqJyJIq<_u?6U2W!VAWI5Z4(1($Aq62I*sP zrmh0pcPN*BkwmEJu8x)EulGi|ypwjL)65D*F_TsB(N_}G3w`vNmo>%9uvqe}#%0SS z`QYsLD?9gp?p3*Y?-tN?(xX(rYK-sWh=Om{8N@e>tgCUA*zMsZc6)e<-4`CDTL~{v zayC<>J+DFsuT0s)>+zUUq?tN5UKI+jvI=-rl1+FuES9_zule9jc`dldS(z5_8rM6j z4z&S=X$?{EdLkCQvO?8{t0dh`i&*KCa2ISz`VRht0{%{x<*ylsKXNes6bgT`3iwl! zP53h`mb?>x`QT0YD|iQo6|Bwq>uLO*LKOU+hUNLACxE|74AS3V*T+_*0Ti_%ke)yc2)<;P2s2nMUPD7jOnX^$cf5_F1y$p@k@d zF}cE77_eZ#&W^y&iR^P_H|M%&MUzOeB(g|9CvXsTWDcJ`M(PYPIExZF!h2yo2zA-7 zK6Z+;pzs=XKKBvXI0(=Km1gV6kq1|Bc&)kzT`{8BAAOI;k{5RbG5)q2g@<|DUpTxD z;6B6q76x5Mkn;WuG{nQ}@qtQsw7%i-)$8Jfld_q038`-WXZ~#g3kE7eE_qtMH!!=4`9WlD5Gq7-1!<= zEguTWm2#%NDZq?KXE9bGo(&-hpNCX>-^!x&4ahBXHDLuX1pidQ;u!ahxJNw?!37{` z#f|zCk}eDsJ&kLEwD4KE*Q9PDvAuh9vmDwEc?*tcQBbncqTo+t`^&dk6#N;rZv$-| z)QZreplqgs86(+CEJ_EaTZNJ%A7YL@Fe;h`wla9`b2NnagU=#;R7c_?B-L^oiNgno z8t8*tl{{=Gs(b_6&orJM+_IVEJgk?bNk4rR$x=F{7rrQ=+QGX!M3}a5+$o1PIp2jN z+WP64F3ns^!iZ^3+dU|zS?_^qMd-Ah?2c+~qbp##G`w3VJ2UMC9+4(CQuhGV-WSeH z3irxasr_g2a_H?o1&~utMqPFL!cmD{V^}xm{KCV0o=0oX+NSI_u3!Z_&oQS|8hUi? z-ZlK0h|(Fj`*Fah4q|ye%QNf9GvbrWt{6TxY`EDflOotF(ki>7x~>zS<>3Qh8rV>) zCk1mErXCdGalPVNP^14(YMt)d{hnIK5CPQxf7H6d>ZQ58Rexs$rXh3!p$V2%^PnEJOimq;H+SOLy_G@M|VK~dL2>puPnDn zH(10mdR(JU1P_O{OhNc50o*l!nVQLm%U_T7bJbW~kM;{Ww5#qR98td{oZ3})lWcz> zI=i!(32oSL9f-N1fC%lXlig9hO}6SP9he>w%A$r|-$KAF5kRNfwfSWxDwzIaFvP2k zepQo!fHq*rDoKxm_VAZrYI#$AQg#=Ek!B>Zi{VkC{Z^TLaB27$q52MG_2ms8=Je(3 zAut|3?g2D+{R(BUrOEMTqLAaQSje$ba~4q0@&vG%y9h)Pm```e^drK&-Ao1h9q-ol zv4^B4w60I$RM#h6%z8dQ8LccBm)$MP-(b%t`e8|R24ryJlL+PsWfk;$N(CPEdrXqt zfv?p1w+&4GxPprqyXkD7ku;Ub>1^8(e9(F)ruFTSQ#wcZ27@ybuA%e$+*-w7cmSo8 zTg|NWr@T@_5JCGv+Jg8$aC*swPeSkyL0{sJj~RN`-i_I6nzHdhWyxQuXTqzpqVU3_ z{9!AapWZAsyPs~6Z;0Cc(Ka8+5_%V#n{i%Jj z3(#H3uOIHHeKJu?y`tc3w0jRe+Y@6BwAXvH0p^g7w=-$CqTZqZE!R@Q2SDgPj}Og` zXFf8!I`cQPTYa>yQPY(P^7;3LMg-v}6lFa1Yub#IIP|W<+j#E-5;YIHGWX+Tc9DGb zZqqf`+zw9vArR{Q16b61JqCGTO+BM|OInh@eJ%BCP-h+#!kP@jjiQD#H!sJXA*M>X|3uD-UL@a!}SXwkO^vlWU`>d zZZY9JFn*5Dn)#@ik6{)b?^VO^ikxhvpaKUk{OTeuA=ECq$7TCVSSXiYQk;6^L8013 zC%fR>jS{gfts7_tbSm=DgLw$1mA>+i|+ zjSrDsbOx5EzK)`EU^Mm=fm%wBhb73VxMpY>H`^44Pl3FCUUAL#iSRdaDzKs`d|GbG zCC+XjKR>2>UWB9Yo)`Ib&x_#(PV>wIX-{ZCl;dxRWyP_Eb)08#+ASw7MP#0N4llj% zK^(@#r7LiMi_K|CnI8Byy6l2`#x@%Z`+itiFc$uurF$AvW8p{D53hq9PH+;0UM8zx zIIL9BaJYffrQe>nZWi+trA|kJU9!&#iAK$e$&OC5+2oIr!U0Z#1G@@^arLt*IXf=B zS!_x8TN80KuUzNu`h9j@xx~HwLGEr$F%=J=^RSu^)0rhN-{*;nt;j~&Jlk@k?k9j#OE9Cq~S*(706ks zvT~+A$%S0s;qs|q#oY}-@H}7QHMMC;j%*Gx;>ucsyn7`epc*C!hAPN^0 zPl+pbD(#;tT@(I}f{nr+N1WE%JWrSwzhA(PUY1ez$p0_0{JloV{|R+EtVt^r;mhi% zruq3nmXd%3eMU3>p0d}KJ}vs_d^QN6*gxgVvYT!cLN&9ST`fDyhwkT2eVT0|Ganp% zlf7PM^|e>@{d@(i1^d?%+D{P4@C~An;aZ8LCi6bNApI7mB=@%Y6xLaCK3q_ovs3Jp z&XTjR?~|M|MRI?Y<*#W%a!*E*Qz(*?RUkPf$xF^t@UGIQMIVxTPXOO8Im^!S=_I*) za3r~Gzg^;9eIwUzzX{#~+4*@Zi>cDile`Drmq;5;frL9JgVy^Gb zIlp6e7`*-9;oA=%szH=1c1L3VWZRhAW)1NJVs0i%-!?N=HZNU%Sc@PI{&~#(bpm0t zX1G1RikWV=&F-`I+?BYw_*b4l+@vE@hYFa#0Flo*XkC}Gt?_&r8?J-G%6&Kn=XxEi zyUK)fXYx}sr{UPU*h@=29Od8^5w7#1>-qf{x4w1!yRQ7S&yj0LoLW36_?tLKaq?Zh zdtEBw{;-G4^Y)Z^@8pTgd$@a2iap4}@7c{wO}JzCe0xE{mG5Duxf{%V+wKZ^#>`JF zq~x z-Brcu9tpSiyrokT?wDeQ&!4F9op-BCC0(~t#hwdHg*$B5Z)R7x*Cu~6JK-)IC!D`K z^p&~Y-PMUHE4#ZLizlYKyKd=;gx8fQys||h7w<3;JR3(UWX;SeE0Zo4bYva3;k$H;ledCZYAcQwd2;WXjC z$-FXmYj=~C=@cNhcCQ)b2aXyIwGE48K62LR1^wOh9)iCMdJ?Y5C_HRQ`mBVzeb0%@ z6Yl*M#qQWeQo4VuSLXJO-9VG5ai?B1Yau!m;T7(Y{RGo*oXmxU)VMu|DmHC3q`oBG zW1!o{sC~LzFk{W#dVq3#X-fL6-mZV~(Bl*C3`!^AK3gpAPDGNu-4hAHH|;9(s1szq zW_f+KK>Yr}IJye_33vK#iv4rTRBF*h)QW@~w@7tzjhVZ2+4qzhcj#^^mn3F)S56(+ z+Pz@(>`|3hG?2g_+Fn6D!vUuOhVuQ&u*-g|w-c@EF z%5k8pJur66K({|;!Y#KFIoQm1prN~a%*>x5&xHH!Zo*l8u-tJopIh+C+$SPwjI^?z zXSH$f$tvsZ_LRBR9GR02mpNodnSZd}=69pit9&?0l%)5SdGH7by3iPL+FiWYXJhSS2%Ut>Y}i*0q-~Pbd@2e5)Zf=gPh1i87D1mfL!| z+-rfqCicQXD$`=jgxheq!oN6J^=&ovKjHS;JxC37FOU3?I`I5iiXBBSQRBX(-$=Nf zTU73+uX>x>d-%Bud3U1RukWg!XWCgyrwnu3?H{Cuxz7&_QuXdRY9PIF#Vd2`-MLm* zPp^Ds?g)2(V(9U`-LqDIb{H$1PcD%;=rGl#udFVOw7PWBL8>jWgNAHX;mT(mePP1g z2DS<}XQ*g{(7!atd&@VAbVOlDm$kFs81B_5dh`-Dn=oVh=lA$Nnh_r^@P zhmKO(`XiLK_hBmi8>|QWH>FeKjy+WT{?cTAKo|9#2Ol8#!)WPAH+z+2m{|1Ya`;-M zKIAvYOj%j)-arBsZrlj9jz!iUpFLRZ>%QevX$!-qDVKYx!;}T(*xOw+GoZv@A(smG z#Bjw9PfuB?ujUDweC6w^Pi!~0_2fP)_s{tj@(q-ON78jsF$XBuZ zS1tQHmQ>AG7x~!BNZgyd`8a*xySZ;7Uzz!qN03SLtu%vZOB4I^a>)*s?w$q0S?zW*$ai)UWUU)xkTXja*V{=W z>gG;Lyfl&75#Br(E#ZlZ+sf@_zSEA8ub(@>sO~#ozW(lD^Sw{H72J@~Y`%kxqk%4M zz9S;v$>#eDkh?M0eYWAe1e{0WJKucW&lb)>Xic$x-CX97mnNRiY1nHl-SS-&H`v_* z@7>(GBjg+E9y579Z@!(_1tNK#Mh=VJX!pE35y+LRyzgbp;WsTWP0Ykb^RB1(TYc(# zQx>z1`)A|*w$<|OVfTo2b7wAlZ_0km9e!@I9?|;Vly~vzrj~B5x{DxZ06x39&0Jwb72xkD(uZths(p5*qk$0~s+ z8)xaxbIq3Su*FJunL9Nm-k0tq$Sd60_?)}&;1$$@>)f@mHsX#uTyZ~*eCt-pccZ(( zXu0wX@4L}_>(|P6i~G6d@Xm3{;a2yI`OX?9-)-(Cqh-|+LH^9WXSuf?Cf_5j!yw1* zEXWsKe@-ZMbF(e(RW~e)Sx3*-(#6QN~cGCjM z>}!+6+is>|>3X(uc-zeh#NQ#t-}`QX`DUIdTHbdDnXl_o?>n3Z-_2cc?uv;kV(+^n z%=b6*{mmU^kZb1%@&lK$xc@?@d@VsKIqU+r8+kLN)#8piLUCWX3oYG`_dT@FVrtwa z!L`(bIm_lOz=~aN9F-k0XTeN5qAQGtuJ{(aMC@jZyXD*`#vK_;#O{XMZtj(FPmEg> zD~&y3aqpb|#JH8n@=^1>N!(&~0 zww3wjS$;!e{mi$GVc9XZUA&DPuAKYCxT9h_#TqQ`41Aa3W15c~x*C?zu}Kzpl=;TS zrkZc0`F4%XGT+|j+bwpW`R3zW5t|xYV!n;wd@`4i(_i0vO+WpTHxP}~8r6XPn|ZO1<`ZX>>vh~vKWRf<~>JJ-^^ae;hC#jdh+ z_gLJ~v7cDFn)%h!HoBu@x0vssq4KSY-D!}IuiEVBG3_>FR|W@%Se1J-t5-KUbeVlQv`Wl?0xe+JynqB$Npx%Z7tn} zv5j%Hj>lRBd2#ID#5uSBgw+e*Wfy*jLB4;Q()}dzJ#6XL#fpkV%e4n6?)q3)^Brw* zH^i!nMD>jai|QL=TNSBZ|1-JuD(7yA)tm3MC566E65iKfaqDJ!Ut^Its@}1F`3}J? zv8E!G(V)ZYmrssA9-Ca$2F`lo_KZIj+so3ubKc?SJNlX_=DTs3_w82{C*8`C%%c)F zvnUSErs^YuJ!pXWanPJ$R(33;DgVTD0`U7q9E)ma*i_cRF~|($yKAeS@dW zw+9NyMz>w?wE5yDv%$f$M%fO?da>Inc+TP~P--^1vBB@nx07L+6ue}(9;iw#jo=@P+waL~YvW<_Ga&mF>yn1-T?BE|xq$veH}{ zl$!5WqbwC9i}M^E6O>yVI~>8Xnk8zbtF4uL?{ce47X~BDcLxgHMt5~E(s` zayavF#oZk2ZjeV>t-C##UXc6GgBcb#(#qkXV7B>AFyF6(xdo8V2lFh>Oa8@RenH%; z!9f;xn9=#?;Lrjr?*xkq(tR8(G2go;`HtXl^EFz!czl`pzA*mE<42nB-v(J7UtY|| z!yPkJ^{h{Pg>k#~Lg$_f>LT9=+5rQ5#Yv>}G;tf< zsQB6DtFin>$Imz4aAxv0x-s!f%r_Age4`r|zs!7Fns4X$73O=2QU69aF@BZ#UP3+J z=yr);XTH14H#vTjQT-sLve@k&zr*MYwJJL#eP5iY2-zo9e zt@iwzeqy6LBi?RQx9+MO&W^ujkX7g(d=cUwn2%LAd>6$(G~a86^T+Xx=G)b3-F5MQ zm~UGv+neJbo3Ae=HYK@L?~p1kdin7g0&6yaMRaY{*@n|jRi&@g|%tC$lor?<@+ zBRof$c_ijg_x^St71cRU`B8Om0(p*^r`3Oe+lQwc?*r!-jVp`m+=q2awO5Z5N@A`@ z{R91C?)5=m6T6`;Hnz_Fk=Q!7-emImpadZ&HYw!ehAy~&S^(o?uiRde^tmkVE1Y+3 zCFxZ*RgaCiOLvs}P-GZ$1CcGUxP=xl>n}+b_(Q*VGHD!FKw>YA8SC zg6qnLay>*%5;=#;_waDLvD4dj9{%8%p>Awr&>j(TJAH=d}u4VuQPX} znfsV|;5G_B-pmV!$bH*jnfDKrd5*b%W9Bam{uMJnGjsBGf@!wc#RfmhFdS*If3zGI z8O$1sz24lHoBJel|J`5)nfvzxgzY0UryHIMgKReU_U3-VAaA#jkI1*qJz}L?N&Q4$ z`q5ZQ;ee(G`c=ADnD+>8BbMn0c|8N1Az8lVEBaW`XUp##y=CPo@sU+}=meC)~G!XND}n?Q7IkgO0#G zn6?>n72B`CElRTOanzjSDc|uI%6#ec>%8K2R%ox!i#ORaSm`jhEx!^|9DW~rImpRVvpm@#+VR^o9j z@U)JduLS1_;EB1zPrMfQTRWOmX%R8^;bNJm9C!oae;%!V#+`oc*dA_Z+m)Da9V+wH zMdn_7<=7c*Glr|S3v-d z+6jqPtOrOp+N|2Ob|=_70xQ4{Li zgJ!D6R=S6ecjM~Z>PafKmj)K&9(qQ%al+FZ_o$2ej+@ceKsnB6yNEJXS!_FQdfTrm zRUghY^9D2DF!Me$|6%53X8ys<|6VVJ!T$h61Z#SAaa?~XE5d*Gm9=3%ob*< zrPsMjj*w)AjT=60s2j862q1f|6)%TP7cYvfa}z1e*=^I#_Y{r+=7G5r#>L$DGgT`- z+F>#wM;)`WSoH6Odr)s-ILYdp$A5}_rzV*>*uGXL?XWL7p0?vxeWthFzmM|z5^Qzu zf)RH>)lKKfeVUnTS17h)?o1@J=~u7L{SxW z%oER4>A$}JM@5zHUd-uj*AgcZ-=1o7sym@AS4s7skp9oA~SzGRqhAPY(GfYmNra`u+_OY z8+XgOpJC>+#jt~E)}?kx|0Tt7&p7^d0GLw&EAsR zDXB%!{HuMJV}^5%rz~zdPi6hu#F`|1rnTjlQq%fzL(c!d=yeZ|FLhkk5+dV*WOHT3sI7h2Z?S zWzBe>meumvYS*6?-O*o=&-TwlE-=U=F_p{rL3*57NMYM^n>?O;tn$jzESRhgd`rX0 zxF5FqFW%{m;ob8qYTv?red*KNh{wSNyd1-J!M^CstjeO<<}pv(7CmR)Nl186_4!D6 z8T#S$ww`lk&h4eI=YJ-wA3wtNIbG(P=6(v3-g3JM)SMfvk5a!!zjT1~_IsMw(>G4z zi(lvFT5owzvo!X5ns3h4?e636rVhV#sLWRv$xI(;A&c(@b8_&t^mVsvb0y|Wri0y8 zryk(xZSIDK&$`_|o|XULA<89N?$6G0mwmqK!%9B=kEHP@OkeJw6&04(?}7ig zMbapQ&qBUlfLV|pn}@8d^)*UqJ^cG+@A2}%XGN#g)w!qkQx9{*tPkO$e2x0*^XaQ& z?xtP;S%6d2e%$gI<}Y^o5_9{r|7#eEcJ9oPkIm*N_+q}QJ}=ck)!1=ulFThTmG2yL z_pYtPywS8Euh-R2tJ%5E?XXiH%#yYJh+Sr1sEhkD3UFH-H-M0A{aFtU%W74ZYL2gm zl1j{&dxuo)+OV|Omk#+>3O{anAF9qwiiW!KKA1;$)pzi-qDi=ao7{)o4?l4>?)yw1 zc(r~$ijayxG1m>DD znL+sxKyGo|L{d#%v1${_KW;f8%CS(Ye6J^+LhfElGjg)>QkAy$BVr|6<#-Oc{MU6G zr`mX-l%6TpLMpAKdD5(5TDTZ^p|V z5iedEj8&-vXg-JEOR6=^YKdRXQ48&Qq-x9aX!|i&wpe}dBi4S$nugCmejP+}HbfAeH(OopZ$2Xnxf; zq#vx`VC4)u7=Cf!kE5%t0^fe%FPVxn{)w_=&~$%p0Jw?%Euo!+W{>KJeR)bhY^Br4 z|9!&-Y>fJKLk!P@@C$qz^zqh83Ampr`QS#VFM>OPT>^InI|lBj>>#))d?UE4w2l7W z>{O3u+QS-hd<3}Ir(osWvk-D(_K&g&f8FB0Jm%QbW}VApzOxCh-+{ARgBO5>#KG%f zL=9@a0P5McWr`W_r;#5)Z#tHa?dlELCT-6to^i7#%*eGgs~ne5ons!nmi`DS9)YVi zgSn2apqhCJYU7SF5$4}9>O_cZPTh9h)vlvhcbR9CMFX+56p?#t>WF5X^>Dy`UFC?Y z6tsY=7mOulpW6E6pkvjyrii7uHFZ7IfGCS7Z|zy$TGCrnUj@zor1P);LT6ho9oP?~ zYY^NkgDXmMJ9K*77tVE?op7ewfs6V42F565BKmQzH;({|GCzQjZKgxunrjmKj?lMi z!WvaO1m|V9!x50;NCMB(I_!jyF-}-}_p}q>Kkje_+=EV+Y^?nVesdqhJP4cSbks{?j!P2Fi3QFqP5T%ERW2%5E9!k;y- z%)>GEuQah9beJX0?aJ2v1(;P0c8X@tDtpY&JL{z~J zPMQ*6&oYFJO^T~j9N0KX2eUT;WlM7CwpDRtxkN>#Rm&=Y77*o|HY{_2=eS-JGRTVy zJVW-HAm$Ye&rqY{0GD^>#4U+LNy#{QOjjSQdA*wKil`Rfv#9ok;1k{)5m~KX;6%n$Bh$c3EovJo}c~hW#k%Y%^GF8&$JnTXep zT_wUgI~>rC-ISCB)PX%B!a6$<(1}I25b>~eDLU13KQ(-Za5mEE+^g@CTixuse5h5=XQ z7WzJ*JBt#;dM$QmJ=q9JtvqfA^k(xUg@MeUt&{Y)^KE$D^M{gxmbn>qzF*8sp`&6B*fBBwN!) zQuM=sDEQqf*)-jW1 z{;Hh=8dfS6(y?|ezWh`Y$WZ(dn)eh4rW0#|LD1+E?3#A68v#ms;{|#pENWzvi zgnb|h``-{&O(e#_A?zfP=wtYZ8~#;0V_UM)J209KVV8v!e(Sl6z#;6eg&M-6)ScQ> zJU-REUh`qBpM~1$8LV6o!?KTL7cJB=a5U@E0pp3hj6*N{RXgv^^6|FP|+yIswAw5No)v_NN*AwNhIcnNemvfhd;9{-$IGL zlTZMEI6v%aKA9~enMf~-tt7g{^Cp~zXJXe28DBfWo@cRbL^yX81ZJ__G9Kn^D%&p! zbC%7H2!dYxVjw;4Oz9nVf2>>S*R1t{&$BC}De^guT_-9s-R<&5;52qulF4ru(C?DG z{N4zh&h(C0h9XmEkWFWG1W}vMVGW21OjjrE56odt5#^iiO!_=<25V`fIg|AwsxXb1 z^F!cF7A|BaoMC6Ncu8Rc6Mbi~0g^nY{~VahhDmBS{VvdWLCk;Y!@${Wy_D&*wkmmS zlcWaSDuK2OqM0j??X^&#F_#^-(7vWGuu~S&f(qGr3poePXZMH-z)HiQMa;1i)dW!U zpv9~y5!Pp_v4lkvm9j6g+XO9R3yG@P)Adu0P-i(%gH~GTQdY6cY71qJ=we!9 zq2iqWK`+BEhcKXm?TH)?lt?7n{5m#?sEp-#W(BQd3yDOFT+d!65+llbww(xPAa}N& zeM*GqVP?=PtZrvap~&=0*Ggp*YbeRBJ5p1k0@MC+OM^DCmXh|&Mp;KmN3&OetOt?E z*(R1QWUQ_4dXVLI!4xpPO+o)+tB6E;TiFIln8H@Jg-BT0%8rY8VC8L)iN9(Zd)_n? zjgfCMM?Va}{;)UbO%_2UM&WHNQ4;p>?QEbV9EG>Dd?Hb2+t~slsO#M7pzUmvq{r^3 zgLbmth>A>iN^9WV7BH#9UlH}VJo)Im5lm>Xp^5-U-%&sDgD`-YED4YX;9#Qtt?A9{dUXq@L1)^T63> z%!vqBs_lb6W6g-l*rcL9!Cx>hf7GmIUj~N;pMkrcNTuwPsHEVpm`i}5W4VKZ&$GFK zNMh~w4J)oiFA-g}-=FrT{Wom0q@!uQj0^0fq|381f-kbKCGE|c0CY{#&G}oEi|n4H zE6}noG9?JpyUM$J^fE58mPAEteR?nBJJ!u2n;v|Hjg<6jCWq(9rb>F8T^Rg5%a`O) zdeQzWTPo>nMrrU5Y^|iV6V?aUu!Dan_p zpQOsZ7%xoHPNG;zCl{bBMN$Y+x};u-D9e!4g=AwTB@s=LG@H`PkyJvIC+TIPB1xX9 zXmhb7AF@&|NvHH)lC+#;uSg0eE1M-H+M|{2lG>Ba-I6@X$_J8?NOo9K82mir7k(30)_<17Hs}x>88f_Msie|&U4fiC-)h{P(^#0L|Yr>IFm4q|1BcDYi%I?VL z6IGZ-X0!-#+$InG5eiggXnpLR`4Nq$D6$9w{|3*KT|$k;t_hUq&S64mX}0hc-*uxcFXt3l?)f02|oXRFeL|6!KR z(c$e{c8Qp?BGc$8B_U7ox5_*);7(!ucS4w zwrR#k6IGbrZ1}+N<})OH)NoyhH(w+)p(fnn-6e0!c-U`!_ z{4Gi0K{fDeuJb;OQ{7XrRqYeOlD@g+@ZTSz98U{7D zZ_95=I=$#fNIQOC(hrM11JaVQd`^Fe~>DzXF5kc3x}9XV{J!e0?PQhp_* z6EBo>raaf^%r{B8S(s|)#~%@0<#^TO$D5{LyfW5l*pDH8ytAab!|sN3sF zu%vR|mZ1Usgrs%8?Sa0OG@;NhG>~7AG^4N=5at=){GkVofSoT3;T2ejh42b2%tCkt z7QufYD~I_Kh!<&*MS(2ZLU?r+BdOXMuPLpB*OW2*0a+#+o(hDl(SyRLq$e zg=4ur5sn36pjppC@u6|NiG|Wa<9SO94G&G?9W695G=+D!(9F>OJi$FK`Nmba61J<6Sp78mO*hrcB$dwHcYgI|+0 zXF2?mkWUyW(t9<&QkltDN_sOMev1i@-lHtv^!D-^HjCGhl%KE_KA_xAk|R+#QIV+_ zQkccl1hJago84#eO_H(_x4Gr=Pb9q#``)?yyoJ6Eox}6eDKBg{q@K@9EOe5;z|-J2 zY&bt)ofY!&wB?#_I@G6z74kiT*b9m93_3qRBxdwNe%?YZAZz^`TFHmG<7((U-cJy7 z%exx7kb4a!84zbnx!W*7m!s~5F6HfrN?EsO{|H^i_ei=wvtC#kKazo(rR>wrt->m} zTPDRbB}Y~&FY;bQMW*`C_6U2ChfBiQ@I{^~X>fjDkYy4Tn2vR=VK4G5Df<~_-xv8@ zNhe1jEs-=PJs9Gxk#x8h%C->Yv)ovu$s;f?qRw9AIYiiYVr^Ed<$XJcp==?d&=sY!lxuX?@peVQ=uSiAve(8FRw6@;@ZaoZ;GWJ8v)w^HK^Y z)V1SV{8>RXkL~1XM4}h({!am|Hh(upG!aER&6prv-L|A9dgO2cEp=tUc2=rW5bH`CWRuaw~ z$M_6MICq@j#YC7h&Q9`c7Wy>oB+nm@@zs)= zFB#}^if@!O0c4-@Hzdsj*{6J`r2gH`hJD8ONgCSi0?=Verx)?|pYs!vepocn<#U>S zRoY`&>wH>LHJ{Mq`>-!9G`h!6VP`Bfq{oA>uZZ9r>8b8Y_<0NM8t58+fqzLUh&lWs zzaY|snrIS!kw3DKPxyDd@dT;~khKf{p7#`Fs+{u3w}uBudKb=04UdrYQ#Mk9Bv+E9 z6IHMdk#1@Ye_7Jt{$0a=7Bsr@W;HIs0{WO;X{tf zO-TdCEDhHchbb5j+x6yfd!+|aHJh?}t*hcUmGZ)HP3xv)OTsm61La*w zxTbBSd?X3iv>wWrl5kDysa%nSYg#YGB^zy)vLR9LhkGeaB+c~rD7=Z%j;Mky@;?TY zX`#=;pHlW&= z37ZMTOWEb<-Vp)HY)MOe!y-bI6_OSJg(+Ljvf!AA2;~$J+^w0D5)q?(hXf^hG5DkK zIOS)lS&%X)B2Mv|g)&@m4vmOc`dDaGM1nG!C?8}xOHx|p3eCq|w<^iXzlg*YX0ozF z5{|9O${r#y)}<&_A|AAt=Oa>-Mze*Lv=MV6(v%*Omi8ZE3{*DFL79j*NU0)%y3Q?( z7^LjaBN^MfWKl%Aa!t~qsM3hR3QDj~d-bk}7^3u=i-dbYFGmbj0*FNG8LGruXd}pS zh^pC%=zm2FQ`Sq`?DkH?2t~_h@K?>wL{~+OQIaL?ar-1!MUd%(avc^Z9~>FrP&h!h9~Y5ax4<(itv^aX!L)E?0sjVLmIA^+fsXuA4*TYDFtV zO)>JVQ=Evf&O9U6DNQZZJaU5)LWJ`}r^t=U9HMG=+C3=pb!CC1?3u}to0T<0RXn^w zM&ujHaY;jAoYm69!K*3?Uphn2083cFv6tX57FmBDy+EAk`dHw*m{c}(#vMw?~qV2(@F zCyJk>s1e>#pDH<$vVcx2n1!IG$-luAj) z!nIL1mE%Me%&+g}sN2dFNrU=skGi8YS}bhd@P9w*uHv!;sg!w5J|Fd~k|XJp$@imv zQ|=3*(mqnOrKnlKe(&@+>XFjOLQc_tD9ILT7Okk2L}lzoO800xbDbe*+uX5BZXOl`^h;~=QiA3LQsK(c# z%|zHDlOr3d`z2ut9_l4Q9A{=v^|GWnf!o8q)bEMJXajFsT7l{1vsFAO65qXqf7Lp+ z@}?HTR^H4)*dM%AeD^JuwncDhw70s7NaXWrbpuh6DJ^Mr^wa8QNkvJoMK@R95(KS> zGaq$tExJO4Eo*nAkLpr^DImQa{fyd+Nc6uJYP2NGSxa>#Q9gT=ayYV;dRuH!S#*2Vi%6_=+N)!T zL=ARObA%>q9(*>sgPOSpt>87##psUeU7}JJ68B?tXElB;$=IHSx1+nL-x6Kro+}FKN1lR%j(DQb5SGDmv)VyjxC0mKd8uP3gvL0<>ygo7g)N~>-dIzenOTxAktbRj;nxQeFsd^C-6?? z4AohZN6GA%47C*zw7TS6_YrD$K_(9OCPt~jlKLbgB}h6Oe@h*u4v{otDAG7dMME37 zjZ$Ywa$2-i8LiHj1Oo6jK>a&7O*Mt0G_o!i# z8V~9P6elTsWh zspAI5exR-)s^W(WGh#nfH%VE^yy>x3YTDbBPqxr~ZtO?u5lPdBt&TmRYCDB2a^AMs z&(%UnKh!@Q`;~f2lFz)aV=tp6}W%?vdK?U5r=6>V>$o z$7)*(-45VdvW5D@soES#;mOf)hE^sitr&hKsl6&G#J{7xy|#x)tN%(`n%90o7s_6aYp4x9C@7-qp13C3 zJW1)#y&u<9+b`*rprJq)B@Ku_^DZHk4W<2!59h)S8^l^XA-EhoY<42tin?GR+@>^ma9r}nNS zyyMVQJ0QszfOJ&SH?Vu&Q~Q(%M|~I8Q~Qdj!qm)TTzoI>lB6ZkNY^CY>5TNVq?si9 zMN+TjDEnQ~oCQeQVXO(U``Sx$A`)$>mzGUb!DhQn0nH;8dLiCl^Q^{rxaPb0R6os! z2%j-KR3|`l`3PlK?eWR6Ky5Qo5nDT9j8~xc4w2aL4Ac%u`fa>D57bTxP1DN@a_s}P zvy$p1B3+c^NwRB__9me0rlilimBj~Y_a*&I1P=znAD)MoK-R`W8{Oi zyGbPOWyNSNM=_q*If>Q!5EYsBr|pZ6)m%OnGQ1NLr`;sN6b{74X^$;*B0gSgc?>lR zOr?`A$0unWiE!`t22dX&Q4>j8u#i!mC20wg_NP4n&F6@!O^5ojgk)`$AU3Y}vRAS; zLz2nENJ!BZN%}I_Jt0jiCn|&W($fipw2LP(FQx3p;B}~-%3L@D=EyhCsN|>ZgveC@arW1)8%+m5Kn)?&7v?Ufgo-kE=hp50* zKIOZFY1#)wc*cGLIz}YU*fi~PA)_-kO}i**f7*S}yg`Kde4H>{`-MoPK3)5RsK8Wz zO5McinsFXWg#E}PF-Jo`v^r-z(=)Y}Br7sqSllvkrq)pqn*vWo%+&f3iGG`_?IeO{ zf`i&8=4y|KL@%DLIe&vTu?GDTXKPPes8?d1*26*}i7#kj7K%@(!M1UsV~xg5HdRNi!|+mxqPoAmT2`Y^k(8>t+yak|EX1p%d{X#{bD`=N|1!- zXqh&ENTje#8zy9s!WW=9*+Q2ROSP3m1t!z;zb2Mz>xr;@N>aJDl}MDYT-zmNRK9ZU zprrk2&Y*dU2+QY|v_d;eBvN0YU6itF7{OL(*Ceg%mTSL4yD4cq(S1R5ZdYgxzBSiG zuf!L%PDD7mwN6^C%_S0}+e_N3lJLIT8tnrjyrbDEX^nP7QWDTw?X1+qv2MK2h@goU}`uDM?LU znY3GbNm2>K+pE1UsY&wsqVG7yOsdv8NtzE3c1nNZ7opZ6U(za2Iw}+b?8ncCU2~KWG>WN2zOYf9#r>^k0^p zPqNaz2LDd_(IWc;WH&6NH2incEemBu|DJT$LTlWNn}^H%6p0F`W8vWplRrPC5;44JN>w%G`IE4QSbC` zVH0!asIUJ~5a!HL-!2JdPI|katTHFPk0g{i>rOYUGH2aO63Xi6cWq>KbmeE%#5y~s z*VUU6Rh#hlajtqxN%;FXSG}Vk`rW6i-rW*!1;|3B41c{=Umt9d>C9apPjrdThuw+> zdX=P+B{e|%Zer^B?2rj%XC-~^h;)zWl6^YVd;|S=LHy&{DAR6Xyi4{C3m*Wv5#bJx zM{+|wnWz+~RkEi({x)jjuOWPsz4WO>SX$1S>bX*8^5~n~RNqI0>ze zK6(=(5wE4*ib%Acmb%kj)D*3!rQVnbXXcFLR(dB36(zUP6NsuA-k)x(50!-Xr`zk3 zi1L|W8zClmv9FCw(^uuh=f(?%Ae_m+elJu35&`PrY zBN1A;8k(xRKEM=;O!&;#Aic39d^&89{!5E_!&no+}AQ)4_W3Z&ul0JyR0OhUm?H zx5|d-9f+_*dy}8j(*&_%w~vyC>pO|^+0aR6l1J+IA7i|H_HO+<$)ojj#)&?2Go_5z z_YjGkP13h;l!=^8()UTi)Fx0ZxY9cSr&lJJ?}sro2M_)PFrJ(uV(!>2H^^}UktS&nJ?O-cAHM~?0Q zKdZp67UHuUGj$(H_$)`R?k@?S-k7bYO2Vf%=IE1&idbQHkCZw32zWm=_7!Ydd3w1d zTyf^Z))ia4iE10Y25MjM^0@)`-)h7J?ZGnDX68`?S zK))>se}7w`Ka_;Ozb(+~!n;SX2C-fW^@ftLUJCVQM2G1)mU((FNm%yzda@)e`vM() z&`tG%rCq4cBNF9XsBe^n|Z9ADAJVUErDL zWqO<>{H=Pao+b%fm*+o0C)4=r0qA*0Wasmn3XGYxUidu=T9fKa_;6XRZE; zBy2tF^fQvM^{mq`3ZhoNUcXNy+R}R6)eZ9^`q3+TJ4x7-#0$aj!|asyAwe@$%Un_g_m{M= zp1!87Rd!GR7m-Ne7yTU~k-{(f2Sf$%dRb+U^iGmc_PZY4+ba8APnU$UKlJ!MR@oo=P)R6ztnc%;${y<<6Ty2xvY$$2 z#%GfHWVZ(TS`f4>_!5Y5(?VTS6=OZTD-K#6bBl3jcE%&3eAef=z*KwV;kYXu235NzE+vMnf0lI~z?`rE)kaRsAqelks!Fg@@)GKMn9rU9Pg-fFvdy3IlP0BV~N)l zH1U}O{3Q>rAUYall4@qd*CLD$1=)8ioCs`|idgNv{L-Fq(yk)bHkT*3(EQ%4c>%>^t-{mIxW-WnueX#(F_yvyX9#NZ9OS z+?9kj{f$PUW}8!4Un7}F*z9W*2^rYj-~L%+r695yU>qb8HUo?^lF(+Lab0M#yLnSt zkkKp*QxG#~#xg;si-S+5h8ioS=BB}%g&N0+#Aq4{AEQMpVl)jkTqI$i z4l}kyTV-L!ULstr4e<&$J|z;ZAi}sS30pyg@wA(Ej7>zMM6re`&YJ63!%0%u`17f8 z#$-uDU}rDE_*Rg;d%=&XiN+67hC6#n#yv^6vzKhBuxo&|ggbjFhPx!(*&AT^NWz`H zfktOZxU)CN2$qC9d(RoK5n=gsp#4&YyJAC)`{sDitA-k<6EHooD>l@)Np#8n^A~e4QBA>g*ztC}*(O(kw;^D?nNqBBEjPN9DEoB&Kl2Ddu_$6Cq znMSZAl#MXlQmnEOhL0qajWq7s$VM7UDry#)T18bVqYMX0_-2ezhO4A7qQ-)tUhbxj zGJK`%tCGj5V~w7Y8cfvtk2L}${d)pZge9H}&}c#Ii-9fsPcTkP+F#nC|3t$Jp5VfH zWwmFA{*#P!Nps>m^q*{$3xd?)y4YA#izW(mTQzt!qUz*$}_B`oo&2ABznLcV+RrL%s#A>XB?3< z+bzGt3&uqvu^KHhTr!0fv^n1xI>KsmzA;%6%8HHSBdxMx|^BV7{878&ivT4jq2_{j!yjIz4#_D28f6f$I>iwnd6S7HB}kNzP8QToLs zbWbIs8x)OhW~tSk+lRrsN=1m-uYk_nK8ht=#M&Bwv4q<`2L1kXFm52Ywf)UUVTf== zy32DhMA#ATMLwHeahS1F<6#nbFf^?6aJi*Z60h>%n3qG zbcIdWaUX{v;rV7)ks+VQqt1;;3>SWp!@mn}HURZe3c0fJi;%yIg{7-q1DFc_i8EzB zU)B&3f&;&nOU1H_^DEA&IRvGmj3-n7Z2wfE*(O@RJY!t^GlvWM&r*>(+UHZz&LXg* zQo81LRlDt>rn%MCE}d-+m{S+EE!u$a3%6hyrgd;AT6?d%*;U{@>gYc>3#B65>Q|qT zs_+hW2Jg|ejrDytS`aN{Q6}2yv{>ZkuflEfT-z`Dh{&z*WBp*?K^MannaaCq7_u00 zV$QSGud+k4F^3oCy13}LXJV`V@eSDABt7xaqc4gs4v2WrWnD5UyPi# zv^Yh>M zMV;8@P2>lE@uRRYG=u!J9os%DG;8-q>v=f~BZhVK!<^%2AVySGjv?j{l!`I-7aC#Q z8)69h%{6SBE89}kP90l_?PyS2(`rqO3_G(h1YLz4g;uB1OlLlW7;fvwZ_S{-aL4w< zek5i$+ioa~7_|8fl@$HvwT-pB=Cku|6O`JP_kZJm8Ab`)5^?4OWl>mL$R~XHkH>g*3PRI|A3I4f}OYADY$;EF(DLrc)6@Wad9Ngu;cK@Ffjo@=2m+DtRLdP05Mmankuqpcxg z?)IIDc2aV%ed60zYLDA5^~aEY_0c`K1lW8t+*AbY?--QQ7V{Zx$`130C@58Zlm>+YBBF{%7Fct9*9+be>zG!{**SR(4 z=g*}x+x)xS{$2Rr=l1VPXD)>bUz4%ct>}YmX^a(q9DmGx6aBF2hL)hQ<#g__pDOST zJJk8J-`sOWU$(kJU!-e}g=?hR{(1}0@(Ku7*@^3C%z2i~Ka0fvMnXM5Pt4CRe9VhKsSn8V=9b)ryO$KN%vfyH`L97uTfl zO)JQ)B6Gfy){r=YsWRPq3-El!PR716&m9B8155i7}xrVX+73NQx!tVrrSk-{5$^1VVetEh% z|K=2*)H!C+F`wmwL(S>_U3>eVhMP-)HD((Z!_BS5oI^3!U_Rl=I9icf>)BlY*pJ|f zkEEi8h5mcpaWsxvfl?h@g}H#Mvg4#FEQ`_jP$KFGSA+}wSWnc)SQ<+MztB?xZjC*&S3HR^nDkvIr@`y%wai-cd#yk|j%2s7B{9`>^ZJO)t$&lZu zW~||VcNWYRL~S?>#?*iE!~8!PQhy-k@Cdjn8w7JSv>cl8%c$)Cg3()L#o%hJi2Cn; zpZZ{bv@AvvTR&Pb=lrS{t~xLk&d?7#z0!{%=X#@sTW|(dc8Pk8h+AauT0!K!fWmSTb(QO&<V7Y3SMXa%f zg+EIT>e03B*jipwinU=Mfam3#81%c*NItw5)(o~KjTQQ0IEE+`qO!$PF?<0?b&{Ix zi@4(YqV{SW_qd#*!cvopcNq2G>(&3nKp_m2F)xZ=!cUY>am1_Q4h+ z>SSp$N=5tsCqFzN2%5FsPkUfUVo$Un<_lZ@S6(Q^RK&i$O8fSj-1Bb({oTB7{AncC zo9&*7Z3wA9p<9?f|qgjn=?ATU=_@#L>wd z%hr!~LsZr+&>Cwijp4$kt){~W)U*w;^*<^7|7W=Y<-|6hwtm|>!IeL}RtQFQjqU-N zYrq=*S0OR|u&%0MC8My`{n77F<5)kq(*Yx7f8k=dLocg)Ar192;hIQX^Md8S2|2Lr z&pNgtw_#7oJhIvPznFySn(x?Ry022Nd#s(z3v)3))=|hjj)@#TdB@@JcJ}Z( zSCRGe5%s1&uYTcP?Gx+UCv~jrYV(XR1Xj!DJ#(?%7PG^j_v+31$I|~^|Nn)~KksA5 z!dUTF=XX5R35;n_1F%kjQP+G%aGfLWeu_1)Ib7@;z~|*aig!p=x+2!(+$w4t=UH>V zux(MI4sBiQDy8{MZhKj@cEpEv_lV2-X$ytg>;?6V2B_=Cu&6yKMco*0No( zEX9r(*9BI*8WSsC>~T;2nd=a*-|>!sS;HJI%8U2fIJ0#{I9~fJY$A-n|C1d4Z)(Z5 zwy~s~#s?TrXqAHN{Mx1d0nTadvWT3E8h#DdIV#J`!diL+qovO3jK|f>DO%Io_M<0z z(0>jwUx$i3i>pgJvxl+VyEuQmU1Tgi)c&enx)ndg>+PMZKby1!p`4GHHxc~Yy6{~Cp9?}YyJv4 zcmH&~V4it@8-q0_t}k#7g)hLsvvHi=rj^+LMv4~9mTk`+K1Cq*tZ4dYp7H-nO^M*TVkoprlV1EuVj}>Ahc`^^?kh(CAxv{5ML)L;dWu4*h=grw* z?!zK@2bRh@uz_$4fy1A7V#7gWBphQ|H#U)V2c6z<^nt@4zJ=-!I(^wR){o7EV-5>o zFR&m84}$Py7R~#EUK$+3n7=Zd!S^M=KZ7l2GvNINGr;N$(3{Ctvsr8{9IwFf8XW#S zkG;wA*jsSC1BX8^V0+<-`w!qa2!}tP2fsU<2VVi4$4->qzg zqX8V7;aCi*Erxg2EQWV}E{2zJE@mrPARG~VB@5s$0lyB%CO9_3@dg}Q;Mfjj*ba8L zvnB990{#c^9T5H&_}_;AJK@+3$NO-60LO=L9E76^j>B+#1jkW0K8E8M9LM1}0mn%= zK7r#iu=6F9|4T^Y4CLnw@EJ(sYv!$f&7M)u!~gT}{~P%K4gCKW;#`E|66jt6-AkZ* zh1FqKm@6Dx;b;KIW;hnZ_xk$6;m^Nkz2JWY{14z)A^Zn8uE9|Q#|=1shT|q2x1p@J zLH{db@u-rzbgUvS}FSL6ne8$oUY zxdX@@M(!ALr;s~?+Rp5HE4d8Mp4Y~)w^=7xg?ZE1BcpDCUnF^l^^`N&! zcrpBfyAS&ko+$TW_`8R8@O*wAxO?Dv@OEq~JO`e@@4}Pf2^>Qb;1>ubYyh9^wjRFJ zf%g3w0R0yH7R8ECv0UfCJ;}W|=I{z>KF~1ro(4)YDP#)x;l3%j@Wcj{-Hokom8~2l z|2bBtZ;rAB@}{#b{MOWY;2$zDTiFRAD?kT-mwJ@G&3=@=EVjWgdF)U&7+(f|pzPzT zO;g!sqebvn;NR=`P}yM|%zg}RWO+SxhY?oh2JZb?jnxG@<_BGOw!?TO!5hM_rL_ik z75H!Q97u&LYvFeaT*-`dVZoHQqg0A2j$e_k;?L$y1sA_B{i(4#AXYtROo~fZYasPO z>Mf(?+)VX2pB@D7d89X4Bs0`ZCOfAge4~1r7x-*auh6-8K$fq-7b_2|=Xr2>4ZFhe zy)_GR-nup!W%yU|V zvMlpDxM5|tG;h0ILBD~&a-yO~C@+wkH{h1m+78c!lY+JCq+l(%DYu?$sJlu3RQI;J z7uokwUKu$=_fc+59S`ow)a#m$f^EY`c{Mm2bTD- zvfxKjKa%!=dOikAL~M=YsjUV>h|YpR|2sVz{43zi^!O#~5;~9R5CTshg4@eTSMc0< z!`Tcp#w%-0o7C~j2absbhNKz?6o31n;O4}Q04eGpQ0_!bBR3ax@T<%o%EggO3_P=| zj88%54RUuG+2B8D>@XJP9y88S-}JSMEdR`?fpF+qc6t5}z&|$kcXA!#6ki?Q7RldAkI@C84zS^#aYdzQJ~AKh_T0p*#CjafDwFuc11x zgc_S>SE;1e&jYvVxI%ET&MT?L)=-_Vp*nv+`B|mRUcAa~3-}MKJ1N9o-PvTD-BC8G z-!3~W*IsZ(%(()2$bxSZwN{!(I+}Van{r#4>Zxldpxdpmy~#uU0KO&Sp?({IZ58`t zPbJX#y85ZIB&!GLKb+kUr1+(teNgkgjGYR8-?g5Kqt*^1N%r(u)2Gxvt02Wfc;$(I zWGRH4T>g@23$?c`)W)!nSDKDfEuE%XI5MA}Bb$Ri zGqM%A9qq4Eth*Eo#}C{BdU!@lv@qPNzODC+l;1S z&#j~uagV-?VVKoCa#-`Ux#&4@r$@l>g8DM_`PKK_Nir=SoQ|o0laPU)6 ze}~Z`=NSiV6>Y#h8^2ZYqrCY+S{LnCL67bR;mzh&Dt##K0q_rZz_v8Xp%3M!59wnc z$#%ezGY|9+W_znW?FxFVa|l+kzXz*0iUxz`VKu<+nYeo3o{6oeMpN8qsvqqJ$U~CCAB4`fs=J-AC9flfn z4lIl@5>{f6m#r*;$S{MBY+{|Llv9&r6zG&K7 z#qWEyR`E+-t<{6@mdw^Fez~i)8dl~6IyjouC|G-~)in6}$PVKLvIBk15&NtT(zd?O zINGbbg4#LOkbW|_hhbD#2F5vZyH^qhIHs$ZhjeHIQ^9|<%WQIs!Nu8u+a1gv0Gevd z5eQMszaq;nP(O{jybCFg4zP1tVD~t?i4&&Y7Tm|t=NwkSj1cbRZMP?Am{TUDIG)@H zWpI|Fm)ebw&jU^PvZpDVTGs(`bD_1^b0>IH+eLdfekfy`6Sr$oe39JW!M&E|>dft) zS?=wet|pcFIYU}tp+?cW406VjW;jRK^@tq@e!a^SXY2(tz{S@121K-mY^TYVr`c*lTdK{G!eSnt4xyHAu^DOxDkJ z&MEjCArGxZu&J(xhO>!>mXW-k!JM1nS$Biondqm%-Q(t4_dM0x70UT(wX?_Ix;5-r z`GmR;pa!OcdpRn8ExZ2V4g!ZZV&;YY{xm<&xbq14g^#Q_IiS8p0QD^R=7hIWDCdez9ql7M@cMe*B(a zskU~)UYAEO>P}^vhGU4P;TTe?y`27&ixXH_>zuC@CDp6km? z?W4ZtYj-vysGgfPVoox+s|Sp)=cQr0b<>V^$%7DV$v#@P=k9twT93I0z}=B?q+UBn z1=g`zO~hfYmc0cyGCngoKJ!KdY#kY;v5~Vy;k>vYcgo+ELp=b zGg-rtB%Ml~taa?~SU*{#HpAwYHmGl}f7IKnz6X8hxYWpocmCF}4e&moWDUpgXo&T6 zeLQ#mpo!sQ*je}%d<`4cc~X53J*lh!+)+c{g4U8$wzz&KrQ&NknfbWBuZh7M*uC`+ z$;I>KYr^y8t?!<1a@(v&L^rq3)F$*etop+Hb6}-y>Dndbx)8d z_&*Bj2yye^3-R81@?3OXiqYj`&^7sWwD;DXW~2Y57`T=(?Fo9ut*6N&4`x`?*OS`0 zjfeJN&$FqXTkFPv2)EYyzKjU4e4;z1b)tI$q#K^o-z~z_-NT*vn*0)Osor|y*yi>L zCTuO(Cpzi zjJeQ%`+|$TCKvi|EQI4+aE>{7*02HEYkor@WZ{^BE(4(c;chXVg>!7(*hvtME&QB< z@8~+G;CuGZDfsq_a|*ua;+%r-w}?=dOw6@Er#L{XJE!1#^Uo>xYjs?kHMeiA4o!sb z*Fve+xwlrY!fb-&+U!0|zXRu@wc0#*xBD2=&ZOh+Q^5VqeTKR{<}A25ao@YI(z_Mf zHCUwwz*hxJb!=Uw5Z8s3!Z^^hK`D&`r7#Wzx|C3FDxuzVj@|U)tc3d1IkvrLVuKl` z;r?k2Rw=uJMuYo2tjAUbwq`_-6JEI=+#8v%U+yTfA963g0W!LeJFeC@(mn9&%1 zfv=}>r2I^Sa;X0uS~=B!In@7AZ4I@kN@`Kw{5RLu4Y$xZvqg+E(2BY@+)1%^Qmma6 z%i9jGr}k0rv)5Z>z0?rL*bNPFq2KQfSDB`bQ5#`@Y}m*{4}<=Ag)|S?eGTKVhtV6>sH;r5#jP5xGWF@- z1>9+_L5;3!)ji>Q7OeF$?vg%AXEu67;ddz&4bIeBXD1ysH67D+qY%{mrjZwgyFs`U zw5iW0cze`?tI;+dK2m4O;!uxvq~ilRQ=vY?V0^%QF8A=W*!jR?m1)Z26W|Wa`wH9> zao>UaaokTH!4%gI;1DjoeLp0Sulm9%}8RE4? z$Mdl_Cl{KI<6b9=(ujY1)~jzu?4P-yrStEHkjh}AVsL>g_m%q#JmqxPosQ%!GXQY&ss?n@^P*+lpRmitbi&capoWX*QK*0lC?b z^Gw%VN@an8Z(_}*w6YDnUdX2MmKrg0Mi>i>12b!yUQz=Z!BwPz?Y|H#taYwuKX#DO zte$tU& z%JDbPEwEJq`jl2W!}p19;omrS05`C3le)$DvO#z6oyN^EVcz=;d`HI?eossD9>ZVp z8VVuUlD8O>-DY`jfHs`(y_pN0;|}w|kL|g&{qcZR-mUGIEQa+buMXy5!P)l}?<%8m z_zrOY$UCf78Mr?-2KMXT)2fUugFc6F+=Z(G`+4jxtrgKd1L3$YHw@18P4DAI>YNTw zpQgN>r@Uzj=IT7|6ii)HFm+AA_ni4C z_q1(Kdyxen<+#H!@S~0w>3ETjn=;kCUh^xI?sZD{E~VQJ;zl&TOX>QNKb_839|iZR z`Y3O-Eok0HdB0UXbv%VfD|j9s(Rq9X=drx`|Do(#;G!z?_un&f1_nXJ`&~gm#S04F zGH;9n8mW0fQ!`@5nNdjuVjxAa2Ei>WD>ExM+aPeuvb$|JGgxrDw_Uc&?ph6jTWz(q z)oz!cZU5){oHN`8_xJnr`JCrG=lOo$>v_-nzUMuMGiP}oGq@&@VUaJpWmx1}tNA#C zPb6em>g+E8o1#vJ9HHS$~vQ=&elUFfk@l+CxmFtUSa- z$|^)mq^v*mkCfUQ9w}!wF;Z$KCh}kU^2C@(S+AHFDK(iGDd%@$q}0R2NU5udky2OF zknV4KPK(@nUS;AOVg{5`7~kb;I<3ikH8tvo8(&LY5-F=~HIYaA+mnXq66X+IVjH6W z2WMf3F0q})IZ7G5iaEKIIr+jWo|iK9FRbGKg;i4j!Ycl5?c%F;C3z!dX0q2RInPJx zF+;q-50XkSdw*0fiImw(34C7C%URMY#(x9jzkx9)TL*3LWBrb)@8uY`7qj}xF^;I* zC40y0)o)F`WlRmQ&azj(JN1q+NA)M1$6&3w?1?clw?6?NtakygUwL%EUcId9oiT?v z|Jh5d(bw<#8)Eq3I>FC~KMWTBY=)rpflupOtG*cXw4O5K8(1a zZ_C)jDA6@z>rkRQ#~x#ejI*Y?*%tg2D@4okq(5ofBs3@cix z_C@`_8uu#W{}bas&G=6<{#5%~XF_t8&AA{US>{M9l2aqIZrPqJ^ZY%@tvoNSJTI+0 zFJ7)-c(LB%S9wvt@qUt=7j@mupC|v>BHvQ`f~kDRRL(M$a<-qdOskx&s2r{6l(n3# zNaxIXKU>ae^bd3T?q|!{kCvlh1}H5@=B_`DkFm=L7-N?aQ0B2Vm1W7s`f7iUhW#;{ z!YF2!k#q%WV8w)6neMGj@m8jID^om9{W$gG)Q?kdz%}^Qge#(|`~5g!xLwXvqFv6^ zM1DJHqFt`3E26AuSBKyktEMsC(>OclN6g`PddSv)>70pk>@vz^*kznOWV8FPnRv)H z4qqNTWNX2%U%v^@+a_k%WsEyyn?CqBtUp{7tL8AaIV{CXm;;}lcnGDNfwha_b6en( zIrlT*+H1d=_>%42jPi&>SlRmliYrH(lxp3zFLKf$TOay7fU#@|V_RaEnPC>@lLIEL zvcGX&(xezZPq`G<=}_d`RF~Qh=4SzUcga%c+gHrmG%4SngWjfuHBb)!>n2sfnlkzZ zSnr*51Fg5hx+wlIto4)J7Wwv*+aljmDz~@feGHTs>R5Z_cKO~@on3tD?BY|$`aBHJ zekq6Pd5oTi>3NKv$LM*Co+~*1%H7KNl(MM*nK>tAg-x!q6&RiIj3!Fmv@zwl{Sn-a z9=CtB3oC?d34gZ8_fF(_!EGt0wRb$VDY7mdtCmFmX6p+nCs6A5fpRWR+lJrtdCF0C+`REJNa;gjNpeOq{luS zarq!Y8OIMtT#r%yaKw2%gf~UMlyEp=LDj^`mn!+<_u&W`PtP*cS%x|rA!El`hC0ho zXBp}&L!FI~vEyune0}K8mZt|)Pu8$Xpr$n8m%ax~(IU$)9y3K&vHDy0T5UV$PkGh8 z0WJ2BP2d^oHsA&75b#oU7!lL4A;59k zNZ>?m0&t2p4LD892A-#F2F}s8P3w!Nvl1#@3xGSwGqk<1UZ7P&$%0~6%ZaPBYmoER z;C=C&Q_u~>+eF&2>3vlhmA%Bfh)0PH#8bpKiSGdID&6w%bi2CQBK%g%HNZP8#}UsV zD1Fsk#MgjU^}gll=~g@$I05Si)XxzAMe7gHdtog~P+6Y`>ejb_cI%gjKgueli@__q zy;Q7q1hBt#&J2s1W&QGei^>G{!mkl#&#JjUX8ByxE^=jZ#)+*o$ z>t0~J^+v?dYCQmdrC)=X6ZPAmc=Zo}oAn+ud#NHl6Ii0J1#Z{30L%3NFrXgWnUVKCAbEqHN=Ux^3=xb`@(|2|m##XMc)K z&i*vpUyASblKeS^x8I_*H`7)B)0w$2cZm(s0I#?cmfy~@iH(m z;?KZw5kCMYM)aA5m?NaM;Jym{yoklXIT0IX*>T4s^|Lub&QyMcq*xTO1$s$D5pa7% zDX=_Z2mFskTn+vRJ&)7#DOyj!YFG6Uw*s3Y4gp_`_zm#Yh+5zq5%&TA6!9SN{fNha zrz4&O1|v=YTO%5PpGN!v_(jAkz^^0T0Dc$o4)BMFzW~ohd<0aHt;mBt@-tveWDlI* z;gS7tbsUOhyCT*A;bXrL))@O1V66S{`BoKg|LT0Z8fRaLI$UCx@-DYac~{w`yld@J z-b?L8h&d+umn{gX=1Xz}SotRU_IqE=%B zOJXG5?J<&Wd5okRh$))YSM8xSwzv57?=3!qd&^am1f{P^CQc%z66X>f#7trqaW!!r zF^A|T`iSwd694{KiTR)4ebvvvUTRmL#j`AGe_!itSo_I&KM3rrj`kCuCx{Ki*NE>B zKOmkVenwo{U;I}P_YD%>08CP&)eOg2yis$_)D#s>?583xNm0X8EHFV$22N1t0jH|N z>r>Qh^>?6C*)B~{i&bA>wps{WuPT8abvtm2dKKtbLEuhh%SpjoKF*wJc$+85;Z%1b z6{qR}%!J}_WCM5SxT$+g6swP(rUFxDprf6Xd@<2Ngz)mrdwF^)SXl^iP^y2IWAh=Y2nW z>Mo*>iXXT;r-HFn(!Y{=4Y8I=E%_1RQR@LMxbrAd{BdU^t&P-M$Xm$21@6w#be2VD zS#)VjHeE^-Pdy3B3`a7Q-8oMBIBCtKo=x4QOG!PndT900T1lmn${ylg`X3|q_vUOMp!@Hb&A$zT3Z-@3#~2som%WwXK2-IERl^RvPoI2 zHt9EPHYrQIO=>0{{70a8CebGuxI1Sm(Lvpb7*J|jownK9Ruw5_ z)QEbd#B2jP98u)`fV*?zX-$ZfdPtx(i8z&32d&OXX⁡v#GnNyNMo#_0Z}g`sov( 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 literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Identity.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Identity.dll new file mode 100644 index 0000000000000000000000000000000000000000..0d214db71cad80555ef4d6ed83272de795d4c5a9 GIT binary patch literal 294288 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 literal 0 HcmV?d00001 diff --git a/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.Common.dll b/swaggerci/app/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..1c9d8e2a0ef5888c365e9ef031925877445675ab GIT binary patch literal 35720 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